From 7325d7102ef119188b9ed0f6bbdb02ba90f00ca6 Mon Sep 17 00:00:00 2001 From: neildarlow Date: Mon, 3 Mar 2014 21:01:27 +0000 Subject: [PATCH 01/33] Activate LiquidTWI2 device detection and space-pad LCD status line. --- Marlin/Marlin_main.cpp | 2 ++ Marlin/ultralcd.cpp | 19 +++++++++++++++++++ Marlin/ultralcd.h | 2 ++ .../ultralcd_implementation_hitachi_HD44780.h | 12 ++++++++++-- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d62447071..20ee9ae7a 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1627,6 +1627,8 @@ void process_commands() lcd_update(); } }else{ + if (!lcd_detected()) + break; while(!lcd_clicked()){ manage_heater(); manage_inactivity(); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 3262f2d24..607b49eeb 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1148,6 +1148,11 @@ void lcd_setstatus(const char* message) if (lcd_status_message_level > 0) return; strncpy(lcd_status_message, message, LCD_WIDTH); + + size_t i = strlen(lcd_status_message); + memset(lcd_status_message + i, ' ', LCD_WIDTH - i); + lcd_status_message[LCD_WIDTH] = '\0'; + lcdDrawUpdate = 2; } void lcd_setstatuspgm(const char* message) @@ -1155,6 +1160,11 @@ void lcd_setstatuspgm(const char* message) if (lcd_status_message_level > 0) return; strncpy_P(lcd_status_message, message, LCD_WIDTH); + + size_t i = strlen(lcd_status_message); + memset(lcd_status_message + i, ' ', LCD_WIDTH - i); + lcd_status_message[LCD_WIDTH] = '\0'; + lcdDrawUpdate = 2; } void lcd_setalertstatuspgm(const char* message) @@ -1263,6 +1273,15 @@ void lcd_buttons_update() lastEncoderBits = enc; } +bool lcd_detected(void) +{ +#if (defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008)) && defined(DETECT_DEVICE) + return lcd.LcdDetected() == 1; +#else + return true; +#endif +} + void lcd_buzz(long duration, uint16_t freq) { #ifdef LCD_USE_I2C_BUZZER diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index f4570f6a5..fce23bab0 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -11,6 +11,7 @@ void lcd_setstatuspgm(const char* message); void lcd_setalertstatuspgm(const char* message); void lcd_reset_alert_level(); + bool lcd_detected(void); #ifdef DOGLCD extern int lcd_contrast; @@ -92,6 +93,7 @@ FORCE_INLINE void lcd_buttons_update() {} FORCE_INLINE void lcd_reset_alert_level() {} FORCE_INLINE void lcd_buzz(long duration,uint16_t freq) {} + FORCE_INLINE bool lcd_detected(void) { return true; } #define LCD_MESSAGEPGM(x) #define LCD_ALERTMESSAGEPGM(x) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 932895b9b..fd3374454 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -166,13 +166,21 @@ extern volatile uint16_t buttons; //an extended version of the last checked but #include #include #define LCD_CLASS LiquidTWI2 - LCD_CLASS lcd(LCD_I2C_ADDRESS); + #if defined(DETECT_DEVICE) + LCD_CLASS lcd(LCD_I2C_ADDRESS, 1); + #else + LCD_CLASS lcd(LCD_I2C_ADDRESS); + #endif #elif defined(LCD_I2C_TYPE_MCP23008) #include #include #define LCD_CLASS LiquidTWI2 - LCD_CLASS lcd(LCD_I2C_ADDRESS); + #if defined(DETECT_DEVICE) + LCD_CLASS lcd(LCD_I2C_ADDRESS, 1); + #else + LCD_CLASS lcd(LCD_I2C_ADDRESS); + #endif #elif defined(LCD_I2C_TYPE_PCA8574) #include From 0ddee3c7db26466b0c406180295b59cb4c87d5c4 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Fri, 14 Mar 2014 18:27:11 -0700 Subject: [PATCH 02/33] Prevent SD card insertion from causing a hang when using LiquidTWI2 device detection --- Marlin/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 607b49eeb..4e07ac306 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1051,7 +1051,7 @@ void lcd_update() lcd_buttons_update(); #if (SDCARDDETECT > 0) - if((IS_SD_INSERTED != lcd_oldcardstatus)) + if((IS_SD_INSERTED != lcd_oldcardstatus && lcd_detected())) { lcdDrawUpdate = 2; lcd_oldcardstatus = IS_SD_INSERTED; From 89f78b0b80522fd63330d2cb31befa79c7a63576 Mon Sep 17 00:00:00 2001 From: Neil Darlow Date: Thu, 27 Mar 2014 17:02:17 +0000 Subject: [PATCH 03/33] Allow use of either SD Card slot when LCD Panel is configured. Preference is for Controller SD slot before LCD Panel slot when both are occupied. --- Marlin/cardreader.cpp | 12 ++++++++++-- Marlin/pins.h | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 5fb8dcc0f..036a34e5c 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -150,9 +150,17 @@ void CardReader::initsd() if(root.isOpen()) root.close(); #ifdef SDSLOW - if (!card.init(SPI_HALF_SPEED,SDSS)) + if (!card.init(SPI_HALF_SPEED,SDSS) + #if defined(LCD_SDSS) && (LCD_SDSS != SDSS) + && !card.init(SPI_HALF_SPEED,LCD_SDSS) + #endif + ) #else - if (!card.init(SPI_FULL_SPEED,SDSS)) + if (!card.init(SPI_FULL_SPEED,SDSS) + #if defined(LCD_SDSS) && (LCD_SDSS != SDSS) + && !card.init(SPI_FULL_SPEED,LCD_SDSS) + #endif + ) #endif { //if (!card.init(SPI_HALF_SPEED,SDSS)) diff --git a/Marlin/pins.h b/Marlin/pins.h index 9976d431d..d276621ed 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -614,14 +614,14 @@ #define BTN_EN1 47 //reverse if the encoder turns the wrong way. #define BTN_EN2 43 #define BTN_ENC 32 - #define SDSS 53 + #define LCD_SDSS 53 #define SDCARDDETECT -1 #define KILL_PIN 41 #elif defined(LCD_I2C_VIKI) #define BTN_EN1 22 //reverse if the encoder turns the wrong way. #define BTN_EN2 7 #define BTN_ENC -1 - #define SDSS 53 + #define LCD_SDSS 53 #define SDCARDDETECT 49 #else //arduino pin which triggers an piezzo beeper @@ -1123,7 +1123,7 @@ #ifdef LCD_I2C_PANELOLU2 #ifdef MELZI #define BTN_ENC 29 //the click switch - #define SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board + #define LCD_SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board #else #define BTN_ENC 30 //the click switch #endif From 1c9a70cee928bb5012c5dd2ec594b0f99ada8b3e Mon Sep 17 00:00:00 2001 From: Alejandro Romero Date: Tue, 6 May 2014 19:24:20 -0500 Subject: [PATCH 04/33] Support for Gen3 Monolithic electronics Techzone Monotronics support, ignoring the tip manager and using fan connector as on Sprinter FW TODO: Add support for tipmanager --- Marlin/Configuration.h | 1 + Marlin/Makefile | 5 ++++ Marlin/pins.h | 65 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 4570e34e2..eaca0fa3a 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -63,6 +63,7 @@ // 82 = Brainwave (AT90USB646) // 83 = SAV Mk-I (AT90USB1286) // 9 = Gen3+ +// 22 = Gen3 Monolithic Electronics // 70 = Megatronics // 701= Megatronics v2.0 // 702= Minitronics v1.0 diff --git a/Marlin/Makefile b/Marlin/Makefile index 3bd0ae3bf..4cc9de168 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -157,6 +157,11 @@ else ifeq ($(HARDWARE_MOTHERBOARD),9) HARDWARE_VARIANT ?= Sanguino MCU ?= atmega644p +#Gen3 Monolithic Electronics +else ifeq ($(HARDWARE_MOTHERBOARD),22) +HARDWARE_VARIANT ?= Sanguino +MCU ?= atmega644p + #Megatronics else ifeq ($(HARDWARE_MOTHERBOARD),70) HARDWARE_VARIANT ?= arduino diff --git a/Marlin/pins.h b/Marlin/pins.h index 14eff02cc..76ff3e432 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1911,7 +1911,72 @@ #endif +/**************************************************************************************** +* Gen3 Monolithic Electronics +* +****************************************************************************************/ +#if MOTHERBOARD == 22 +#define KNOWN_BOARD 1 +#ifndef __AVR_ATmega644P__ + #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. +#endif + +#define DEBUG_PIN 0 + +// x axis +#define X_STEP_PIN 15 +#define X_DIR_PIN 18 +#define X_MIN_PIN 20 +//Alex Checar #define X_STOP_PIN 20 +#define X_ENABLE_PIN 24 //actually uses Y_enable_pin +#define X_MAX_PIN -1 + +// y axes +#define Y_STEP_PIN 23 +#define Y_DIR_PIN 22 +#define Y_MIN_PIN 25 +//Alex Checar #define Y_STOP_PIN 25 +#define Y_ENABLE_PIN 24 //shared with X_enable_pin +#define Y_MAX_PIN -1 + +// z axes +#define Z_STEP_PIN 27 +#define Z_DIR_PIN 28 +#define Z_MIN_PIN 30 +//Alex Checar #define Z_STOP_PIN 30 +#define Z_ENABLE_PIN 29 +#define Z_MAX_PIN -1 + +//extruder pins +#define E0_STEP_PIN 12 +#define E0_DIR_PIN 17 +#define E0_ENABLE_PIN 3 + +#define HEATER_0_PIN 16 +#define TEMP_0_PIN 0 + +#define FAN_PIN -1 + +//bed pins +#define HEATER_BED_PIN -1 +#define TEMP_BED_PIN -1 + + +#define SDSS -1 +#define SDPOWER -1 +#define LED_PIN -1 + +//pin for controlling the PSU. +#define PS_ON_PIN 14 //Alex, Do this work on the card? + +//Alex extras from Gen3+ +#define KILL_PIN -1 +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define HEATER_2_PIN -1 + +#endif /**************************************************************************************** * Open Motion controller with enable based extruders From 253cf0f427d075183bffe34f88c63dfec370b498 Mon Sep 17 00:00:00 2001 From: Courtney Bane Date: Thu, 3 Jul 2014 18:51:52 -0500 Subject: [PATCH 05/33] Add Arduino additions for Arduino 1.5.x. --- .../hardware/Sanguino/boards.txt | 0 .../bootloaders/atmega/ATmegaBOOT_168.c | 0 .../atmega/ATmegaBOOT_168_atmega1284p.hex | 0 .../atmega/ATmegaBOOT_168_atmega1284p_8m.hex | 0 .../atmega/ATmegaBOOT_168_atmega644p.hex | 0 .../Sanguino/bootloaders/atmega/Makefile | 0 .../bootloaders/atmega644p/ATmegaBOOT.c | 0 .../bootloaders/atmega644p/ATmegaBOOT.c.tst | 0 .../atmega644p/ATmegaBOOT_644P.elf | Bin .../atmega644p/ATmegaBOOT_644P.hex | 0 .../Sanguino/bootloaders/atmega644p/Makefile | 0 .../bootloaders/atmega644p/README.txt | 0 .../hardware/Sanguino/cores/arduino/Arduino.h | 0 .../hardware/Sanguino/cores/arduino/CDC.cpp | 0 .../hardware/Sanguino/cores/arduino/Client.h | 0 .../hardware/Sanguino/cores/arduino/HID.cpp | 0 .../Sanguino/cores/arduino/HardwareSerial.cpp | 0 .../Sanguino/cores/arduino/HardwareSerial.h | 0 .../Sanguino/cores/arduino/IPAddress.cpp | 0 .../Sanguino/cores/arduino/IPAddress.h | 0 .../Sanguino/cores/arduino/Platform.h | 0 .../hardware/Sanguino/cores/arduino/Print.cpp | 0 .../hardware/Sanguino/cores/arduino/Print.h | 0 .../Sanguino/cores/arduino/Printable.h | 0 .../hardware/Sanguino/cores/arduino/Server.h | 0 .../Sanguino/cores/arduino/Stream.cpp | 0 .../hardware/Sanguino/cores/arduino/Stream.h | 0 .../hardware/Sanguino/cores/arduino/Tone.cpp | 0 .../hardware/Sanguino/cores/arduino/USBAPI.h | 0 .../Sanguino/cores/arduino/USBCore.cpp | 0 .../hardware/Sanguino/cores/arduino/USBCore.h | 0 .../hardware/Sanguino/cores/arduino/USBDesc.h | 0 .../hardware/Sanguino/cores/arduino/Udp.h | 0 .../Sanguino/cores/arduino/WCharacter.h | 0 .../Sanguino/cores/arduino/WInterrupts.c | 0 .../hardware/Sanguino/cores/arduino/WMath.cpp | 0 .../Sanguino/cores/arduino/WString.cpp | 0 .../hardware/Sanguino/cores/arduino/WString.h | 0 .../hardware/Sanguino/cores/arduino/binary.h | 0 .../hardware/Sanguino/cores/arduino/main.cpp | 0 .../hardware/Sanguino/cores/arduino/new.cpp | 0 .../hardware/Sanguino/cores/arduino/new.h | 0 .../hardware/Sanguino/cores/arduino/wiring.c | 0 .../Sanguino/cores/arduino/wiring_analog.c | 0 .../Sanguino/cores/arduino/wiring_digital.c | 0 .../Sanguino/cores/arduino/wiring_private.h | 0 .../Sanguino/cores/arduino/wiring_pulse.c | 0 .../Sanguino/cores/arduino/wiring_shift.c | 0 .../Sanguino/variants/standard/pins_arduino.h | 0 .../hardware/rambo/boards.txt | 0 .../hardware/rambo/cores/arduino/Arduino.h | 0 .../hardware/rambo/cores/arduino/CDC.cpp | 0 .../hardware/rambo/cores/arduino/Client.h | 0 .../hardware/rambo/cores/arduino/HID.cpp | 0 .../rambo/cores/arduino/HardwareSerial.cpp | 0 .../rambo/cores/arduino/HardwareSerial.h | 0 .../rambo/cores/arduino/IPAddress.cpp | 0 .../hardware/rambo/cores/arduino/IPAddress.h | 0 .../hardware/rambo/cores/arduino/Platform.h | 0 .../hardware/rambo/cores/arduino/Print.cpp | 0 .../hardware/rambo/cores/arduino/Print.h | 0 .../hardware/rambo/cores/arduino/Printable.h | 0 .../hardware/rambo/cores/arduino/Server.h | 0 .../hardware/rambo/cores/arduino/Stream.cpp | 0 .../hardware/rambo/cores/arduino/Stream.h | 0 .../hardware/rambo/cores/arduino/Tone.cpp | 0 .../hardware/rambo/cores/arduino/USBAPI.h | 0 .../hardware/rambo/cores/arduino/USBCore.cpp | 0 .../hardware/rambo/cores/arduino/USBCore.h | 0 .../hardware/rambo/cores/arduino/USBDesc.h | 0 .../hardware/rambo/cores/arduino/Udp.h | 0 .../hardware/rambo/cores/arduino/WCharacter.h | 0 .../rambo/cores/arduino/WInterrupts.c | 0 .../hardware/rambo/cores/arduino/WMath.cpp | 0 .../hardware/rambo/cores/arduino/WString.cpp | 0 .../hardware/rambo/cores/arduino/WString.h | 0 .../hardware/rambo/cores/arduino/binary.h | 0 .../hardware/rambo/cores/arduino/main.cpp | 0 .../hardware/rambo/cores/arduino/new.cpp | 0 .../hardware/rambo/cores/arduino/new.h | 0 .../hardware/rambo/cores/arduino/wiring.c | 0 .../rambo/cores/arduino/wiring_analog.c | 0 .../rambo/cores/arduino/wiring_digital.c | 0 .../rambo/cores/arduino/wiring_private.h | 0 .../rambo/cores/arduino/wiring_pulse.c | 0 .../rambo/cores/arduino/wiring_shift.c | 0 .../rambo/variants/standard/pins_arduino.h | 0 .../libraries/LiquidCrystal/LiquidCrystal.cpp | 0 .../libraries/LiquidCrystal/LiquidCrystal.h | 0 .../libraries/LiquidCrystal/keywords.txt | 0 .../libraries/SPI/SPI.cpp | 0 .../libraries/SPI/SPI.h | 0 .../libraries/SPI/keywords.txt | 0 .../libraries/U8glib/ChangeLog | 0 .../libraries/U8glib/INSTALL.TXT | 0 .../libraries/U8glib/U8glib.cpp | 0 .../libraries/U8glib/U8glib.h | 0 .../U8glib/examples/Bitmap/Bitmap.pde | 0 .../libraries/U8glib/examples/Chess/Chess.pde | 0 .../U8glib/examples/Console/Console.pde | 0 .../libraries/U8glib/examples/F/F.pde | 0 .../examples/GraphicsTest/GraphicsTest.pde | 0 .../U8glib/examples/HelloWorld/HelloWorld.pde | 0 .../libraries/U8glib/examples/Menu/Menu.pde | 0 .../U8glib/examples/PrintTest/PrintTest.pde | 0 .../U8glib/examples/Rotation/Rotation.pde | 0 .../libraries/U8glib/examples/Scale/Scale.pde | 0 .../U8glib/examples/TextRotX/TextRotX.pde | 0 .../U8glib/examples/U8gLogo/U8gLogo.pde | 0 .../libraries/U8glib/examples/XBM/XBM.pde | 0 .../libraries/U8glib/license.txt | 0 .../libraries/U8glib/utility/chessengine.c | 0 .../libraries/U8glib/utility/u8g.h | 0 .../libraries/U8glib/utility/u8g_bitmap.c | 0 .../libraries/U8glib/utility/u8g_circle.c | 0 .../libraries/U8glib/utility/u8g_clip.c | 0 .../libraries/U8glib/utility/u8g_com_api.c | 0 .../U8glib/utility/u8g_com_api_16gr.c | 0 .../U8glib/utility/u8g_com_arduino_common.c | 0 .../utility/u8g_com_arduino_fast_parallel.c | 0 .../U8glib/utility/u8g_com_arduino_hw_spi.c | 0 .../utility/u8g_com_arduino_no_en_parallel.c | 0 .../U8glib/utility/u8g_com_arduino_parallel.c | 0 .../utility/u8g_com_arduino_port_d_wr.c | 0 .../U8glib/utility/u8g_com_arduino_ssd_i2c.c | 0 .../utility/u8g_com_arduino_st7920_hw_spi.c | 0 .../utility/u8g_com_arduino_st7920_spi.c | 0 .../utility/u8g_com_arduino_std_sw_spi.c | 0 .../U8glib/utility/u8g_com_arduino_sw_spi.c | 0 .../U8glib/utility/u8g_com_arduino_t6963.c | 0 .../U8glib/utility/u8g_com_atmega_hw_spi.c | 0 .../U8glib/utility/u8g_com_atmega_parallel.c | 0 .../utility/u8g_com_atmega_st7920_hw_spi.c | 0 .../utility/u8g_com_atmega_st7920_spi.c | 0 .../U8glib/utility/u8g_com_atmega_sw_spi.c | 0 .../libraries/U8glib/utility/u8g_com_i2c.c | 0 .../libraries/U8glib/utility/u8g_com_io.c | 0 .../libraries/U8glib/utility/u8g_com_null.c | 0 .../libraries/U8glib/utility/u8g_cursor.c | 0 .../libraries/U8glib/utility/u8g_delay.c | 0 .../U8glib/utility/u8g_dev_flipdisc_2x7.c | 0 .../libraries/U8glib/utility/u8g_dev_gprof.c | 0 .../U8glib/utility/u8g_dev_ili9325d_320x240.c | 0 .../U8glib/utility/u8g_dev_ks0108_128x64.c | 0 .../U8glib/utility/u8g_dev_lc7981_160x80.c | 0 .../U8glib/utility/u8g_dev_lc7981_240x128.c | 0 .../U8glib/utility/u8g_dev_lc7981_240x64.c | 0 .../U8glib/utility/u8g_dev_lc7981_320x64.c | 0 .../libraries/U8glib/utility/u8g_dev_null.c | 0 .../U8glib/utility/u8g_dev_pcd8544_84x48.c | 0 .../U8glib/utility/u8g_dev_pcf8812_96x65.c | 0 .../U8glib/utility/u8g_dev_sbn1661_122x32.c | 0 .../U8glib/utility/u8g_dev_ssd1306_128x32.c | 0 .../U8glib/utility/u8g_dev_ssd1306_128x64.c | 0 .../U8glib/utility/u8g_dev_ssd1309_128x64.c | 0 .../utility/u8g_dev_ssd1322_nhd31oled_bw.c | 0 .../utility/u8g_dev_ssd1322_nhd31oled_gr.c | 0 .../utility/u8g_dev_ssd1325_nhd27oled_bw.c | 0 .../u8g_dev_ssd1325_nhd27oled_bw_new.c | 0 .../utility/u8g_dev_ssd1325_nhd27oled_gr.c | 0 .../u8g_dev_ssd1325_nhd27oled_gr_new.c | 0 .../U8glib/utility/u8g_dev_ssd1327_96x96_gr.c | 0 .../U8glib/utility/u8g_dev_st7565_64128n.c | 0 .../U8glib/utility/u8g_dev_st7565_dogm128.c | 0 .../U8glib/utility/u8g_dev_st7565_dogm132.c | 0 .../U8glib/utility/u8g_dev_st7565_lm6059.c | 0 .../U8glib/utility/u8g_dev_st7565_lm6063.c | 0 .../utility/u8g_dev_st7565_nhd_c12832.c | 0 .../utility/u8g_dev_st7565_nhd_c12864.c | 0 .../U8glib/utility/u8g_dev_st7687_c144mvgd.c | 0 .../U8glib/utility/u8g_dev_st7920_128x64.c | 0 .../U8glib/utility/u8g_dev_st7920_192x32.c | 0 .../U8glib/utility/u8g_dev_st7920_202x32.c | 0 .../U8glib/utility/u8g_dev_t6963_128x64.c | 0 .../U8glib/utility/u8g_dev_t6963_240x128.c | 0 .../U8glib/utility/u8g_dev_t6963_240x64.c | 0 .../U8glib/utility/u8g_dev_tls8204_84x48.c | 0 .../U8glib/utility/u8g_dev_uc1610_dogxl160.c | 0 .../U8glib/utility/u8g_dev_uc1701_dogs102.c | 0 .../U8glib/utility/u8g_dev_uc1701_mini12864.c | 0 .../libraries/U8glib/utility/u8g_ellipse.c | 0 .../libraries/U8glib/utility/u8g_font.c | 0 .../libraries/U8glib/utility/u8g_font_data.c | 0 .../libraries/U8glib/utility/u8g_line.c | 0 .../libraries/U8glib/utility/u8g_ll_api.c | 0 .../libraries/U8glib/utility/u8g_page.c | 0 .../libraries/U8glib/utility/u8g_pb.c | 0 .../libraries/U8glib/utility/u8g_pb14v1.c | 0 .../libraries/U8glib/utility/u8g_pb16h1.c | 0 .../libraries/U8glib/utility/u8g_pb16h2.c | 0 .../libraries/U8glib/utility/u8g_pb16v1.c | 0 .../libraries/U8glib/utility/u8g_pb16v2.c | 0 .../libraries/U8glib/utility/u8g_pb32h1.c | 0 .../libraries/U8glib/utility/u8g_pb8h1.c | 0 .../libraries/U8glib/utility/u8g_pb8h1f.c | 0 .../libraries/U8glib/utility/u8g_pb8h2.c | 0 .../libraries/U8glib/utility/u8g_pb8h8.c | 0 .../libraries/U8glib/utility/u8g_pb8v1.c | 0 .../libraries/U8glib/utility/u8g_pb8v2.c | 0 .../libraries/U8glib/utility/u8g_rect.c | 0 .../libraries/U8glib/utility/u8g_rot.c | 0 .../libraries/U8glib/utility/u8g_scale.c | 0 .../libraries/U8glib/utility/u8g_state.c | 0 .../libraries/U8glib/utility/u8g_u16toa.c | 0 .../libraries/U8glib/utility/u8g_u8toa.c | 0 .../U8glib/utility/u8g_virtual_screen.c | 0 .../hardware/marlin/avr/boards.txt | 72 + .../avr/bootloaders/atmega/ATmegaBOOT_168.c | 1071 + .../atmega/ATmegaBOOT_168_atmega1284p.hex | 130 + .../atmega/ATmegaBOOT_168_atmega1284p_8m.hex | 130 + .../atmega/ATmegaBOOT_168_atmega644p.hex | 126 + .../marlin/avr/bootloaders/atmega/Makefile | 254 + .../marlin/avr/libraries/U8glib/ChangeLog | 114 + .../marlin/avr/libraries/U8glib/INSTALL.TXT | 21 + .../marlin/avr/libraries/U8glib/U8glib.cpp | 80 + .../marlin/avr/libraries/U8glib/U8glib.h | 826 + .../U8glib/examples/Bitmap/Bitmap.pde | 130 + .../libraries/U8glib/examples/Chess/Chess.pde | 180 + .../U8glib/examples/Console/Console.pde | 230 + .../avr/libraries/U8glib/examples/F/F.pde | 139 + .../examples/GraphicsTest/GraphicsTest.pde | 223 + .../U8glib/examples/HelloWorld/HelloWorld.pde | 136 + .../libraries/U8glib/examples/Menu/Menu.pde | 234 + .../U8glib/examples/PrintTest/PrintTest.pde | 124 + .../U8glib/examples/Rotation/Rotation.pde | 152 + .../libraries/U8glib/examples/Scale/Scale.pde | 141 + .../U8glib/examples/TextRotX/TextRotX.pde | 154 + .../U8glib/examples/U8gLogo/U8gLogo.pde | 179 + .../avr/libraries/U8glib/examples/XBM/XBM.pde | 136 + .../marlin/avr/libraries/U8glib/license.txt | 80 + .../libraries/U8glib/utility/chessengine.c | 2392 + .../marlin/avr/libraries/U8glib/utility/u8g.h | 1607 + .../avr/libraries/U8glib/utility/u8g_bitmap.c | 177 + .../avr/libraries/U8glib/utility/u8g_circle.c | 382 + .../avr/libraries/U8glib/utility/u8g_clip.c | 156 + .../libraries/U8glib/utility/u8g_com_api.c | 173 + .../U8glib/utility/u8g_com_api_16gr.c | 94 + .../U8glib/utility/u8g_com_arduino_common.c | 75 + .../utility/u8g_com_arduino_fast_parallel.c | 245 + .../U8glib/utility/u8g_com_arduino_hw_spi.c | 191 + .../utility/u8g_com_arduino_no_en_parallel.c | 221 + .../U8glib/utility/u8g_com_arduino_parallel.c | 187 + .../utility/u8g_com_arduino_port_d_wr.c | 168 + .../U8glib/utility/u8g_com_arduino_ssd_i2c.c | 201 + .../utility/u8g_com_arduino_st7920_hw_spi.c | 220 + .../utility/u8g_com_arduino_st7920_spi.c | 295 + .../utility/u8g_com_arduino_std_sw_spi.c | 144 + .../U8glib/utility/u8g_com_arduino_sw_spi.c | 239 + .../U8glib/utility/u8g_com_arduino_t6963.c | 385 + .../U8glib/utility/u8g_com_atmega_hw_spi.c | 174 + .../U8glib/utility/u8g_com_atmega_parallel.c | 183 + .../utility/u8g_com_atmega_st7920_hw_spi.c | 205 + .../utility/u8g_com_atmega_st7920_spi.c | 170 + .../U8glib/utility/u8g_com_atmega_sw_spi.c | 141 + .../libraries/U8glib/utility/u8g_com_i2c.c | 249 + .../avr/libraries/U8glib/utility/u8g_com_io.c | 218 + .../libraries/U8glib/utility/u8g_com_null.c | 63 + .../avr/libraries/U8glib/utility/u8g_cursor.c | 99 + .../avr/libraries/U8glib/utility/u8g_delay.c | 215 + .../U8glib/utility/u8g_dev_flipdisc_2x7.c | 92 + .../libraries/U8glib/utility/u8g_dev_gprof.c | 130 + .../U8glib/utility/u8g_dev_ili9325d_320x240.c | 326 + .../U8glib/utility/u8g_dev_ks0108_128x64.c | 110 + .../U8glib/utility/u8g_dev_lc7981_160x80.c | 147 + .../U8glib/utility/u8g_dev_lc7981_240x128.c | 145 + .../U8glib/utility/u8g_dev_lc7981_240x64.c | 145 + .../U8glib/utility/u8g_dev_lc7981_320x64.c | 145 + .../libraries/U8glib/utility/u8g_dev_null.c | 67 + .../U8glib/utility/u8g_dev_pcd8544_84x48.c | 110 + .../U8glib/utility/u8g_dev_pcf8812_96x65.c | 123 + .../U8glib/utility/u8g_dev_sbn1661_122x32.c | 107 + .../U8glib/utility/u8g_dev_ssd1306_128x32.c | 247 + .../U8glib/utility/u8g_dev_ssd1306_128x64.c | 237 + .../U8glib/utility/u8g_dev_ssd1309_128x64.c | 144 + .../utility/u8g_dev_ssd1322_nhd31oled_bw.c | 334 + .../utility/u8g_dev_ssd1322_nhd31oled_gr.c | 333 + .../utility/u8g_dev_ssd1325_nhd27oled_bw.c | 263 + .../u8g_dev_ssd1325_nhd27oled_bw_new.c | 232 + .../utility/u8g_dev_ssd1325_nhd27oled_gr.c | 255 + .../u8g_dev_ssd1325_nhd27oled_gr_new.c | 227 + .../U8glib/utility/u8g_dev_ssd1327_96x96_gr.c | 299 + .../U8glib/utility/u8g_dev_st7565_64128n.c | 153 + .../U8glib/utility/u8g_dev_st7565_dogm128.c | 140 + .../U8glib/utility/u8g_dev_st7565_dogm132.c | 157 + .../U8glib/utility/u8g_dev_st7565_lm6059.c | 157 + .../U8glib/utility/u8g_dev_st7565_lm6063.c | 188 + .../utility/u8g_dev_st7565_nhd_c12832.c | 143 + .../utility/u8g_dev_st7565_nhd_c12864.c | 145 + .../U8glib/utility/u8g_dev_st7687_c144mvgd.c | 420 + .../U8glib/utility/u8g_dev_st7920_128x64.c | 171 + .../U8glib/utility/u8g_dev_st7920_192x32.c | 151 + .../U8glib/utility/u8g_dev_st7920_202x32.c | 154 + .../U8glib/utility/u8g_dev_t6963_128x64.c | 191 + .../U8glib/utility/u8g_dev_t6963_240x128.c | 195 + .../U8glib/utility/u8g_dev_t6963_240x64.c | 195 + .../U8glib/utility/u8g_dev_tls8204_84x48.c | 115 + .../U8glib/utility/u8g_dev_uc1610_dogxl160.c | 290 + .../U8glib/utility/u8g_dev_uc1701_dogs102.c | 113 + .../U8glib/utility/u8g_dev_uc1701_mini12864.c | 114 + .../libraries/U8glib/utility/u8g_ellipse.c | 100 + .../avr/libraries/U8glib/utility/u8g_font.c | 1422 + .../libraries/U8glib/utility/u8g_font_data.c | 84486 ++++++++++++++++ .../avr/libraries/U8glib/utility/u8g_line.c | 81 + .../avr/libraries/U8glib/utility/u8g_ll_api.c | 456 + .../avr/libraries/U8glib/utility/u8g_page.c | 81 + .../avr/libraries/U8glib/utility/u8g_pb.c | 191 + .../avr/libraries/U8glib/utility/u8g_pb14v1.c | 200 + .../avr/libraries/U8glib/utility/u8g_pb16h1.c | 213 + .../avr/libraries/U8glib/utility/u8g_pb16h2.c | 182 + .../avr/libraries/U8glib/utility/u8g_pb16v1.c | 200 + .../avr/libraries/U8glib/utility/u8g_pb16v2.c | 172 + .../avr/libraries/U8glib/utility/u8g_pb32h1.c | 208 + .../avr/libraries/U8glib/utility/u8g_pb8h1.c | 389 + .../avr/libraries/U8glib/utility/u8g_pb8h1f.c | 194 + .../avr/libraries/U8glib/utility/u8g_pb8h2.c | 167 + .../avr/libraries/U8glib/utility/u8g_pb8h8.c | 179 + .../avr/libraries/U8glib/utility/u8g_pb8v1.c | 184 + .../avr/libraries/U8glib/utility/u8g_pb8v2.c | 153 + .../avr/libraries/U8glib/utility/u8g_rect.c | 232 + .../avr/libraries/U8glib/utility/u8g_rot.c | 398 + .../avr/libraries/U8glib/utility/u8g_scale.c | 188 + .../avr/libraries/U8glib/utility/u8g_state.c | 102 + .../avr/libraries/U8glib/utility/u8g_u16toa.c | 68 + .../avr/libraries/U8glib/utility/u8g_u8toa.c | 68 + .../U8glib/utility/u8g_virtual_screen.c | 145 + .../hardware/marlin/avr/platform.txt | 9 + .../marlin/avr/variants/rambo/pins_arduino.h | 411 + .../avr/variants/sanguino/pins_arduino.h | 285 + 328 files changed, 112905 insertions(+) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/boards.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega/Makefile (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/Makefile (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/bootloaders/atmega644p/README.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Arduino.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/CDC.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Client.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/HID.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/HardwareSerial.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/HardwareSerial.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/IPAddress.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/IPAddress.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Platform.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Print.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Print.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Printable.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Server.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Stream.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Stream.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Tone.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/USBAPI.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/USBCore.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/USBCore.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/USBDesc.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/Udp.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/WCharacter.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/WInterrupts.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/WMath.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/WString.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/WString.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/binary.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/main.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/new.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/new.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring_analog.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring_digital.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring_private.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring_pulse.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/cores/arduino/wiring_shift.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/Sanguino/variants/standard/pins_arduino.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/boards.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Arduino.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/CDC.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Client.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/HID.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/HardwareSerial.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/HardwareSerial.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/IPAddress.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/IPAddress.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Platform.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Print.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Print.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Printable.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Server.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Stream.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Stream.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Tone.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/USBAPI.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/USBCore.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/USBCore.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/USBDesc.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/Udp.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/WCharacter.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/WInterrupts.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/WMath.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/WString.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/WString.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/binary.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/main.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/new.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/new.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring_analog.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring_digital.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring_private.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring_pulse.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/cores/arduino/wiring_shift.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/hardware/rambo/variants/standard/pins_arduino.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/LiquidCrystal/LiquidCrystal.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/LiquidCrystal/LiquidCrystal.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/LiquidCrystal/keywords.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/SPI/SPI.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/SPI/SPI.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/SPI/keywords.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/ChangeLog (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/INSTALL.TXT (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/U8glib.cpp (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/U8glib.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Bitmap/Bitmap.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Chess/Chess.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Console/Console.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/F/F.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/HelloWorld/HelloWorld.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Menu/Menu.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/PrintTest/PrintTest.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Rotation/Rotation.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/Scale/Scale.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/TextRotX/TextRotX.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/U8gLogo/U8gLogo.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/examples/XBM/XBM.pde (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/license.txt (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/chessengine.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g.h (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_bitmap.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_circle.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_clip.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_api.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_api_16gr.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_common.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_parallel.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_arduino_t6963.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_atmega_parallel.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_i2c.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_io.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_com_null.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_cursor.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_delay.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_gprof.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_null.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_64128n.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7920_128x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7920_192x32.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_st7920_202x32.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_t6963_128x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_t6963_240x128.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_t6963_240x64.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_ellipse.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_font.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_font_data.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_line.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_ll_api.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_page.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb14v1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb16h1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb16h2.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb16v1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb16v2.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb32h1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8h1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8h1f.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8h2.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8h8.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8v1.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_pb8v2.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_rect.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_rot.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_scale.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_state.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_u16toa.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_u8toa.c (100%) rename ArduinoAddons/{Arduino_1.x.x => Arduino_1.0.x}/libraries/U8glib/utility/u8g_virtual_screen.c (100%) create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h create mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/boards.txt rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/Makefile b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega/Makefile rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/Makefile b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/Makefile rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/README.txt b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/bootloaders/atmega644p/README.txt rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Arduino.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/CDC.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Client.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HID.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/HardwareSerial.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/IPAddress.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/IPAddress.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Platform.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Print.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Print.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Printable.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Server.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Stream.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Stream.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Tone.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBAPI.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBCore.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBCore.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBCore.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/USBDesc.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/Udp.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WCharacter.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WInterrupts.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WMath.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WMath.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WMath.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WMath.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WString.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/WString.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/binary.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/main.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/new.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/new.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/new.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_analog.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_digital.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_private.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_pulse.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/cores/arduino/wiring_shift.c rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/Sanguino/variants/standard/pins_arduino.h rename to ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/boards.txt rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Arduino.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/CDC.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Client.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HID.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HardwareSerial.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/HardwareSerial.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/IPAddress.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/IPAddress.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Platform.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Print.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Print.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Printable.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Server.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Stream.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Stream.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Tone.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBAPI.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBCore.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBCore.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBCore.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/USBDesc.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/Udp.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WCharacter.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WInterrupts.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WMath.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WMath.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WMath.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WMath.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WString.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/WString.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/binary.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/main.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/new.cpp rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/new.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/new.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_analog.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_digital.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_private.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_pulse.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/cores/arduino/wiring_shift.c rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/rambo/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/hardware/rambo/variants/standard/pins_arduino.h rename to ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.cpp rename to ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.h b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.h rename to ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/keywords.txt b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/keywords.txt rename to ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.cpp rename to ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.h b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.h rename to ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/SPI/keywords.txt b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/SPI/keywords.txt rename to ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/ChangeLog b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/ChangeLog rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/INSTALL.TXT b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/INSTALL.TXT rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/U8glib.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/U8glib.cpp rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/U8glib.h b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/U8glib.h rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Bitmap/Bitmap.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Bitmap/Bitmap.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Chess/Chess.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Chess/Chess.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Console/Console.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Console/Console.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/F/F.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/F/F.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/HelloWorld/HelloWorld.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/HelloWorld/HelloWorld.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Menu/Menu.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Menu/Menu.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/PrintTest/PrintTest.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/PrintTest/PrintTest.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Rotation/Rotation.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Rotation/Rotation.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Scale/Scale.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/Scale/Scale.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/TextRotX/TextRotX.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/TextRotX/TextRotX.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/U8gLogo/U8gLogo.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/U8gLogo/U8gLogo.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/XBM/XBM.pde b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.pde similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/examples/XBM/XBM.pde rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.pde diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/license.txt b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/license.txt rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/chessengine.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/chessengine.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g.h b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g.h rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_bitmap.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_bitmap.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_circle.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_circle.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_clip.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_clip.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_api.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_api.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_api_16gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_api_16gr.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_common.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_common.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_i2c.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_io.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_io.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_null.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_com_null.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_cursor.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_cursor.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_delay.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_delay.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_gprof.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_gprof.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_null.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_null.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_ellipse.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_ellipse.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_font.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_font.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_font_data.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_font_data.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_line.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_line.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_ll_api.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_ll_api.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_page.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_page.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb14v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb14v1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16h1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16h2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16h2.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16v1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16v2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb16v2.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb32h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb32h1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h1f.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h1f.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h2.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h8.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8h8.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8v1.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8v2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_pb8v2.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_rect.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_rect.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_rot.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_rot.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_scale.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_scale.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_state.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_state.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_u16toa.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_u16toa.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_u8toa.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_u8toa.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c diff --git a/ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_virtual_screen.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c similarity index 100% rename from ArduinoAddons/Arduino_1.x.x/libraries/U8glib/utility/u8g_virtual_screen.c rename to ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt new file mode 100644 index 000000000..58354ce69 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt @@ -0,0 +1,72 @@ +# See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification + +############################################################## + +menu.cpu=Processor + +######################################## +## RAMBo +######################################## +rambo.name=RAMBo + +rambo.upload.tool=arduino:avrdude +rambo.upload.protocol=wiring +rambo.upload.maximum_size=258048 +rambo.upload.speed=115200 + +rambo.bootloader.low_fuses=0xFF +rambo.bootloader.high_fuses=0xD8 +rambo.bootloader.extended_fuses=0xFD +rambo.bootloader.path=stk500v2 +rambo.bootloader.file=stk500boot_v2_mega2560.hex +rambo.bootloader.unlock_bits=0x3F +rambo.bootloader.lock_bits=0x0F + +rambo.build.mcu=atmega2560 +rambo.build.f_cpu=16000000L +rambo.build.board=AVR_RAMBO +rambo.build.core=arduino:arduino +rambo.build.variant=rambo + +######################################## +## Sanguino +######################################## +sanguino.name=Sanguino + +sanguino.upload.tool=ardunio:avrdude +sanguino.upload.protocol=stk500 +sanguino.upload.maximum_size=131072 +sanguino.upload.speed=57600 + +sanguino.bootloader.low_fuses=0xD6 +sanguino.bootloader.high_fuses=0xDA +sanguino.bootloader.extended_fuses=0xFD +sanguino.bootloader.path=atmega +sanguino.bootloader.unlock_bits=0x3F +sanguino.bootloader.lock_bits=0x0F + +sanguino.build.mcu=atmega1284p +sanguino.build.f_cpu=16000000L +sanguino.build.board=AVR_SANGUINO +sanguino.build.core=arduino:arduino +sanguino.build.variant=sanguino + +sanguino.menu.cpu.atmega644=ATmega644P +sanguino.menu.cpu.atmega644.upload.maximum_size=63488 +sanguino.menu.cpu.atmega644.bootloader.low_fuses=0xFF +sanguino.menu.cpu.atmega644.bootloader.high_fuses=0x9A +sanguino.menu.cpu.atmega644.bootloader.extended_fuses=0xFF +sanguino.menu.cpu.atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex +sanguino.menu.cpu.atmega644.build.mcu=atmega644p + +sanguino.menu.cpu.atmega12848m=ATmega1284p 8MHz +sanguino.menu.cpu.atmega12848m.upload.speed=19200 +sanguino.menu.cpu.atmega12848m.bootloader.file=ATmegaBOOT_168_atmega1284p_8m.hex +sanguino.menu.cpu.atmega12848m.build.f_cpu=8000000L + +sanguino.menu.cpu.atmega1284=ATmega1284p 16MHz +sanguino.menu.cpu.atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex + +sanguino.menu.cpu.atmega1284m=ATmega1284p 20MHz +sanguino.menu.cpu.atmega1284m.bootloader.file=ATmegaBOOT_168_atmega1284p.hex +sanguino.menu.cpu.atmega1284m.build.f_cpu=20000000L diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c new file mode 100644 index 000000000..1df3f0311 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c @@ -0,0 +1,1071 @@ +/**********************************************************/ +/* Serial Bootloader for Atmel megaAVR Controllers */ +/* */ +/* tested with ATmega8, ATmega128 and ATmega168 */ +/* should work with other mega's, see code for details */ +/* */ +/* ATmegaBOOT.c */ +/* */ +/* */ +/* 20090308: integrated Mega changes into main bootloader */ +/* source by D. Mellis */ +/* 20080930: hacked for Arduino Mega (with the 1280 */ +/* processor, backwards compatible) */ +/* by D. Cuartielles */ +/* 20070626: hacked for Arduino Diecimila (which auto- */ +/* resets when a USB connection is made to it) */ +/* by D. Mellis */ +/* 20060802: hacked for Arduino by D. Cuartielles */ +/* based on a previous hack by D. Mellis */ +/* and D. Cuartielles */ +/* */ +/* Monitor and debug functions were added to the original */ +/* code by Dr. Erik Lins, chip45.com. (See below) */ +/* */ +/* Thanks to Karl Pitrich for fixing a bootloader pin */ +/* problem and more informative LED blinking! */ +/* */ +/* For the latest version see: */ +/* http://www.chip45.com/ */ +/* */ +/* ------------------------------------------------------ */ +/* */ +/* based on stk500boot.c */ +/* Copyright (c) 2003, Jason P. Kyle */ +/* All rights reserved. */ +/* see avr1.org for original file and information */ +/* */ +/* This program is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU General */ +/* Public License as published by the Free Software */ +/* Foundation; either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will */ +/* be useful, but WITHOUT ANY WARRANTY; without even the */ +/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ +/* PARTICULAR PURPOSE. See the GNU General Public */ +/* License for more details. */ +/* */ +/* You should have received a copy of the GNU General */ +/* Public License along with this program; if not, write */ +/* to the Free Software Foundation, Inc., */ +/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* */ +/* Licence can be viewed at */ +/* http://www.fsf.org/licenses/gpl.txt */ +/* */ +/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ +/* m8515,m8535. ATmega161 has a very small boot block so */ +/* isn't supported. */ +/* */ +/* Tested with m168 */ +/**********************************************************/ + +/* $Id$ */ + + +/* some includes */ +#include +#include +#include +#include +#include +#include + +/* the current avr-libc eeprom functions do not support the ATmega168 */ +/* own eeprom write/read functions are used instead */ +#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) +#include +#endif + +/* Use the F_CPU defined in Makefile */ + +/* 20060803: hacked by DojoCorp */ +/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ +/* set the waiting time for the bootloader */ +/* get this from the Makefile instead */ +/* #define MAX_TIME_COUNT (F_CPU>>4) */ + +/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ +#define MAX_ERROR_COUNT 5 + +/* set the UART baud rate */ +/* 20060803: hacked by DojoCorp */ +//#define BAUD_RATE 115200 +#ifndef BAUD_RATE +#define BAUD_RATE 19200 +#endif + + +/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ +/* never allow AVR Studio to do an update !!!! */ +#define HW_VER 0x02 +#define SW_MAJOR 0x01 +#define SW_MINOR 0x10 + + +/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ +/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ +/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ +/* BL0... means UART0, BL1... means UART1 */ +#ifdef __AVR_ATmega128__ +#define BL_DDR DDRF +#define BL_PORT PORTF +#define BL_PIN PINF +#define BL0 PINF7 +#define BL1 PINF6 +#elif defined __AVR_ATmega1280__ +/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ +#elif defined __AVR_ATmega1284P_ || defined __AVR_ATmega644P__ + +#else +/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ +#define BL_DDR DDRD +#define BL_PORT PORTD +#define BL_PIN PIND +#define BL PIND6 +#endif + + +/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ +/* if monitor functions are included, LED goes on after monitor was entered */ +#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ +/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB7 +#elif defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB0 +#else +/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ +/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB5 +#endif + + +/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) +#define MONITOR 1 +#endif + + +/* define various device id's */ +/* manufacturer byte is always the same */ +#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( + +#if defined __AVR_ATmega1280__ +#define SIG2 0x97 +#define SIG3 0x03 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega1284P__ +#define SIG2 0x97 +#define SIG3 0x05 +#define PAGE_SIZE 0x080U //128 words + +#elif defined __AVR_ATmega1281__ +#define SIG2 0x97 +#define SIG3 0x04 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega644P__ +#define SIG2 0x96 +#define SIG3 0x0A +#define PAGE_SIZE 0x080U //128 words + +#elif defined __AVR_ATmega128__ +#define SIG2 0x97 +#define SIG3 0x02 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega64__ +#define SIG2 0x96 +#define SIG3 0x02 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega32__ +#define SIG2 0x95 +#define SIG3 0x02 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega16__ +#define SIG2 0x94 +#define SIG3 0x03 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega8__ +#define SIG2 0x93 +#define SIG3 0x07 +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega88__ +#define SIG2 0x93 +#define SIG3 0x0a +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega168__ +#define SIG2 0x94 +#define SIG3 0x06 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega328P__ +#define SIG2 0x95 +#define SIG3 0x0F +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega162__ +#define SIG2 0x94 +#define SIG3 0x04 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega163__ +#define SIG2 0x94 +#define SIG3 0x02 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega169__ +#define SIG2 0x94 +#define SIG3 0x05 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega8515__ +#define SIG2 0x93 +#define SIG3 0x06 +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega8535__ +#define SIG2 0x93 +#define SIG3 0x08 +#define PAGE_SIZE 0x20U //32 words +#endif + + +/* function prototypes */ +void putch(char); +char getch(void); +void getNch(uint8_t); +void byte_response(uint8_t); +void nothing_response(void); +char gethex(void); +void puthex(char); +void flash_led(uint8_t); + +/* some variables */ +union address_union { + uint16_t word; + uint8_t byte[2]; +} address; + +union length_union { + uint16_t word; + uint8_t byte[2]; +} length; + +struct flags_struct { + unsigned eeprom : 1; + unsigned rampz : 1; +} flags; + +uint8_t buff[256]; +uint8_t address_high; + +uint8_t pagesz=0x80; + +uint8_t i; +uint8_t bootuart = 0; + +uint8_t error_count = 0; + +void (*app_start)(void) = 0x0000; + + +/* main program starts here */ +int main(void) +{ + uint8_t ch,ch2; + uint16_t w; + +#ifdef WATCHDOG_MODS + ch = MCUSR; + MCUSR = 0; + + WDTCSR |= _BV(WDCE) | _BV(WDE); + WDTCSR = 0; + + // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. + if (! (ch & _BV(EXTRF))) // if it's a not an external reset... + app_start(); // skip bootloader +#else + asm volatile("nop\n\t"); +#endif + + /* set pin direction for bootloader pin and enable pullup */ + /* for ATmega128, two pins need to be initialized */ +#ifdef __AVR_ATmega128__ + BL_DDR &= ~_BV(BL0); + BL_DDR &= ~_BV(BL1); + BL_PORT |= _BV(BL0); + BL_PORT |= _BV(BL1); +#else + /* We run the bootloader regardless of the state of this pin. Thus, don't + put it in a different state than the other pins. --DAM, 070709 + This also applies to Arduino Mega -- DC, 080930 + BL_DDR &= ~_BV(BL); + BL_PORT |= _BV(BL); + */ +#endif + + +#ifdef __AVR_ATmega128__ + /* check which UART should be used for booting */ + if(bit_is_clear(BL_PIN, BL0)) { + bootuart = 1; + } + else if(bit_is_clear(BL_PIN, BL1)) { + bootuart = 2; + } +#endif + +#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ + /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ + /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ + bootuart = 1; +#endif + + /* check if flash is programmed already, if not start bootloader anyway */ + if(pgm_read_byte_near(0x0000) != 0xFF) { + +#ifdef __AVR_ATmega128__ + /* no UART was selected, start application */ + if(!bootuart) { + app_start(); + } +#else + /* check if bootloader pin is set low */ + /* we don't start this part neither for the m8, nor m168 */ + //if(bit_is_set(BL_PIN, BL)) { + // app_start(); + // } +#endif + } + +#ifdef __AVR_ATmega128__ + /* no bootuart was selected, default to uart 0 */ + if(!bootuart) { + bootuart = 1; + } +#endif + + + /* initialize UART(s) depending on CPU defined */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + if(bootuart == 1) { + UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSR0A = 0x00; + UCSR0C = 0x06; + UCSR0B = _BV(TXEN0)|_BV(RXEN0); + } + if(bootuart == 2) { + UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSR1A = 0x00; + UCSR1C = 0x06; + UCSR1B = _BV(TXEN1)|_BV(RXEN1); + } +#elif defined __AVR_ATmega163__ + UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSRA = 0x00; + UCSRB = _BV(TXEN)|_BV(RXEN); +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + +#ifdef DOUBLE_SPEED + UCSR0A = (1<> 8; +#else + UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; +#endif + + UCSR0B = (1<>8; // set baud rate + UBRRL = (((F_CPU/BAUD_RATE)/16)-1); + UCSRB = (1<> 8; + UCSRA = 0x00; + UCSRC = 0x06; + UCSRB = _BV(TXEN)|_BV(RXEN); +#endif + +#if defined __AVR_ATmega1280__ + /* Enable internal pull-up resistor on pin D0 (RX), in order + to supress line noise that prevents the bootloader from + timing out (DAM: 20070509) */ + /* feature added to the Arduino Mega --DC: 080930 */ + DDRE &= ~_BV(PINE0); + PORTE |= _BV(PINE0); +#endif + + + /* set LED pin as output */ + LED_DDR |= _BV(LED); + + + /* flash onboard LED to signal entering of bootloader */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + // 4x for UART0, 5x for UART1 + flash_led(NUM_LED_FLASHES + bootuart); +#else + flash_led(NUM_LED_FLASHES); +#endif + + /* 20050803: by DojoCorp, this is one of the parts provoking the + system to stop listening, cancelled from the original */ + //putch('\0'); + + /* forever loop */ + for (;;) { + + /* get character from UART */ + ch = getch(); + + /* A bunch of if...else if... gives smaller code than switch...case ! */ + + /* Hello is anyone home ? */ + if(ch=='0') { + nothing_response(); + } + + + /* Request programmer ID */ + /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ + /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ + else if(ch=='1') { + if (getch() == ' ') { + putch(0x14); + putch('A'); + putch('V'); + putch('R'); + putch(' '); + putch('I'); + putch('S'); + putch('P'); + putch(0x10); + } else { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } + } + + + /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ + else if(ch=='@') { + ch2 = getch(); + if (ch2>0x85) getch(); + nothing_response(); + } + + + /* AVR ISP/STK500 board requests */ + else if(ch=='A') { + ch2 = getch(); + if(ch2==0x80) byte_response(HW_VER); // Hardware version + else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version + else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version + else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 + else byte_response(0x00); // Covers various unnecessary responses we don't care about + } + + + /* Device Parameters DON'T CARE, DEVICE IS FIXED */ + else if(ch=='B') { + getNch(20); + nothing_response(); + } + + + /* Parallel programming stuff DON'T CARE */ + else if(ch=='E') { + getNch(5); + nothing_response(); + } + + + /* P: Enter programming mode */ + /* R: Erase device, don't care as we will erase one page at a time anyway. */ + else if(ch=='P' || ch=='R') { + nothing_response(); + } + + + /* Leave programming mode */ + else if(ch=='Q') { + nothing_response(); +#ifdef WATCHDOG_MODS + // autoreset via watchdog (sneaky!) + WDTCSR = _BV(WDE); + while (1); // 16 ms +#endif + } + + + /* Set address, little endian. EEPROM in bytes, FLASH in words */ + /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ + /* This might explain why little endian was used here, big endian used everywhere else. */ + else if(ch=='U') { + address.byte[0] = getch(); + address.byte[1] = getch(); + nothing_response(); + } + + + /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ + else if(ch=='V') { + if (getch() == 0x30) { + getch(); + ch = getch(); + getch(); + if (ch == 0) { + byte_response(SIG1); + } else if (ch == 1) { + byte_response(SIG2); + } else { + byte_response(SIG3); + } + } else { + getNch(3); + byte_response(0x00); + } + } + + + /* Write memory, length is big endian and is in bytes */ + else if(ch=='d') { + length.byte[1] = getch(); + length.byte[0] = getch(); + flags.eeprom = 0; + if (getch() == 'E') flags.eeprom = 1; + for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME + else address_high = 0x00; +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) + RAMPZ = address_high; +#endif + address.word = address.word << 1; //address * 2 -> byte location + /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ + if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes + cli(); //Disable interrupts, just to be sure +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete +#else + while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete +#endif + asm volatile( + "clr r17 \n\t" //page_word_count + "lds r30,address \n\t" //Address of FLASH location (in bytes) + "lds r31,address+1 \n\t" + "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM + "ldi r29,hi8(buff) \n\t" + "lds r24,length \n\t" //Length of data to be written (in bytes) + "lds r25,length+1 \n\t" + "length_loop: \n\t" //Main loop, repeat for number of words in block + "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page + "brne no_page_erase \n\t" + "wait_spm1: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm1 \n\t" + "ldi r16,0x03 \n\t" //Erase page pointed to by Z + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "wait_spm2: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm2 \n\t" + + "ldi r16,0x11 \n\t" //Re-enable RWW section + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "no_page_erase: \n\t" + "ld r0,Y+ \n\t" //Write 2 bytes into page buffer + "ld r1,Y+ \n\t" + + "wait_spm3: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm3 \n\t" + "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer + "sts %0,r16 \n\t" + "spm \n\t" + + "inc r17 \n\t" //page_word_count++ + "cpi r17,%1 \n\t" + "brlo same_page \n\t" //Still same page in FLASH + "write_page: \n\t" + "clr r17 \n\t" //New page, write current one first + "wait_spm4: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm4 \n\t" +#ifdef __AVR_ATmega163__ + "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write +#endif + "ldi r16,0x05 \n\t" //Write page pointed to by Z + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" + "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) +#endif + "wait_spm5: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm5 \n\t" + "ldi r16,0x11 \n\t" //Re-enable RWW section + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "same_page: \n\t" + "adiw r30,2 \n\t" //Next word in FLASH + "sbiw r24,2 \n\t" //length-2 + "breq final_write \n\t" //Finished + "rjmp length_loop \n\t" + "final_write: \n\t" + "cpi r17,0 \n\t" + "breq block_done \n\t" + "adiw r24,2 \n\t" //length+2, fool above check on length after short page write + "rjmp write_page \n\t" + "block_done: \n\t" + "clr __zero_reg__ \n\t" //restore zero register +#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ || __AVR_ATmega1284P__ || __AVR_ATmega644P__ + : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" +#else + : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" +#endif + ); + /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ + /* exit the bootloader without a power cycle anyhow */ + } + putch(0x14); + putch(0x10); + } else { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } + } + + + /* Read memory block mode, length is big endian. */ + else if(ch=='t') { + length.byte[1] = getch(); + length.byte[0] = getch(); +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME + else flags.rampz = 0; +#endif + address.word = address.word << 1; // address * 2 -> byte location + if (getch() == 'E') flags.eeprom = 1; + else flags.eeprom = 0; + if (getch() == ' ') { // Command terminator + putch(0x14); + for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay + if (flags.eeprom) { // Byte access EEPROM read +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + while(EECR & (1<= 'a') { + return (a - 'a' + 0x0a); + } else if(a >= '0') { + return(a - '0'); + } + return a; +} + + +char gethex(void) { + return (gethexnib() << 4) + gethexnib(); +} + + +void puthex(char ch) { + char ah; + + ah = ch >> 4; + if(ah >= 0x0a) { + ah = ah - 0x0a + 'a'; + } else { + ah += '0'; + } + + ch &= 0x0f; + if(ch >= 0x0a) { + ch = ch - 0x0a + 'a'; + } else { + ch += '0'; + } + + putch(ah); + putch(ch); +} + + +void putch(char ch) +{ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + if(bootuart == 1) { + while (!(UCSR0A & _BV(UDRE0))); + UDR0 = ch; + } + else if (bootuart == 2) { + while (!(UCSR1A & _BV(UDRE1))); + UDR1 = ch; + } +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + while (!(UCSR0A & _BV(UDRE0))); + UDR0 = ch; +#else + /* m8,16,32,169,8515,8535,163 */ + while (!(UCSRA & _BV(UDRE))); + UDR = ch; +#endif +} + + +char getch(void) +{ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + uint32_t count = 0; + if(bootuart == 1) { + while(!(UCSR0A & _BV(RXC0))) { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + + return UDR0; + } + else if(bootuart == 2) { + while(!(UCSR1A & _BV(RXC1))) { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + + return UDR1; + } + return 0; +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + uint32_t count = 0; + while(!(UCSR0A & _BV(RXC0))){ + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR0; +#else + /* m8,16,32,169,8515,8535,163 */ + uint32_t count = 0; + while(!(UCSRA & _BV(RXC))){ + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR; +#endif +} + + +void getNch(uint8_t count) +{ + while(count--) { +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + if(bootuart == 1) { + while(!(UCSR0A & _BV(RXC0))); + UDR0; + } + else if(bootuart == 2) { + while(!(UCSR1A & _BV(RXC1))); + UDR1; + } +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + getch(); +#else + /* m8,16,32,169,8515,8535,163 */ + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + //while(!(UCSRA & _BV(RXC))); + //UDR; + getch(); // need to handle time out +#endif + } +} + + +void byte_response(uint8_t val) +{ + if (getch() == ' ') { + putch(0x14); + putch(val); + putch(0x10); + } else { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } +} + + +void nothing_response(void) +{ + if (getch() == ' ') { + putch(0x14); + putch(0x10); + } else { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } +} + +void flash_led(uint8_t count) +{ + while (count--) { + LED_PORT |= _BV(LED); + _delay_ms(100); + LED_PORT &= ~_BV(LED); + _delay_ms(100); + } +} + + +/* end of file ATmegaBOOT.c */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex new file mode 100644 index 000000000..a63dc8dd0 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex @@ -0,0 +1,130 @@ +:020000021000EC +:10F000000C9446F80C9465F80C9465F80C9465F82B +:10F010000C9465F80C9465F80C9465F80C9465F8FC +:10F020000C9465F80C9465F80C9465F80C9465F8EC +:10F030000C9465F80C9465F80C9465F80C9465F8DC +:10F040000C9465F80C9465F80C9465F80C9465F8CC +:10F050000C9465F80C9465F80C9465F80C9465F8BC +:10F060000C9465F80C9465F80C9465F80C9465F8AC +:10F070000C9465F80C9465F80C9465F80C9465F89C +:10F080000C9465F80C9465F80C9465F811241FBE77 +:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE +:10F0A000F7EF01E00BBF02C007900D92A230B1074D +:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 +:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 +:10F0D0000201913019F0923041F008959091C000F2 +:10F0E00095FFFCCF8093C60008959091C80095FFCE +:10F0F000FCCF8093CE0008951F93982F95959595FA +:10F1000095959595905D182F1F701A304CF4105DF1 +:10F11000892F0E9467F8812F0E9467F81F91089538 +:10F12000195A892F0E9467F8812F0E9467F81F9152 +:10F130000895EF92FF920F931F9380910201813007 +:10F1400069F1823031F080E01F910F91FF90EF90D4 +:10F150000895EE24FF2487018091C80087FD17C021 +:10F160000894E11CF11C011D111D81E4E81682E4E4 +:10F17000F8068FE0080780E0180770F3E0910401BB +:10F18000F091050109958091C80087FFE9CF809132 +:10F19000CE001F910F91FF90EF900895EE24FF2471 +:10F1A00087018091C00087FD17C00894E11CF11C05 +:10F1B000011D111D81E4E81682E4F8068FE00807BE +:10F1C00080E0180770F3E0910401F09105010995C2 +:10F1D0008091C00087FFE9CF8091C6001F910F91F9 +:10F1E000FF90EF9008951F930E9499F8182F0E94A6 +:10F1F00067F8113634F410330CF01053812F1F913F +:10F2000008951755812F1F9108951F930E94F3F8B9 +:10F21000182F0E94F3F81295107F810F1F91089507 +:10F2200020910201882339F0213031F0223061F041 +:10F2300081508823C9F708959091C00097FFFCCFB3 +:10F240009091C6008150F5CF9091C80097FFFCCFF8 +:10F250009091CE008150EDCF1F93182F0E9499F806 +:10F26000803281F0809103018F5F809303018530AC +:10F2700011F01F910895E0910401F09105010995A5 +:10F280001F91089584E10E9467F8812F0E9467F81A +:10F2900080E10E9467F8EDCF0E9499F8803271F00A +:10F2A000809103018F5F80930301853009F00895F9 +:10F2B000E0910401F09105010995089584E10E940F +:10F2C00067F880E10E9467F8089515C0289A2FEF2B +:10F2D00031EE44E0215030404040E1F700C00000F2 +:10F2E00028982FEF31EE44E0215030404040E1F7C4 +:10F2F00000C000008150882349F70895EF92FF92E3 +:10F300000F931F93CF93DF93000081E0809302015E +:10F3100080E18093C4001092C5001092C00086E086 +:10F320008093C20088E18093C100209A81E00E940E +:10F3300065F90E9499F88033B1F18133B9F18034D5 +:10F3400009F454C0813409F45AC0823409F469C004 +:10F35000853409F46CC0803531F1823521F1813575 +:10F3600011F1853509F469C0863509F471C0843618 +:10F3700009F47AC0843709F4E1C0853709F43FC144 +:10F38000863709F44AC0809103018F5F809303019F +:10F39000853079F6E0910401F091050109950E940C +:10F3A00099F8803351F60E944CF9C3CF0E9499F826 +:10F3B000803249F784E10E9467F881E40E9467F88F +:10F3C00086E50E9467F882E50E9467F880E20E9465 +:10F3D00067F889E40E9467F883E50E9467F880E592 +:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 +:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 +:10F4000099F8803809F414C1813809F415C182389B +:10F4100009F416C1883909F407C180E00E942CF96B +:10F4200088CF84E10E9410F90E944CF982CF85E0D8 +:10F430000E9410F90E944CF97CCF0E9499F88093A9 +:10F4400006010E9499F8809307010E944CF971CF40 +:10F450000E9499F8803309F405C183E00E9410F9F5 +:10F4600080E00E942CF965CF0E9499F880930902F0 +:10F470000E9499F88093080280910C028E7F8093FD +:10F480000C020E9499F8853409F4FDC080910802AD +:10F49000909109020097A1F068E0E62E61E0F62E57 +:10F4A00000E010E00E9499F8F70181937F010F5F5F +:10F4B0001F4F80910802909109020817190790F3D5 +:10F4C0000E9499F8803209F05ECF80910C0280FF93 +:10F4D000ECC08091060190910701880F991F9093CD +:10F4E000070180930601209108023091090221153D +:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 +:10F50000F70161917F010E94DCFB809106019091DF +:10F510000701019690930701809306010F5F1F4F2B +:10F5200020910802309109020217130748F384E181 +:10F530000E9467F880E10E9467F8FBCE0E9499F86C +:10F54000809309020E9499F8809308028091060135 +:10F550009091070197FDA3C020910C022D7F20936D +:10F560000C02880F991F90930701809306010E9457 +:10F5700099F8853409F48DC080910C028E7F8093B8 +:10F580000C020E9499F8803209F0D3CE84E10E94E7 +:10F5900067F88091080290910902009709F440C031 +:10F5A00000E010E0809106019091070116C0FC0177 +:10F5B00084910E9467F8809106019091070101965D +:10F5C00090930701809306010F5F1F4F209108025F +:10F5D000309109020217130718F520910C0220FD43 +:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 +:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 +:10F6000099F8803209F0BFCE84E10E9467F88EE15C +:10F610000E9467F887E90E9467F885E00E9467F812 +:10F6200080E10E9467F885CE83E00E942CF981CEAC +:10F6300082E00E942CF97DCE81E00E942CF979CEE7 +:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD +:10F650008091060190910701019690930701809394 +:10F660000601B2CF0E9499F80E9499F8082F0E94D3 +:10F6700099F8002309F48BC0013009F48CC085E0AF +:10F680000E942CF956CE80910C02816080930C026E +:10F69000FDCE80910C02816080930C0272CF20918C +:10F6A0000C02226020930C025CCF8091070187FD41 +:10F6B00076C010920B0280E08BBF80910601909182 +:10F6C0000701880F991F909307018093060180918D +:10F6D000080280FF09C080910802909109020196FA +:10F6E0009093090280930802F894F999FECF1127AC +:10F6F000E0910601F0910701C8E0D1E08091080295 +:10F7000090910902103091F400915700017001307E +:10F71000D9F303E000935700E8950091570001707A +:10F720000130D9F301E100935700E8950990199051 +:10F730000091570001700130D9F301E000935700A8 +:10F74000E8951395103898F0112700915700017033 +:10F750000130D9F305E000935700E8950091570078 +:10F7600001700130D9F301E100935700E89532961A +:10F77000029709F0C7CF103011F00296E5CF11249F +:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 +:10F790000E942CF9CECD87E90E942CF9CACDF1E068 +:10F7A000F0930B0281E088CFF999FECF92BD81BD25 +:10F7B000F89A992780B50895262FF999FECF1FBA98 +:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A +:08F7D00001960895F894FFCFA3 +:02F7D8008000AF +:040000031000F000F9 +:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex new file mode 100644 index 000000000..7f5f3f3d4 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex @@ -0,0 +1,130 @@ +:020000021000EC +:10F000000C9446F80C9465F80C9465F80C9465F82B +:10F010000C9465F80C9465F80C9465F80C9465F8FC +:10F020000C9465F80C9465F80C9465F80C9465F8EC +:10F030000C9465F80C9465F80C9465F80C9465F8DC +:10F040000C9465F80C9465F80C9465F80C9465F8CC +:10F050000C9465F80C9465F80C9465F80C9465F8BC +:10F060000C9465F80C9465F80C9465F80C9465F8AC +:10F070000C9465F80C9465F80C9465F80C9465F89C +:10F080000C9465F80C9465F80C9465F811241FBE77 +:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE +:10F0A000F7EF01E00BBF02C007900D92A230B1074D +:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 +:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 +:10F0D0000201913019F0923041F008959091C000F2 +:10F0E00095FFFCCF8093C60008959091C80095FFCE +:10F0F000FCCF8093CE0008951F93982F95959595FA +:10F1000095959595905D182F1F701A304CF4105DF1 +:10F11000892F0E9467F8812F0E9467F81F91089538 +:10F12000195A892F0E9467F8812F0E9467F81F9152 +:10F130000895EF92FF920F931F9380910201813007 +:10F1400069F1823031F080E01F910F91FF90EF90D4 +:10F150000895EE24FF2487018091C80087FD17C021 +:10F160000894E11CF11C011D111D81E2E81681EAE1 +:10F17000F80687E0080780E0180770F3E0910401C3 +:10F18000F091050109958091C80087FFE9CF809132 +:10F19000CE001F910F91FF90EF900895EE24FF2471 +:10F1A00087018091C00087FD17C00894E11CF11C05 +:10F1B000011D111D81E2E81681EAF80687E00807C3 +:10F1C00080E0180770F3E0910401F09105010995C2 +:10F1D0008091C00087FFE9CF8091C6001F910F91F9 +:10F1E000FF90EF9008951F930E9499F8182F0E94A6 +:10F1F00067F8113634F410330CF01053812F1F913F +:10F2000008951755812F1F9108951F930E94F3F8B9 +:10F21000182F0E94F3F81295107F810F1F91089507 +:10F2200020910201882339F0213031F0223061F041 +:10F2300081508823C9F708959091C00097FFFCCFB3 +:10F240009091C6008150F5CF9091C80097FFFCCFF8 +:10F250009091CE008150EDCF1F93182F0E9499F806 +:10F26000803281F0809103018F5F809303018530AC +:10F2700011F01F910895E0910401F09105010995A5 +:10F280001F91089584E10E9467F8812F0E9467F81A +:10F2900080E10E9467F8EDCF0E9499F8803271F00A +:10F2A000809103018F5F80930301853009F00895F9 +:10F2B000E0910401F09105010995089584E10E940F +:10F2C00067F880E10E9467F8089515C0289A2FEF2B +:10F2D00030E742E0215030404040E1F700C00000FC +:10F2E00028982FEF30E742E0215030404040E1F7CE +:10F2F00000C000008150882349F70895EF92FF92E3 +:10F300000F931F93CF93DF93000081E0809302015E +:10F3100089E18093C4001092C5001092C00086E07D +:10F320008093C20088E18093C100209A81E00E940E +:10F3300065F90E9499F88033B1F18133B9F18034D5 +:10F3400009F454C0813409F45AC0823409F469C004 +:10F35000853409F46CC0803531F1823521F1813575 +:10F3600011F1853509F469C0863509F471C0843618 +:10F3700009F47AC0843709F4E1C0853709F43FC144 +:10F38000863709F44AC0809103018F5F809303019F +:10F39000853079F6E0910401F091050109950E940C +:10F3A00099F8803351F60E944CF9C3CF0E9499F826 +:10F3B000803249F784E10E9467F881E40E9467F88F +:10F3C00086E50E9467F882E50E9467F880E20E9465 +:10F3D00067F889E40E9467F883E50E9467F880E592 +:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 +:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 +:10F4000099F8803809F414C1813809F415C182389B +:10F4100009F416C1883909F407C180E00E942CF96B +:10F4200088CF84E10E9410F90E944CF982CF85E0D8 +:10F430000E9410F90E944CF97CCF0E9499F88093A9 +:10F4400006010E9499F8809307010E944CF971CF40 +:10F450000E9499F8803309F405C183E00E9410F9F5 +:10F4600080E00E942CF965CF0E9499F880930902F0 +:10F470000E9499F88093080280910C028E7F8093FD +:10F480000C020E9499F8853409F4FDC080910802AD +:10F49000909109020097A1F068E0E62E61E0F62E57 +:10F4A00000E010E00E9499F8F70181937F010F5F5F +:10F4B0001F4F80910802909109020817190790F3D5 +:10F4C0000E9499F8803209F05ECF80910C0280FF93 +:10F4D000ECC08091060190910701880F991F9093CD +:10F4E000070180930601209108023091090221153D +:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 +:10F50000F70161917F010E94DCFB809106019091DF +:10F510000701019690930701809306010F5F1F4F2B +:10F5200020910802309109020217130748F384E181 +:10F530000E9467F880E10E9467F8FBCE0E9499F86C +:10F54000809309020E9499F8809308028091060135 +:10F550009091070197FDA3C020910C022D7F20936D +:10F560000C02880F991F90930701809306010E9457 +:10F5700099F8853409F48DC080910C028E7F8093B8 +:10F580000C020E9499F8803209F0D3CE84E10E94E7 +:10F5900067F88091080290910902009709F440C031 +:10F5A00000E010E0809106019091070116C0FC0177 +:10F5B00084910E9467F8809106019091070101965D +:10F5C00090930701809306010F5F1F4F209108025F +:10F5D000309109020217130718F520910C0220FD43 +:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 +:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 +:10F6000099F8803209F0BFCE84E10E9467F88EE15C +:10F610000E9467F887E90E9467F885E00E9467F812 +:10F6200080E10E9467F885CE83E00E942CF981CEAC +:10F6300082E00E942CF97DCE81E00E942CF979CEE7 +:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD +:10F650008091060190910701019690930701809394 +:10F660000601B2CF0E9499F80E9499F8082F0E94D3 +:10F6700099F8002309F48BC0013009F48CC085E0AF +:10F680000E942CF956CE80910C02816080930C026E +:10F69000FDCE80910C02816080930C0272CF20918C +:10F6A0000C02226020930C025CCF8091070187FD41 +:10F6B00076C010920B0280E08BBF80910601909182 +:10F6C0000701880F991F909307018093060180918D +:10F6D000080280FF09C080910802909109020196FA +:10F6E0009093090280930802F894F999FECF1127AC +:10F6F000E0910601F0910701C8E0D1E08091080295 +:10F7000090910902103091F400915700017001307E +:10F71000D9F303E000935700E8950091570001707A +:10F720000130D9F301E100935700E8950990199051 +:10F730000091570001700130D9F301E000935700A8 +:10F74000E8951395103898F0112700915700017033 +:10F750000130D9F305E000935700E8950091570078 +:10F7600001700130D9F301E100935700E89532961A +:10F77000029709F0C7CF103011F00296E5CF11249F +:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 +:10F790000E942CF9CECD87E90E942CF9CACDF1E068 +:10F7A000F0930B0281E088CFF999FECF92BD81BD25 +:10F7B000F89A992780B50895262FF999FECF1FBA98 +:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A +:08F7D00001960895F894FFCFA3 +:02F7D8008000AF +:040000031000F000F9 +:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex new file mode 100644 index 000000000..2edf9c677 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex @@ -0,0 +1,126 @@ +:10F800000C943E7C0C945B7C0C945B7C0C945B7C39 +:10F810000C945B7C0C945B7C0C945B7C0C945B7C0C +:10F820000C945B7C0C945B7C0C945B7C0C945B7CFC +:10F830000C945B7C0C945B7C0C945B7C0C945B7CEC +:10F840000C945B7C0C945B7C0C945B7C0C945B7CDC +:10F850000C945B7C0C945B7C0C945B7C0C945B7CCC +:10F860000C945B7C0C945B7C0C945B7C0C945B7CBC +:10F870000C945B7C0C945B7C0C945B7C11241FBE11 +:10F88000CFEFD0E1DEBFCDBF11E0A0E0B1E0EAEA0A +:10F89000FFEF02C005900D92A230B107D9F712E038 +:10F8A000A2E0B1E001C01D92AD30B107E1F70E94C6 +:10F8B000747D0C94D37F0C94007C90910201913064 +:10F8C00019F0923041F008959091C00095FFFCCF5F +:10F8D0008093C60008959091C80095FFFCCF809357 +:10F8E000CE0008951F93982F95959595959595958C +:10F8F000905D182F1F701A304CF4105D892F0E94F4 +:10F900005D7C812F0E945D7C1F910895195A892F7B +:10F910000E945D7C812F0E945D7C1F910895EF9273 +:10F92000FF920F931F9380910201813069F1823021 +:10F9300031F080E01F910F91FF90EF900895EE2439 +:10F94000FF2487018091C80087FD17C00894E11C3F +:10F95000F11C011D111D81E4E81682E4F8068FE018 +:10F96000080780E0180770F3E0910401F0910501A9 +:10F9700009958091C80087FFE9CF8091CE001F9143 +:10F980000F91FF90EF900895EE24FF24870180915E +:10F99000C00087FD17C00894E11CF11C011D111D5A +:10F9A00081E4E81682E4F8068FE0080780E0180793 +:10F9B00070F3E0910401F091050109958091C00078 +:10F9C00087FFE9CF8091C6001F910F91FF90EF90C4 +:10F9D00008951F930E948F7C182F0E945D7C113622 +:10F9E00034F410330CF01053812F1F9108951755E4 +:10F9F000812F1F9108951F930E94E97C182F0E9468 +:10FA0000E97C1295107F810F1F91089520910201CA +:10FA1000882339F0213031F0223061F08150882381 +:10FA2000C9F708959091C00097FFFCCF9091C60050 +:10FA30008150F5CF9091C80097FFFCCF9091CE00F8 +:10FA40008150EDCF1F93182F0E948F7C803281F060 +:10FA5000809103018F5F80930301853011F01F9126 +:10FA60000895E0910401F091050109951F91089511 +:10FA700084E10E945D7C812F0E945D7C80E10E9478 +:10FA80005D7CEDCF0E948F7C803271F0809103010C +:10FA90008F5F80930301853009F00895E0910401A0 +:10FAA000F09105010995089584E10E945D7C80E153 +:10FAB0000E945D7C089515C0289A2FEF31EE44E036 +:10FAC000215030404040E1F700C0000028982FEF5F +:10FAD00031EE44E0215030404040E1F700C00000EA +:10FAE0008150882349F70895EF92FF920F931F9357 +:10FAF000CF93DF93000081E08093020180E1809347 +:10FB0000C4001092C5001092C00086E08093C2002D +:10FB100088E18093C100209A81E00E945B7D0E9471 +:10FB20008F7C8033B1F18133B9F1803409F454C052 +:10FB3000813409F45AC0823409F469C0853409F467 +:10FB40006CC0803531F1823521F1813511F1853577 +:10FB500009F469C0863509F471C0843609F47AC0A5 +:10FB6000843709F4E1C0853709F439C1863709F4CF +:10FB70004AC0809103018F5F80930301853079F63D +:10FB8000E0910401F091050109950E948F7C80337A +:10FB900051F60E94427DC3CF0E948F7C803249F78C +:10FBA00084E10E945D7C81E40E945D7C86E50E9488 +:10FBB0005D7C82E50E945D7C80E20E945D7C89E440 +:10FBC0000E945D7C83E50E945D7C80E50E945D7CF7 +:10FBD00080E10E945D7CA3CF0E948F7C8638C8F2B2 +:10FBE0000E948F7C0E94427D9ACF0E948F7C803839 +:10FBF00009F40EC1813809F40FC1823809F410C12B +:10FC0000883909F401C180E00E94227D88CF84E117 +:10FC10000E94067D0E94427D82CF85E00E94067D83 +:10FC20000E94427D7CCF0E948F7C809306010E94BF +:10FC30008F7C809307010E94427D71CF0E948F7C50 +:10FC4000803309F4F1C083E00E94067D80E00E94C9 +:10FC5000227D65CF0E948F7C809309020E948F7C59 +:10FC60008093080280910C028E7F80930C020E9488 +:10FC70008F7C853409F4E9C08091080290910902D3 +:10FC80000097A1F068E0E62E61E0F62E00E010E0BB +:10FC90000E948F7CF70181937F010F5F1F4F80913E +:10FCA0000802909109020817190790F30E948F7CAF +:10FCB000803209F05ECF80910C0280FFE5C0809118 +:10FCC000060190910701880F991F90930701809377 +:10FCD0000601209108023091090221153105E9F051 +:10FCE00048E0E42E41E0F42E00E010E0F7016191DD +:10FCF0007F010E94C57F80910601909107010196C6 +:10FD000090930701809306010F5F1F4F2091080217 +:10FD1000309109020217130748F384E10E945D7CC9 +:10FD200080E10E945D7CFBCE0E948F7C8093090263 +:10FD30000E948F7C809308028091060190910701B8 +:10FD400097FD9CC020910C022D7F20930C02880F00 +:10FD5000991F90930701809306010E948F7C853440 +:10FD600009F486C080910C028E7F80930C020E9461 +:10FD70008F7C803209F0D3CE84E10E945D7C20919B +:10FD800008023091090221153105D1F100E010E09F +:10FD900080910601909107010CC041FF5CC0019663 +:10FDA00090930701809306010F5F1F4F02171307FF +:10FDB00038F540910C0240FFF0CF0E94BD7F0E94B9 +:10FDC0005D7C809106019091070101969093070157 +:10FDD000809306012091080230910902E5CF0E942C +:10FDE0008F7C803209F0C5CE84E10E945D7C8EE17B +:10FDF0000E945D7C86E90E945D7C8AE00E945D7CB9 +:10FE000080E10E945D7C8BCE83E00E94227D87CEC4 +:10FE100082E00E94227D83CE81E00E94227D7FCEFF +:10FE200080E10E94227D7BCE0E948F7C0E948F7C8D +:10FE3000082F0E948F7C002309F497C0013009F439 +:10FE400098C08AE00E94227D6ACE80910C02816077 +:10FE500080930C0211CFFC0184910E945D7C209163 +:10FE6000080230910902809106019091070197CF15 +:10FE700080910C02816080930C0279CF20910C025A +:10FE8000226020930C0263CF80910701880F880BBA +:10FE9000817080930B028091060190910701880F79 +:10FEA000991F90930701809306018091080280FFBB +:10FEB00009C080910802909109020196909309026D +:10FEC00080930802F894F999FECF1127E09106017A +:10FED000F0910701C8E0D1E08091080290910902F9 +:10FEE000103091F40091570001700130D9F303E014 +:10FEF00000935700E8950091570001700130D9F345 +:10FF000001E100935700E89509901990009157007E +:10FF100001700130D9F301E000935700E895139583 +:10FF2000103898F011270091570001700130D9F373 +:10FF300005E000935700E8950091570001700130EB +:10FF4000D9F301E100935700E8953296029709F042 +:10FF5000C7CF103011F00296E5CF112484E10E9442 +:10FF60005D7C80E10E945D7CDACD8EE10E94227D85 +:10FF7000D6CD86E90E94227DD2CDF999FECF92BDE1 +:10FF800081BDF89A992780B50895262FF999FECF5B +:10FF90001FBA92BD81BD20BD0FB6F894FA9AF99AA6 +:0AFFA0000FBE01960895F894FFCFFC +:02FFAA008000D5 +:040000030000F80001 +:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile new file mode 100644 index 000000000..3f2bb6156 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile @@ -0,0 +1,254 @@ +# Makefile for ATmegaBOOT +# E.Lins, 18.7.2005 +# $Id$ +# +# Instructions +# +# To make bootloader .hex file: +# make diecimila +# make lilypad +# make ng +# etc... +# +# To burn bootloader .hex file: +# make diecimila_isp +# make lilypad_isp +# make ng_isp +# etc... + +# program name should not be changed... +PROGRAM = ATmegaBOOT_168 + +# enter the parameters for the avrdude isp tool +ISPTOOL = stk500v2 +ISPPORT = usb +ISPSPEED = -b 115200 + +MCU_TARGET = atmega168 +LDSECTION = --section-start=.text=0x3800 + +# the efuse should really be 0xf8; since, however, only the lower +# three bits of that byte are used on the atmega168, avrdude gets +# confused if you specify 1's for the higher bits, see: +# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ +# +# similarly, the lock bits should be 0xff instead of 0x3f (to +# unlock the bootloader section) and 0xcf instead of 0x0f (to +# lock it), but since the high two bits of the lock byte are +# unused, avrdude would get confused. + +ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ +-e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m +ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ +-U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m + +STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" +STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ +-lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt +STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt + + +OBJ = $(PROGRAM).o +OPTIMIZE = -O2 + +DEFS = +LIBS = + +CC = avr-gcc + +# Override is only needed by avr-lib build system. + +override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) +override LDFLAGS = -Wl,$(LDSECTION) +#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) + +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump + +all: + +lilypad: TARGET = lilypad +lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' +lilypad: AVR_FREQ = 8000000L +lilypad: $(PROGRAM)_lilypad.hex + +lilypad_isp: lilypad +lilypad_isp: TARGET = lilypad +lilypad_isp: HFUSE = DD +lilypad_isp: LFUSE = E2 +lilypad_isp: EFUSE = 00 +lilypad_isp: isp + +lilypad_resonator: TARGET = lilypad_resonator +lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3' +lilypad_resonator: AVR_FREQ = 8000000L +lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex + +lilypad_resonator_isp: lilypad_resonator +lilypad_resonator_isp: TARGET = lilypad_resonator +lilypad_resonator_isp: HFUSE = DD +lilypad_resonator_isp: LFUSE = C6 +lilypad_resonator_isp: EFUSE = 00 +lilypad_resonator_isp: isp + +pro8: TARGET = pro_8MHz +pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' +pro8: AVR_FREQ = 8000000L +pro8: $(PROGRAM)_pro_8MHz.hex + +pro8_isp: pro8 +pro8_isp: TARGET = pro_8MHz +pro8_isp: HFUSE = DD +pro8_isp: LFUSE = C6 +pro8_isp: EFUSE = 00 +pro8_isp: isp + +pro16: TARGET = pro_16MHz +pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' +pro16: AVR_FREQ = 16000000L +pro16: $(PROGRAM)_pro_16MHz.hex + +pro16_isp: pro16 +pro16_isp: TARGET = pro_16MHz +pro16_isp: HFUSE = DD +pro16_isp: LFUSE = C6 +pro16_isp: EFUSE = 00 +pro16_isp: isp + +pro20: TARGET = pro_20mhz +pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' +pro20: AVR_FREQ = 20000000L +pro20: $(PROGRAM)_pro_20mhz.hex + +pro20_isp: pro20 +pro20_isp: TARGET = pro_20mhz +pro20_isp: HFUSE = DD +pro20_isp: LFUSE = C6 +pro20_isp: EFUSE = 00 +pro20_isp: isp + +diecimila: TARGET = diecimila +diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' +diecimila: AVR_FREQ = 16000000L +diecimila: $(PROGRAM)_diecimila.hex + +diecimila_isp: diecimila +diecimila_isp: TARGET = diecimila +diecimila_isp: HFUSE = DD +diecimila_isp: LFUSE = FF +diecimila_isp: EFUSE = 00 +diecimila_isp: isp + +ng: TARGET = ng +ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' +ng: AVR_FREQ = 16000000L +ng: $(PROGRAM)_ng.hex + +ng_isp: ng +ng_isp: TARGET = ng +ng_isp: HFUSE = DD +ng_isp: LFUSE = FF +ng_isp: EFUSE = 00 +ng_isp: isp + +atmega328: TARGET = atmega328 +atmega328: MCU_TARGET = atmega328p +atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 +atmega328: AVR_FREQ = 16000000L +atmega328: LDSECTION = --section-start=.text=0x7800 +atmega328: $(PROGRAM)_atmega328.hex + +atmega328_isp: atmega328 +atmega328_isp: TARGET = atmega328 +atmega328_isp: MCU_TARGET = atmega328p +atmega328_isp: HFUSE = DA +atmega328_isp: LFUSE = FF +atmega328_isp: EFUSE = 05 +atmega328_isp: isp + +atmega328_pro8: TARGET = atmega328_pro_8MHz +atmega328_pro8: MCU_TARGET = atmega328p +atmega328_pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED +atmega328_pro8: AVR_FREQ = 8000000L +atmega328_pro8: LDSECTION = --section-start=.text=0x7800 +atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex + +atmega328_pro8_isp: atmega328_pro8 +atmega328_pro8_isp: TARGET = atmega328_pro_8MHz +atmega328_pro8_isp: MCU_TARGET = atmega328p +atmega328_pro8_isp: HFUSE = DA +atmega328_pro8_isp: LFUSE = FF +atmega328_pro8_isp: EFUSE = 05 +atmega328_pro8_isp: isp + +mega: TARGET = atmega1280 +mega: MCU_TARGET = atmega1280 +mega: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' -DBAUD_RATE=57600 +mega: AVR_FREQ = 16000000L +mega: LDSECTION = --section-start=.text=0x1F000 +mega: $(PROGRAM)_atmega1280.hex + +mega_isp: mega +mega_isp: TARGET = atmega1280 +mega_isp: MCU_TARGET = atmega1280 +mega_isp: HFUSE = DA +mega_isp: LFUSE = FF +mega_isp: EFUSE = F5 +mega_isp: isp + +atmega1284p: TARGET = atmega1284p +atmega1284p: MCU_TARGET = atmega1284p +atmega1284p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' +atmega1284p: AVR_FREQ = 16000000L +atmega1284p: LDSECTION = --section-start=.text=0x1F000 +atmega1284p: $(PROGRAM)_atmega1284p.hex + +atmega1284p_8m: TARGET = atmega1284p +atmega1284p_8m: MCU_TARGET = atmega1284p +atmega1284p_8m: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=19200' +atmega1284p_8m: AVR_FREQ = 8000000L +atmega1284p_8m: LDSECTION = --section-start=.text=0x1F000 +atmega1284p_8m: $(PROGRAM)_atmega1284p_8m.hex + +atmega644p: TARGET = atmega644p +atmega644p: MCU_TARGET = atmega644p +atmega644p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' +atmega644p: AVR_FREQ = 16000000L +atmega644p: LDSECTION = --section-start=.text=0xF800 +atmega644p: $(PROGRAM)_atmega644p.hex + + +atmega1284p_isp: atmega1284p +atmega1284p_isp: TARGET = atmega1284p +atmega1284p_isp: MCU_TARGET = atmega1284p +atmega1284p_isp: HFUSE = DC +atmega1284p_isp: LFUSE = FF +atmega1284p_isp: EFUSE = FD +atmega1284p_isp: isp + +isp: $(TARGET) + $(ISPFUSES) + $(ISPFLASH) + +isp-stk500: $(PROGRAM)_$(TARGET).hex + $(STK500-1) + $(STK500-2) + +%.elf: $(OBJ) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) + +clean: + rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex + +%.lst: %.elf + $(OBJDUMP) -h -S $< > $@ + +%.hex: %.elf + $(OBJCOPY) -j .text -j .data -O ihex $< $@ + +%.srec: %.elf + $(OBJCOPY) -j .text -j .data -O srec $< $@ + +%.bin: %.elf + $(OBJCOPY) -j .text -j .data -O binary $< $@ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog new file mode 100644 index 000000000..1ee88d6cf --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog @@ -0,0 +1,114 @@ + +u8glib ChangeLog + +2012-01-01 v0.01 Oliver Kraus + * first beta release for Arduino IDE with simple SSD1325 support +2012-01-04 v0.02 Oliver Kraus + * support for some more display types +2012-01-07 v0.03 Oliver Kraus + * fixed some bugs, added more examples +2012-01-07 v0.04 Oliver Kraus + * single font file +2012-01-08 v0.05 Oliver Kraus + * Cleanup + * More examples + * SSD1325 graylevel support +2012-01-15 v0.06 Oliver Kraus + * LM6063 support +2012-01-17 v0.07 Oliver Kraus + * LM6063 support (update) +2012-01-19 v0.08 Oliver Kraus + * ST7920 beta device +2012-01-21 v0.09 Oliver Kraus + * ST7920 fixed (192x32) + * fixed bug in com layer if pins are none + * str reference position +2012-01-22 v0.10 Oliver Kraus + * Experimental LM6059 +2012-01-24 v0.11 Oliver Kraus + * new st7920 memory layout for 128x64 lcd + * experimental st7920 SPI +2012-01-25 v0.12 Oliver Kraus + * fixed st7920 memory layout for 128x64 lcd + * ST7920 SPI performance improvement +2012-01-27 v0.13 Oliver Kraus + * LM6059 (Adafruit Display) fixed +2012-02-01 v0.14 Oliver Kraus + * undoRotation() + * setRot..() can be used without restrictions + * Class U8GLIB derived from Print class. New function "print" + * Fixed memory index bug in the page management procedures +2012-02-12 v1.00 Oliver Kraus + * XBM support + * F() macro support + * str-rotation commands support ref-height and ref-position +2012-03-17 v1.02 Oliver Kraus + * U8GLIB_ST7687_C144MVGD spi experimental + * U8GLIB_LC7981_160X80 8bit + * Intersection test for frame and box procedures + * 4L double memory architecture + * setContrast infrastructure implemented, but not available for all devices + * drawCircle, drawDisc + * Bugfix for drawStr270 + * New examples: Chess (ported from dogm128 lib) and GraphicsTest +2012-03-31 v1.03 Oliver Kraus + * experimental parallel mode atmega + * more unifont code pages + * double memory, for NHD OLED and DOGXL160 + * "Menu" example + * drawLine +2012-04-13 v1.04 Oliver Kraus + * Adjust U8grelease: Same version number with AVR and Arduino variant +2012-06-10 v1.05 Oliver Kraus + * m2icon font + * experimental lc7981_240x64 device + * experimental ssd1306 + * experimental ssd1322 + * Hardware state backup/restore procedure +2012-06-15 v1.06 Oliver Kraus + * SBN1661 (SED1520?) support + * SSD1306 support + * U8G_PROGMEM bugfix +2012-07-04 v1.07 Oliver Kraus + * Added Makefiles for AVR release (issue 77) + * Fixed examples for Arduino Environment (issue 78) +2012-10-02 v1.08 Oliver Kraus + * Improved delay calculation for strobe pulse (issue 20) + * Support Chipkit (issue 39) + * Improved speed for ST7920 parallel mode (issue 79) + * Overall speed optimization (new page intersection algorithm) + * Support for Displays Newhaven NHD-C12864, CrystalFontz GFAG20232, Seeedstudio 96x96 OLED + * Added SPI support for ST7920 with plain AVR (issue 85) + * Add more LC7981 devices +2012-12-23 v1.09 Oliver Kraus + * Support for Displaytech 64128n + * Support for MINI12864 + * HW SPI for ST7920 + * Add delay after sending a byte with (ST7920 com) + * Support ATTiny + * Support I2C for SSD1306 + * bdf2u8g, Windows executable released + * LC7981 320x64 + * Scalue up: u8g::setScale2x2 + * Added more bitmap fonts + * u8g::drawRBox(), u8g::drawRFrame() + * Support for CFAG20232 (st7920_202x32) + * Fixed ST7920 SW SPI for ChipKit + * Support for tls8204 +2013-02-02 v1.10 Oliver Kraus + * Support for SSD1309 + * Support for NHD-C12832A1Z + * Bugfix: Fixed reset controll in parallel modes + * Bugfix: Fixed calculation of cursor position + * Bugfix: ST7920 parallel mode +2013-03-2 v1.11 Oliver Kraus + * Support for T6963 + * Support for Arduino Due + * Sleep Mode + * 4x mode for ST7920 + * New C++ interface for ST7920 + + + + + \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT new file mode 100644 index 000000000..d87f97128 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT @@ -0,0 +1,21 @@ + +U8GLIB +http://code.google.com/p/u8glib/ + + +Install instructions for the Arduino environment. + + 1. Unzip u8glib_arduino_vX.XX.zip into the "libraries" folder + 2. Start Arduino IDE + +Install instructions for the Chipkit (Arduino) environment. + + 1. cd /libraries + 2. unzip u8glib_arduino_vX.XX.zip + 3. cd ///hardware/pic32/libraries + 4. again: u8glib_arduino_vX.XX.zip + 5. Open hardware/pic32/cores/pic32/Print.h + Remove line + #define BYTE 0 + from the file, use PRINT_BYTE instead of BYTE. + \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp new file mode 100644 index 000000000..aa870b114 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp @@ -0,0 +1,80 @@ +/* + + U8glib.cpp + + C++ Interface + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#include "U8glib.h" + + + +uint8_t U8GLIB::initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) +{ + prepare(); + return u8g_InitSPI(&u8g, dev, sck, mosi, cs, a0, reset); +} + +uint8_t U8GLIB::initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) +{ + prepare(); + return u8g_InitHWSPI(&u8g, dev, cs, a0, reset); +} + +uint8_t U8GLIB::initI2C(u8g_dev_t *dev, uint8_t options) +{ + prepare(); + return u8g_InitI2C(&u8g, dev, options); +} + +uint8_t U8GLIB::init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) +{ + prepare(); + return u8g_Init8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); +} + +uint8_t U8GLIB::init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) +{ + prepare(); + return u8g_Init8BitFixedPort(&u8g, dev, en, cs, di, rw, reset); +} + +uint8_t U8GLIB::initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) +{ + prepare(); + return u8g_InitRW8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h new file mode 100644 index 000000000..a77444425 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h @@ -0,0 +1,826 @@ +/* + + U8glib.h + + C++ Interface + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#ifndef _CPP_U8GLIB +#define _CPP_U8GLIB + +#include +#include "utility/u8g.h" + + +class U8GLIB : public Print +{ + private: + u8g_t u8g; + u8g_uint_t tx, ty; // current position for the Print base class procedures + uint8_t is_begin; + + void prepare(void) { tx = 0; ty = 0; is_begin = 0; } + void cbegin(void) { if ( is_begin == 0 ) { is_begin = 1; u8g_Begin(&u8g); } } + uint8_t initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); + uint8_t initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); + uint8_t initI2C(u8g_dev_t *dev, uint8_t options); + protected: + uint8_t init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); + private: + uint8_t init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE); + uint8_t initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); + public: + + /* constructor */ + U8GLIB(void) + { } + U8GLIB(u8g_dev_t *dev) + { prepare(); u8g_Init(&u8g, dev); } + U8GLIB(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) + { initSPI(dev, sck, mosi, cs, a0, reset); } + U8GLIB(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) + { initHWSPI(dev, cs, a0, reset); } + U8GLIB(u8g_dev_t *dev, uint8_t options) + { initI2C(dev, options); } + U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) + { init8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); } + U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) + { initRW8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); } + + uint8_t begin(void) { is_begin = 1; return u8g_Begin(&u8g); } + + void setPrintPos(u8g_uint_t x, u8g_uint_t y) { tx = x; ty = y; } + u8g_t *getU8g(void) { return &u8g; } + + + /* implementation of the write interface to the print class */ +#if defined(ARDUINO) && ARDUINO >= 100 + size_t write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); return 1;} +#else + void write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); } +#endif + + /* screen rotation */ + void undoRotation(void) { u8g_UndoRotation(&u8g); } + void setRot90(void) { u8g_SetRot90(&u8g); } + void setRot180(void) { u8g_SetRot180(&u8g); } + void setRot270(void) { u8g_SetRot270(&u8g); } + + /* screen scaling */ + void undoScale(void) { u8g_UndoScale(&u8g); } + void setScale2x2(void) { u8g_SetScale2x2(&u8g); } + + /* picture loop */ + void firstPage(void) { cbegin(); u8g_FirstPage(&u8g); } + uint8_t nextPage(void) { return u8g_NextPage(&u8g); } + + /* system commands */ + uint8_t setContrast(uint8_t contrast) { cbegin(); return u8g_SetContrast(&u8g, contrast); } + void sleepOn(void) { u8g_SleepOn(&u8g); } + void sleepOff(void) { u8g_SleepOff(&u8g); } + + /* graphic primitives */ + void setColorIndex(uint8_t color_index) { u8g_SetColorIndex(&u8g, color_index); } + uint8_t getColorIndex(void) { return u8g_GetColorIndex(&u8g); } + + void setDefaultForegroundColor(void) { u8g_SetDefaultForegroundColor(&u8g); } + void setDefaultBackgroundColor(void) { u8g_SetDefaultBackgroundColor(&u8g); } + void setDefaultMidColor(void) { u8g_SetDefaultMidColor(&u8g); } + + u8g_uint_t getWidth(void) { return u8g_GetWidth(&u8g); } + u8g_uint_t getHeight(void) { return u8g_GetHeight(&u8g); } + uint8_t getMode(void) { return u8g_GetMode(&u8g); } + + void drawPixel(u8g_uint_t x, u8g_uint_t y) { return u8g_DrawPixel(&u8g, x, y); } + void drawHLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) { u8g_DrawHLine(&u8g, x, y, w); } + void drawVLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) { u8g_DrawVLine(&u8g, x, y, h); } + void drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) { u8g_DrawLine(&u8g, x1, y1, x2, y2); } + + void drawFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawFrame(&u8g, x, y, w, h); } + void drawRFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRFrame(&u8g, x, y, w, h,r); } + void drawBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawBox(&u8g, x, y, w, h); } + void drawRBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRBox(&u8g, x, y, w, h,r); } + + void drawCircle(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawCircle(&u8g, x0, y0, rad, opt); } + void drawDisc(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawDisc(&u8g, x0, y0, rad, opt); } + + /* bitmap handling */ + void drawBitmap(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) + { u8g_DrawBitmap(&u8g, x, y, cnt, h, bitmap); } + void drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) + { u8g_DrawBitmapP(&u8g, x, y, cnt, h, bitmap); } + + void drawXBM(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) + { u8g_DrawXBM(&u8g, x, y, w, h, bitmap); } + void drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) + { u8g_DrawXBMP(&u8g, x, y, w, h, bitmap); } + + + /* font handling */ + void setFont(const u8g_fntpgm_uint8_t *font) {u8g_SetFont(&u8g, font); } + int8_t getFontAscent(void) { return u8g_GetFontAscent(&u8g); } + int8_t getFontDescent(void) { return u8g_GetFontDescent(&u8g); } + int8_t getFontLineSpacing(void) { return u8g_GetFontLineSpacing(&u8g); } + + u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); } + u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr90(&u8g, x, y, s); } + u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr180(&u8g, x, y, s); } + u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr270(&u8g, x, y, s); } + u8g_uint_t drawStrP(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStrP(&u8g, x, y, s); } + u8g_uint_t drawStr90P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr90P(&u8g, x, y, s); } + u8g_uint_t drawStr180P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr180P(&u8g, x, y, s); } + u8g_uint_t drawStr270P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr270P(&u8g, x, y, s); } + + void setFontPosBaseline(void) { u8g_SetFontPosBaseline(&u8g); } + void setFontPosBottom(void) { u8g_SetFontPosBottom(&u8g); } + void setFontPosCenter(void) { u8g_SetFontPosCenter(&u8g); } + void setFontPosTop(void) { u8g_SetFontPosTop(&u8g); } + + void setFontRefHeightText(void) { u8g_SetFontRefHeightText(&u8g); } + void setFontRefHeightExtendedText(void) { u8g_SetFontRefHeightExtendedText(&u8g); } + void setFontRefHeightAll(void) { u8g_SetFontRefHeightAll(&u8g); } + void setFontLineSpacingFactor(uint8_t factor) { u8g_SetFontLineSpacingFactor(&u8g, factor); } + + + u8g_uint_t getStrPixelWidth(const char *s) { return u8g_GetStrPixelWidth(&u8g, s); } + u8g_uint_t getStrPixelWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrPixelWidthP(&u8g, s); } + u8g_uint_t getStrWidth(const char *s) { return u8g_GetStrWidth(&u8g, s); } + u8g_uint_t getStrWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrWidthP(&u8g, s); } + + void setHardwareBackup(u8g_state_cb backup_cb) { u8g_SetHardwareBackup(&u8g, backup_cb); } + +#if defined(ARDUINO) && ARDUINO >= 100 + // support for the F() macro + + u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); } + u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr90P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } + u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr180P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } + u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr270P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } + + u8g_uint_t getStrPixelWidth(const __FlashStringHelper *s) { return u8g_GetStrPixelWidthP(&u8g, (u8g_pgm_uint8_t *)s); } + u8g_uint_t getStrWidth(const __FlashStringHelper *s) { return u8g_GetStrWidthP(&u8g, (u8g_pgm_uint8_t *)s); } +#endif + + /* cursor handling */ + void setCursorFont(const u8g_pgm_uint8_t *cursor_font) { u8g_SetCursorFont(&u8g, cursor_font); } + void setCursorStyle(uint8_t encoding) { u8g_SetCursorStyle(&u8g, encoding); } + void setCursorPos(u8g_uint_t cursor_x, u8g_uint_t cursor_y) { u8g_SetCursorPos(&u8g, cursor_x, cursor_y); } + void setCursorColor(uint8_t fg, uint8_t bg) { u8g_SetCursorColor(&u8g, fg, bg); } + void enableCursor(void) { u8g_EnableCursor(&u8g); } + void disableCursor(void) { u8g_DisableCursor(&u8g); } + void drawCursor(void) { u8g_DrawCursor(&u8g); } + + /* virtual screen */ + + void setVirtualScreenDimension(u8g_uint_t width, u8g_uint_t height) { u8g_SetVirtualScreenDimension(&u8g, width, height); } + uint8_t addToVirtualScreen(u8g_uint_t x, u8g_uint_t y, U8GLIB &child_u8g) { return u8g_AddToVirtualScreen(&u8g, x, y, &child_u8g.u8g); } + +}; + + +class U8GLIB_DOGS102 : public U8GLIB +{ + public: + U8GLIB_DOGS102(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1701_dogs102_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGS102(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1701_dogs102_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_MINI12864 : public U8GLIB +{ + public: + U8GLIB_MINI12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1701_mini12864_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_MINI12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1701_mini12864_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_DOGM132 : public U8GLIB +{ + public: + U8GLIB_DOGM132(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_dogm132_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGM132(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_dogm132_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD_C12832 : public U8GLIB +{ + public: + U8GLIB_NHD_C12832(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_nhd_c12832_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD_C12832(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_spi, cs, a0, reset) + { } + U8GLIB_NHD_C12832(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_nhd_c12832_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } +}; + +class U8GLIB_DOGM128 : public U8GLIB +{ + public: + U8GLIB_DOGM128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_dogm128_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGM128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_dogm128_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_LM6059 : public U8GLIB +{ + public: + U8GLIB_LM6059(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_lm6059_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_LM6059(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_lm6059_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_LM6063 : public U8GLIB +{ + public: + U8GLIB_LM6063(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_lm6063_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_LM6063(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_lm6063_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_64128N : public U8GLIB +{ + public: + U8GLIB_64128N(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_64128n_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_64128N(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_64128n_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD_C12864 : public U8GLIB +{ + public: + U8GLIB_NHD_C12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_nhd_c12864_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD_C12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7565_nhd_c12864_hw_spi, cs, a0, reset) + { } +}; + + +class U8GLIB_ST7920_128X64 : public U8GLIB +{ + public: + U8GLIB_ST7920_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_ST7920_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, a0, reset) + { } + U8GLIB_ST7920_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + { } + // U8GLIB_ST7920_128X64(uint8_t cs) + // : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, cs, U8G_PIN_NONE, U8G_PIN_NONE) + // { } +}; + +class U8GLIB_ST7920_128X64_1X : public U8GLIB +{ + public: + U8GLIB_ST7920_128X64_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_128X64_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_128X64_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + +class U8GLIB_ST7920_128X64_4X : public U8GLIB +{ + public: + U8GLIB_ST7920_128X64_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_128X64_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_128X64_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_128x64_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + + + +class U8GLIB_ST7920_192X32 : public U8GLIB // OBSOLETE, use U8GLIB_ST7920_192X32_1X instead +{ + public: + U8GLIB_ST7920_192X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_ST7920_192X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, a0, reset) + { } + U8GLIB_ST7920_192X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + { } +}; + +class U8GLIB_ST7920_192X32_1X : public U8GLIB +{ + public: + U8GLIB_ST7920_192X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_192X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_192X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + +class U8GLIB_ST7920_192X32_4X : public U8GLIB +{ + public: + U8GLIB_ST7920_192X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_192X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_192X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_192x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + + +class U8GLIB_ST7920_202X32 : public U8GLIB +{ + public: + U8GLIB_ST7920_202X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_ST7920_202X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, a0, reset) + { } + U8GLIB_ST7920_202X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + { } +}; + +class U8GLIB_ST7920_202X32_1X : public U8GLIB +{ + public: + U8GLIB_ST7920_202X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_202X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_202X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + +class U8GLIB_ST7920_202X32_4X : public U8GLIB +{ + public: + U8GLIB_ST7920_202X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_202X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE + { } + U8GLIB_ST7920_202X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7920_202x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE + { } +}; + + +class U8GLIB_LC7981_160X80 : public U8GLIB +{ + public: + U8GLIB_LC7981_160X80(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_lc7981_160x80_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } +}; + +class U8GLIB_LC7981_240X64 : public U8GLIB +{ + public: + U8GLIB_LC7981_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_lc7981_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } +}; + +class U8GLIB_LC7981_240X128 : public U8GLIB +{ + public: + U8GLIB_LC7981_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_lc7981_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } +}; + +// 16 bit mode required: Remove comment from "#define U8G_16BIT 1" in utility/u8g.h +class U8GLIB_LC7981_320X64 : public U8GLIB +{ + public: + U8GLIB_LC7981_320X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_lc7981_320x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } +}; + + + +class U8GLIB_DOGXL160_BW : public U8GLIB +{ + public: + U8GLIB_DOGXL160_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGXL160_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_DOGXL160_GR : public U8GLIB +{ + public: + U8GLIB_DOGXL160_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGXL160_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_DOGXL160_2X_BW : public U8GLIB +{ + public: + U8GLIB_DOGXL160_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGXL160_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_DOGXL160_2X_GR : public U8GLIB +{ + public: + U8GLIB_DOGXL160_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_DOGXL160_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_hw_spi, cs, a0, reset) + { } +}; + + +class U8GLIB_NHD27OLED_BW : public U8GLIB +{ + public: + U8GLIB_NHD27OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_hw_spi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) + { } +}; + +class U8GLIB_NHD27OLED_2X_BW : public U8GLIB +{ + public: + U8GLIB_NHD27OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_2X_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) + { } +}; + +class U8GLIB_NHD31OLED_BW : public U8GLIB +{ + public: + U8GLIB_NHD31OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD31OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD31OLED_2X_BW : public U8GLIB +{ + public: + U8GLIB_NHD31OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD31OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD31OLED_GR : public U8GLIB +{ + public: + U8GLIB_NHD31OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD31OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD31OLED_2X_GR : public U8GLIB +{ + public: + U8GLIB_NHD31OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD31OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi, cs, a0, reset) + { } +}; + + +class U8GLIB_SSD1306_128X64 : public U8GLIB +{ + public: + U8GLIB_SSD1306_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x64_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_SSD1306_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x64_hw_spi, cs, a0, reset) + { } + U8GLIB_SSD1306_128X64(uint8_t options = U8G_I2C_OPT_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x64_i2c, options) + { } + +}; + +class U8GLIB_SSD1309_128X64 : public U8GLIB +{ + public: + U8GLIB_SSD1309_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1309_128x64_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_SSD1309_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1309_128x64_hw_spi, cs, a0, reset) + { } + U8GLIB_SSD1309_128X64(uint8_t options = U8G_I2C_OPT_NONE) + : U8GLIB(&u8g_dev_ssd1309_128x64_i2c, options) + { } + +}; + +class U8GLIB_SSD1306_128X32 : public U8GLIB +{ + public: + U8GLIB_SSD1306_128X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x32_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_SSD1306_128X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x32_hw_spi, cs, a0, reset) + { } + U8GLIB_SSD1306_128X32(uint8_t options = U8G_I2C_OPT_NONE) + : U8GLIB(&u8g_dev_ssd1306_128x32_i2c, options) + { } + +}; + + +class U8GLIB_NHD27OLED_GR : public U8GLIB +{ + public: + U8GLIB_NHD27OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_NHD27OLED_2X_GR : public U8GLIB +{ + public: + U8GLIB_NHD27OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_NHD27OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi, cs, a0, reset) + { } +}; + +class U8GLIB_SSD1327_96X96_GR : public U8GLIB +{ + public: + U8GLIB_SSD1327_96X96_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_SSD1327_96X96_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_gr_hw_spi, cs, a0, reset) + { } + U8GLIB_SSD1327_96X96_GR(uint8_t options = U8G_I2C_OPT_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_gr_i2c, options) + { } +}; + +class U8GLIB_SSD1327_96X96_2X_GR : public U8GLIB +{ + public: + U8GLIB_SSD1327_96X96_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_SSD1327_96X96_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_hw_spi, cs, a0, reset) + { } + U8GLIB_SSD1327_96X96_2X_GR(uint8_t options = U8G_I2C_OPT_NONE) + : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_i2c, options) + { } +}; + +class U8GLIB_PCF8812 : public U8GLIB +{ + public: + U8GLIB_PCF8812(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_pcf8812_96x65_sw_spi, sck, mosi, cs, a0, reset) + { } +}; + +class U8GLIB_PCD8544 : public U8GLIB +{ + public: + U8GLIB_PCD8544(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_pcd8544_84x48_sw_spi, sck, mosi, cs, a0, reset) + { } +}; + +class U8GLIB_TLS8204_84X48 : public U8GLIB +{ + public: + U8GLIB_TLS8204_84X48(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_tls8204_84x48_sw_spi, sck, mosi, cs, a0, reset) + { } +}; + +class U8GLIB_KS0108_128 : public U8GLIB +{ + public: + U8GLIB_KS0108_128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + { } +}; + +class U8GLIB_SBN1661_122X32 : public U8GLIB +{ + public: + U8GLIB_SBN1661_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_sbn1661_122x32, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs1, cs2, di, rw, reset) + { } +}; + +class U8GLIB_T6963_240X128 : public U8GLIB +{ + public: + U8GLIB_T6963_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_t6963_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) + { } +}; + +class U8GLIB_T6963_240X64 : public U8GLIB +{ + public: + U8GLIB_T6963_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_t6963_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) + { } +}; + +class U8GLIB_T6963_128X64 : public U8GLIB +{ + public: + U8GLIB_T6963_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_t6963_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) + { } +}; + + +class U8GLIB_ST7687_C144MVGD: public U8GLIB +{ + public: + U8GLIB_ST7687_C144MVGD(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_st7687_c144mvgd_sw_spi, sck, mosi, cs, a0, reset) + { } + U8GLIB_ST7687_C144MVGD(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs, uint8_t a0, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs, U8G_PIN_NONE, a0, rw, reset) + { } +}; + +class U8GLIB_ILI9325D_320x240 : public U8GLIB +{ + public: + /* + U8GLIB_ILI9325D_320x240(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + : U8GLIB(&u8g_dev_ili9325d_320x240_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) + { } + */ + U8GLIB_ILI9325D_320x240( uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) + { init8BitFixedPort(&u8g_dev_ili9325d_320x240_8bit, en, cs1, di, rw, reset); } +}; + +class U8GLIB_FLIPDISC_2X7 : public U8GLIB +{ + public: + U8GLIB_FLIPDISC_2X7(void) : U8GLIB(&u8g_dev_flipdisc_2x7) + { } +}; + +class U8GLIB_VS : public U8GLIB +{ + public: + U8GLIB_VS(void) : U8GLIB(&u8g_dev_vs) + { } +}; + + +#endif /* _CPP_U8GLIB */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde new file mode 100644 index 000000000..53fbe1b21 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde @@ -0,0 +1,130 @@ +/* + + Bitmap.pde + + Show simple bitmap + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +const uint8_t rook_bitmap[] PROGMEM = { + 0x00, // 00000000 + 0x55, // 01010101 + 0x7f, // 01111111 + 0x3e, // 00111110 + 0x3e, // 00111110 + 0x3e, // 00111110 + 0x3e, // 00111110 + 0x7f // 01111111 +}; + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.drawBitmapP( 0, 0, 1, 8, rook_bitmap); +} + +void setup(void) { +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(1000); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde new file mode 100644 index 000000000..3cef35398 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde @@ -0,0 +1,180 @@ +/* + + Chess.pde + + Little Rook Chess + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +// DOGS102 shield configuration values +uint8_t uiKeyPrev = 2; +uint8_t uiKeyNext = 4; +uint8_t uiKeySelect = 5; +uint8_t uiKeyBack = 3; + +// DOGM128-Shield configuration values +// DOGXL60-Shield configuration values +//uint8_t uiKeyPrev = 7; +//uint8_t uiKeyNext = 3; +//uint8_t uiKeySelect = 2; +//uint8_t uiKeyBack = 8; + +uint8_t uiKeyCodeFirst = CHESS_KEY_NONE; +uint8_t uiKeyCodeSecond = CHESS_KEY_NONE; +uint8_t uiKeyCode = CHESS_KEY_NONE; + + +void uiSetup(void) { + // configure input keys + + pinMode(uiKeyPrev, INPUT); // set pin to input + digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors + pinMode(uiKeyNext, INPUT); // set pin to input + digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors + pinMode(uiKeySelect, INPUT); // set pin to input + digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors + pinMode(uiKeyBack, INPUT); // set pin to input + digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors +} + +void uiStep(void) +{ + uiKeyCodeSecond = uiKeyCodeFirst; + if ( digitalRead(uiKeyPrev) == LOW ) + uiKeyCodeFirst = CHESS_KEY_PREV; + else if ( digitalRead(uiKeyNext) == LOW ) + uiKeyCodeFirst = CHESS_KEY_NEXT; + else if ( digitalRead(uiKeySelect) == LOW ) + uiKeyCodeFirst = CHESS_KEY_SELECT; + else if ( digitalRead(uiKeyBack) == LOW ) + uiKeyCodeFirst = CHESS_KEY_BACK; + else + uiKeyCodeFirst = CHESS_KEY_NONE; + + if ( uiKeyCodeSecond == uiKeyCodeFirst ) + uiKeyCode = uiKeyCodeFirst; + else + uiKeyCode = CHESS_KEY_NONE; +} + + +void setup() { + // rotate screen, if required + u8g.setRot180(); + + uiSetup(); + chess_Init(u8g.getU8g(), 0); +} + +void loop() { + uint8_t keyCode = CHESS_KEY_NONE; + + u8g.firstPage(); + do { + chess_Draw(); + uiStep(); + if ( uiKeyCode != CHESS_KEY_NONE ) + keyCode = uiKeyCode; + } while( u8g.nextPage() ); + + u8g_Delay(10); + chess_Step(keyCode); + uiStep(); + keyCode = uiKeyCode; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde new file mode 100644 index 000000000..fcf4b74c5 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde @@ -0,0 +1,230 @@ +/* + + Console.pde + + Read from serial monitor, output to display + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +// setup input buffer +#define LINE_MAX 30 +uint8_t line_buf[LINE_MAX] = "U8GLIB Console"; +uint8_t line_pos = 0; + +// setup a text screen to support scrolling +#define ROW_MAX 12 + + +uint8_t screen[ROW_MAX][LINE_MAX]; +uint8_t rows, cols; + +// line height, which matches the selected font (5x7) +#define LINE_PIXEL_HEIGHT 7 + +// clear entire screen, called during setup +void clear_screen(void) { + uint8_t i, j; + for( i = 0; i < ROW_MAX; i++ ) + for( j = 0; j < LINE_MAX; j++ ) + screen[i][j] = 0; +} + +// append a line to the screen, scroll up +void add_line_to_screen(void) { + uint8_t i, j; + for( j = 0; j < LINE_MAX; j++ ) + for( i = 0; i < rows-1; i++ ) + screen[i][j] = screen[i+1][j]; + + for( j = 0; j < LINE_MAX; j++ ) + screen[rows-1][j] = line_buf[j]; +} + +// U8GLIB draw procedure: output the screen +void draw(void) { + uint8_t i, y; + // graphic commands to redraw the complete screen are placed here + y = 0; // reference is the top left -1 position of the string + y--; // correct the -1 position of the drawStr + for( i = 0; i < rows; i++ ) + { + u8g.drawStr( 0, y, (char *)(screen[i])); + y += u8g.getFontLineSpacing(); + } +} + +void exec_line(void) { + // echo line to the serial monitor + Serial.println((const char *)line_buf); + + // add the line to the screen + add_line_to_screen(); + + // U8GLIB picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); +} + +// clear current input buffer +void reset_line(void) { + line_pos = 0; + line_buf[line_pos] = '\0'; +} + +// add a single character to the input buffer +void char_to_line(uint8_t c) { + line_buf[line_pos] = c; + line_pos++; + line_buf[line_pos] = '\0'; +} + +// check serial in and handle the character +void read_line(void) { + if ( Serial.available() ) + { + uint8_t c; + c = Serial.read(); + if ( line_pos >= cols-1 ) { + exec_line(); + reset_line(); + char_to_line(c); + } + else if ( c == '\n' ) { + // ignore '\n' + } + else if ( c == '\r' ) { + exec_line(); + reset_line(); + } + else { + char_to_line(c); + } + } +} + +// Arduino master setup +void setup(void) { + // set font for the console window + u8g.setFont(u8g_font_5x7); + //u8g.setFont(u8g_font_9x15); + + // set upper left position for the string draw procedure + u8g.setFontPosTop(); + + // calculate the number of rows for the display + rows = u8g.getHeight() / u8g.getFontLineSpacing(); + if ( rows > ROW_MAX ) + rows = ROW_MAX; + + // estimate the number of columns for the display + cols = u8g.getWidth() / u8g.getStrWidth("m"); + if ( cols > LINE_MAX-1 ) + cols = LINE_MAX-1; + + clear_screen(); // clear screen + delay(1000); // do some delay + Serial.begin(9600); // init serial + exec_line(); // place the input buffer into the screen + reset_line(); // clear input buffer +} + +// Arduino main loop +void loop(void) { + read_line(); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde new file mode 100644 index 000000000..4cb3b20b7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde @@ -0,0 +1,139 @@ +/* + + F.pde + + Example code for the F() macro. + + >>> This example requires Arduino 1.0 and above. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + + // assign default font + u8g.setFont(u8g_font_unifont); + + // pointer to strings in flash memory can be stored in a special type + const __FlashStringHelper *flash_ptr; + + // the result of the F() macro can be assigned to this pointer + flash_ptr = F("Hello World!"); + + // this pointer can be used as argument to the draw procedures + u8g.drawStr( 0+1, 20+1, flash_ptr); + u8g.drawStr( 0, 20, flash_ptr); + + // of course, the F() macro can be used directly + u8g.drawStr( 0, 40, F("PROGMEM")); + +} + +void setup(void) { + // flip screen, if required + // u8g.setRot180(); +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(500); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde new file mode 100644 index 000000000..4e9135209 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde @@ -0,0 +1,223 @@ +/* + + GraphicsTest.pde + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +void u8g_prepare(void) { + u8g.setFont(u8g_font_6x10); + u8g.setFontRefHeightExtendedText(); + u8g.setDefaultForegroundColor(); + u8g.setFontPosTop(); +} + +void u8g_box_frame(uint8_t a) { + u8g.drawStr( 0, 0, "drawBox"); + u8g.drawBox(5,10,20,10); + u8g.drawBox(10+a,15,30,7); + u8g.drawStr( 0, 30, "drawFrame"); + u8g.drawFrame(5,10+30,20,10); + u8g.drawFrame(10+a,15+30,30,7); +} + +void u8g_disc_circle(uint8_t a) { + u8g.drawStr( 0, 0, "drawDisc"); + u8g.drawDisc(10,18,9); + u8g.drawDisc(24+a,16,7); + u8g.drawStr( 0, 30, "drawCircle"); + u8g.drawCircle(10,18+30,9); + u8g.drawCircle(24+a,16+30,7); +} + +void u8g_r_frame(uint8_t a) { + u8g.drawStr( 0, 0, "drawRFrame/Box"); + u8g.drawRFrame(5, 10,40,30, a+1); + u8g.drawRBox(50, 10,25,40, a+1); +} + +void u8g_string(uint8_t a) { + u8g.drawStr(30+a,31, " 0"); + u8g.drawStr90(30,31+a, " 90"); + u8g.drawStr180(30-a,31, " 180"); + u8g.drawStr270(30,31-a, " 270"); +} + +void u8g_line(uint8_t a) { + u8g.drawStr( 0, 0, "drawLine"); + u8g.drawLine(7+a, 10, 40, 55); + u8g.drawLine(7+a*2, 10, 60, 55); + u8g.drawLine(7+a*3, 10, 80, 55); + u8g.drawLine(7+a*4, 10, 100, 55); +} + +void u8g_ascii_1() { + char s[2] = " "; + uint8_t x, y; + u8g.drawStr( 0, 0, "ASCII page 1"); + for( y = 0; y < 6; y++ ) { + for( x = 0; x < 16; x++ ) { + s[0] = y*16 + x + 32; + u8g.drawStr(x*7, y*10+10, s); + } + } +} + +void u8g_ascii_2() { + char s[2] = " "; + uint8_t x, y; + u8g.drawStr( 0, 0, "ASCII page 2"); + for( y = 0; y < 6; y++ ) { + for( x = 0; x < 16; x++ ) { + s[0] = y*16 + x + 160; + u8g.drawStr(x*7, y*10+10, s); + } + } +} + + +uint8_t draw_state = 0; + +void draw(void) { + u8g_prepare(); + switch(draw_state >> 3) { + case 0: u8g_box_frame(draw_state&7); break; + case 1: u8g_disc_circle(draw_state&7); break; + case 2: u8g_r_frame(draw_state&7); break; + case 3: u8g_string(draw_state&7); break; + case 4: u8g_line(draw_state&7); break; + case 5: u8g_ascii_1(); break; + case 6: u8g_ascii_2(); break; + } +} + +void setup(void) { + + // flip screen, if required + //u8g.setRot180(); + + // assign default color value + if ( u8g.getMode() == U8G_MODE_R3G3B2 ) + u8g.setColorIndex(255); // white + else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) + u8g.setColorIndex(3); // max intensity + else if ( u8g.getMode() == U8G_MODE_BW ) + u8g.setColorIndex(1); // pixel on + + //u8g.setContrast(0x30); + + pinMode(13, OUTPUT); + digitalWrite(13, HIGH); +} + +void loop(void) { + + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // increase the state + draw_state++; + if ( draw_state >= 7*8 ) + draw_state = 0; + + // rebuild the picture after some delay + delay(150); + +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde new file mode 100644 index 000000000..5a00939a3 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde @@ -0,0 +1,136 @@ +/* + + HelloWorld.pde + + "Hello World!" example code. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.setFont(u8g_font_unifont); + //u8g.setFont(u8g_font_osb21); + u8g.drawStr( 0, 22, "Hello World!"); +} + +void setup(void) { + + // flip screen, if required + // u8g.setRot180(); + + // set SPI backup if required + //u8g.setHardwareBackup(u8g_backup_avr_spi); + + // assign default color value + if ( u8g.getMode() == U8G_MODE_R3G3B2 ) + u8g.setColorIndex(255); // white + else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) + u8g.setColorIndex(3); // max intensity + else if ( u8g.getMode() == U8G_MODE_BW ) + u8g.setColorIndex(1); // pixel on +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(500); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde new file mode 100644 index 000000000..fbb0af034 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde @@ -0,0 +1,234 @@ +/* + + Menu.pde + + Simple Menu Selection + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +#define KEY_NONE 0 +#define KEY_PREV 1 +#define KEY_NEXT 2 +#define KEY_SELECT 3 +#define KEY_BACK 4 + +// DOGS102 shield configuration values +//uint8_t uiKeyPrev = 2; +//uint8_t uiKeyNext = 4; +//uint8_t uiKeySelect = 5; +//uint8_t uiKeyBack = 3; + +// DOGM128-Shield configuration values +// DOGXL60-Shield configuration values +uint8_t uiKeyPrev = 7; +uint8_t uiKeyNext = 3; +uint8_t uiKeySelect = 2; +uint8_t uiKeyBack = 8; + +uint8_t uiKeyCodeFirst = KEY_NONE; +uint8_t uiKeyCodeSecond = KEY_NONE; +uint8_t uiKeyCode = KEY_NONE; + + +void uiSetup(void) { + // configure input keys + + pinMode(uiKeyPrev, INPUT); // set pin to input + digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors + pinMode(uiKeyNext, INPUT); // set pin to input + digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors + pinMode(uiKeySelect, INPUT); // set pin to input + digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors + pinMode(uiKeyBack, INPUT); // set pin to input + digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors +} + +void uiStep(void) { + uiKeyCodeSecond = uiKeyCodeFirst; + if ( digitalRead(uiKeyPrev) == LOW ) + uiKeyCodeFirst = KEY_PREV; + else if ( digitalRead(uiKeyNext) == LOW ) + uiKeyCodeFirst = KEY_NEXT; + else if ( digitalRead(uiKeySelect) == LOW ) + uiKeyCodeFirst = KEY_SELECT; + else if ( digitalRead(uiKeyBack) == LOW ) + uiKeyCodeFirst = KEY_BACK; + else + uiKeyCodeFirst = KEY_NONE; + + if ( uiKeyCodeSecond == uiKeyCodeFirst ) + uiKeyCode = uiKeyCodeFirst; + else + uiKeyCode = KEY_NONE; +} + + +#define MENU_ITEMS 4 +char *menu_strings[MENU_ITEMS] = { "First Line", "Second Item", "3333333", "abcdefg" }; + +uint8_t menu_current = 0; +uint8_t menu_redraw_required = 0; +uint8_t last_key_code = KEY_NONE; + + +void drawMenu(void) { + uint8_t i, h; + u8g_uint_t w, d; + + u8g.setFont(u8g_font_6x13); + u8g.setFontRefHeightText(); + u8g.setFontPosTop(); + + h = u8g.getFontAscent()-u8g.getFontDescent(); + w = u8g.getWidth(); + for( i = 0; i < MENU_ITEMS; i++ ) { + d = (w-u8g.getStrWidth(menu_strings[i]))/2; + u8g.setDefaultForegroundColor(); + if ( i == menu_current ) { + u8g.drawBox(0, i*h+1, w, h); + u8g.setDefaultBackgroundColor(); + } + u8g.drawStr(d, i*h, menu_strings[i]); + } +} + +void updateMenu(void) { + if ( uiKeyCode != KEY_NONE && last_key_code == uiKeyCode ) { + return; + } + last_key_code = uiKeyCode; + + switch ( uiKeyCode ) { + case KEY_NEXT: + menu_current++; + if ( menu_current >= MENU_ITEMS ) + menu_current = 0; + menu_redraw_required = 1; + break; + case KEY_PREV: + if ( menu_current == 0 ) + menu_current = MENU_ITEMS; + menu_current--; + menu_redraw_required = 1; + break; + } +} + + +void setup() { + // rotate screen, if required + // u8g.setRot180(); + + uiSetup(); // setup key detection and debounce algorithm + menu_redraw_required = 1; // force initial redraw +} + +void loop() { + + uiStep(); // check for key press + + if ( menu_redraw_required != 0 ) { + u8g.firstPage(); + do { + drawMenu(); + } while( u8g.nextPage() ); + menu_redraw_required = 0; + } + + updateMenu(); // update menu bar + +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde new file mode 100644 index 000000000..7535c22f1 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde @@ -0,0 +1,124 @@ +/* + + PrintTest.pde + + How to use the base class "Print" + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.setFont(u8g_font_unifont); + u8g.setPrintPos(0, 20); + // call procedure from base class, http://arduino.cc/en/Serial/Print + u8g.print("Hello World!"); +} + +void setup(void) { + // flip screen, if required + // u8g.setRot180(); +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(500); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde new file mode 100644 index 000000000..424b7bfb6 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde @@ -0,0 +1,152 @@ +/* + + HelloWorld.pde + + "Hello World!" example code. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +uint8_t offset = 0; + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.setFont(u8g_font_unifont); + u8g.drawStr( 0+0, 20+0, "Hello!"); + u8g.drawStr( 0+2, 20+16, "Hello!"); + + u8g.drawBox(0, 0, 3, 3); + u8g.drawBox(u8g.getWidth()-6, 0, 6, 6); + u8g.drawBox(u8g.getWidth()-9, u8g.getHeight()-9, 9, 9); + u8g.drawBox(0, u8g.getHeight()-12, 12, 12); +} + +void setup(void) { +} + + +void rotate(void) { + static uint8_t dir = 0; + static unsigned long next_rotation = 0; + + if ( next_rotation < millis() ) + { + switch(dir) { + case 0: u8g.undoRotation(); break; + case 1: u8g.setRot90(); break; + case 2: u8g.setRot180(); break; + case 3: u8g.setRot270(); offset = ( offset + 1 ) & 0x0f; break; + } + + dir++; + dir &= 3; + next_rotation = millis(); + next_rotation += 1000; + } +} + +void loop(void) { + // screen rotation + rotate(); + + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(100); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde new file mode 100644 index 000000000..ce87c76fa --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde @@ -0,0 +1,141 @@ +/* + + HelloWorld.pde + + "Hello World!" example code. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.setFont(u8g_font_unifont); + u8g.setFontPosTop(); + u8g.drawStr(0, 1, "Hello"); + u8g.drawHLine(0, 1+14, 40); + u8g.setScale2x2(); // Scale up all draw procedures + u8g.drawStr(0, 12, "Hello"); // actual display position is (0,24) + u8g.drawHLine(0, 12+14, 40); // All other procedures are also affected + u8g.undoScale(); // IMPORTANT: Switch back to normal mode +} + +void setup(void) { + + // flip screen, if required + u8g.setRot180(); + + // set SPI backup if required + //u8g.setHardwareBackup(u8g_backup_avr_spi); + + // assign default color value + if ( u8g.getMode() == U8G_MODE_R3G3B2 ) + u8g.setColorIndex(255); // white + else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) + u8g.setColorIndex(3); // max intensity + else if ( u8g.getMode() == U8G_MODE_BW ) + u8g.setColorIndex(1); // pixel on +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(500); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde new file mode 100644 index 000000000..718fd821c --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde @@ -0,0 +1,154 @@ +/* + + TextRotX.pde + + Text rotation example code. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +// graphic commands to redraw the complete screen should be placed here +void draw(void) { + u8g_uint_t mx, my; + + mx = u8g.getWidth(); + mx >>= 1; + + my = u8g.getHeight(); + my >>= 1; + + u8g.drawStr( mx, my, "Ag"); + u8g.drawStr90( mx, my, "Ag"); + u8g.drawStr180( mx, my, "Ag"); + u8g.drawStr270( mx, my, "Ag"); +} + +void setup(void) { + u8g.setFont(u8g_font_9x18); +} + +void change_font_pos(void) { + static uint8_t dir = 0; + static unsigned long next = 0; + + if ( next < millis() ) + { + switch(dir) { + case 0: u8g.setFontPosBottom(); break; + case 1: u8g.setFontPosBaseline(); break; + case 2: u8g.setFontPosCenter(); break; + case 3: u8g.setFontPosTop(); break; + } + + dir++; + dir &= 3; + next = millis(); + next += 1000; + } +} + +void loop(void) { + // change the font position + change_font_pos(); + + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(100); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde new file mode 100644 index 000000000..78c866f0f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde @@ -0,0 +1,179 @@ +/* + + U8gLogo.pde + + Put the U8GLIB logo on the display. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + + +void drawColorBox(void) +{ + u8g_uint_t w,h; + u8g_uint_t r, g, b; + + w = u8g.getWidth()/32; + h = u8g.getHeight()/8; + for( b = 0; b < 4; b++ ) + for( g = 0; g < 8; g++ ) + for( r = 0; r < 8; r++ ) + { + u8g.setColorIndex((r<<5) | (g<<2) | b ); + u8g.drawBox(g*w + b*w*8, r*h, w, h); + } +} + +void drawLogo(uint8_t d) +{ + u8g.setFont(u8g_font_gdr25r); + u8g.drawStr(0+d, 30+d, "U"); + u8g.setFont(u8g_font_gdr30n); + u8g.drawStr90(23+d,10+d,"8"); + u8g.setFont(u8g_font_gdr25r); + u8g.drawStr(53+d,30+d,"g"); + + u8g.drawHLine(2+d, 35+d, 47); + u8g.drawVLine(45+d, 32+d, 12); +} + +void drawURL(void) +{ + u8g.setFont(u8g_font_4x6); + if ( u8g.getHeight() < 59 ) + { + u8g.drawStr(53,9,"code.google.com"); + u8g.drawStr(77,18,"/p/u8glib"); + } + else + { + u8g.drawStr(1,54,"code.google.com/p/u8glib"); + } +} + + +void draw(void) { + if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { + drawColorBox(); + } + u8g.setColorIndex(1); + if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) { + drawLogo(2); + u8g.setColorIndex(2); + drawLogo(1); + u8g.setColorIndex(3); + } + drawLogo(0); + drawURL(); + +} + +void setup(void) { + // flip screen, if required + //u8g.setRot180(); +} + +void loop(void) { + + // picture loop + u8g.firstPage(); + do { + draw(); + u8g.setColorIndex(1); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(200); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde new file mode 100644 index 000000000..44dd720d9 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde @@ -0,0 +1,136 @@ +/* + + XBM.pde + + drawXBM example code. + + >>> Before compiling: Please remove comment from the constructor of the + >>> connected graphics display (see below). + + Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "U8glib.h" + +// setup u8g object, please remove comment from one of the following constructor calls +// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device + +//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 +//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI +//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 +//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 +//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 +//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 +//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 +//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 +//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 +//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) +//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 +//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C +//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 +//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 +//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 + +#define u8g_logo_width 38 +#define u8g_logo_height 24 +//static unsigned char u8g_logo_bits[] = { +static unsigned char u8g_logo_bits[] U8G_PROGMEM = { + 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xe0, + 0xff, 0xff, 0x3f, 0xe3, 0xe1, 0xff, 0xff, 0x3f, 0xf3, 0xf1, 0xff, 0xff, + 0x3f, 0xf3, 0xf1, 0xfe, 0xbf, 0x37, 0xf3, 0x11, 0x1c, 0x1f, 0x30, 0xf3, + 0x01, 0x08, 0x8c, 0x20, 0xf3, 0x01, 0x00, 0xc0, 0x39, 0xf3, 0x81, 0xc7, + 0xc1, 0x39, 0xf3, 0xc1, 0xc7, 0xc9, 0x38, 0xf3, 0xc1, 0xc3, 0x19, 0x3c, + 0xe3, 0x89, 0x01, 0x98, 0x3f, 0xc7, 0x18, 0x00, 0x08, 0x3e, 0x0f, 0x3c, + 0x70, 0x1c, 0x30, 0x3f, 0xff, 0xfc, 0x87, 0x31, 0xff, 0xff, 0xbf, 0xc7, + 0x23, 0x01, 0x00, 0x00, 0xc6, 0x23, 0x03, 0x00, 0x00, 0x0e, 0x30, 0xff, + 0xff, 0x3f, 0x1f, 0x3c, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0xff, 0x3f, + 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f }; + +void draw(void) { + // graphic commands to redraw the complete screen should be placed here + u8g.drawXBMP( 0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits); +} + +void setup(void) { + // flip screen, if required + // u8g.setRot180(); +} + +void loop(void) { + // picture loop + u8g.firstPage(); + do { + draw(); + } while( u8g.nextPage() ); + + // rebuild the picture after some delay + delay(500); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt new file mode 100644 index 000000000..c9eea75c4 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt @@ -0,0 +1,80 @@ + +The U8glib code (http://code.google.com/p/u8glib/) is licensed under the terms of +the new-bsd license (two-clause bsd license). +See also: http://www.opensource.org/licenses/bsd-license.php + +The repository and optionally the releases contain icons, which are +derived from the WPZOOM Developer Icon Set: +http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/ +WPZOOM Developer Icon Set by WPZOOM is licensed under a Creative Commons +Attribution-ShareAlike 3.0 Unported License. + +Fonts are licensed under different conditions. +See http://code.google.com/p/u8glib/wiki/fontgroup for +detailed information on the licensing conditions for each font. + +============ X11 Fonts COUR, HELV, NCEN, TIM, SYMB ============ + +For fonts derived from the following files, the license below applies. +COURB08.BDF COURB10.BDF COURB12.BDF COURB14.BDF COURB18.BDF +COURB24.BDF COURR08.BDF COURR10.BDF COURR12.BDF COURR14.BDF +COURR18.BDF COURR24.BDF HELVB08.BDF HELVB10.BDF HELVB12.BDF HELVB14.BDF +HELVB18.BDF HELVB24.BDF HELVR08.BDF HELVR10.BDF HELVR12.BDF HELVR14.BDF +HELVR18.BDF HELVR24.BDF NCENB08.BDF NCENB10.BDF NCENB12.BDF +NCENB14.BDF NCENB18.BDF NCENB24.BDF NCENR08.BDF NCENR10.BDF +NCENR12.BDF NCENR14.BDF NCENR18.BDF NCENR24.BDF SYMB08.BDF SYMB10.BDF +SYMB12.BDF SYMB14.BDF SYMB18.BDF SYMB24.BDF TIMB08.BDF TIMB10.BDF +TIMB12.BDF TIMB14.BDF TIMB18.BDF TIMB24.BDF TIMR08.BDF TIMR10.BDF +TIMR12.BDF TIMR14.BDF TIMR18.BDF TIMR24.BDF + +Copyright 1984-1989, 1994 Adobe Systems Incorporated. +Copyright 1988, 1994 Digital Equipment Corporation. + +Adobe is a trademark of Adobe Systems Incorporated which may be +registered in certain jurisdictions. +Permission to use these trademarks is hereby granted only in +association with the images described in this file. + +Permission to use, copy, modify, distribute and sell this software +and its documentation for any purpose and without fee is hereby +granted, provided that the above copyright notices appear in all +copies and that both those copyright notices and this permission +notice appear in supporting documentation, and that the names of +Adobe Systems and Digital Equipment Corporation not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Adobe Systems and +Digital Equipment Corporation make no representations about the +suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + + +============ BSD License for U8glib Code ============ + +Universal 8bit Graphics Library (http://code.google.com/p/u8glib/) + +Copyright (c) 2011, olikraus@gmail.com +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c new file mode 100644 index 000000000..4a8758c38 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c @@ -0,0 +1,2392 @@ +/* + chessengine.c + + "Little Rook Chess" (lrc) + + Port to u8g library + + chess for embedded 8-Bit controllers + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Note: + UNIX_MAIN --> unix console executable + + Current Rule Limitation + - no minor promotion, only "Queening" of the pawn + - threefold repetition is not detected (same board situation appears three times) + Note: Could be implemented, but requires tracking of the complete game + - Fifty-move rule is not checked (no pawn move, no capture within last 50 moves) + + Words + Ply a half move + + General Links + http://chessprogramming.wikispaces.com/ + + Arduino specific + http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260055596 + + Prefixes + chess_ Generic Chess Application Interface + ce_ Chess engine, used internally, these function should not be called directly + cu_ Chess utility function + stack_ Internal function for stack handling + + Issues + 10.01.2011 + - castling to the right does not move the rook + --> done + - castling to the left: King can only move two squares + --> done + + 11.01.2011 + Next Steps: + - replace stack_NextCurrentPos with cu_NextPos, cleanup code according to the loop variable + --> done + - Castling: Need to check for fields under attack + --> done + + - Check for WIN / LOSE situation, perhaps call ce_Eval() once on the top-level board setup + just after the real move + - cleanup cu_Move + --> almost done + - add some heuristics to the eval procedure + - add right side menu + --> done + - clean up chess_ManualMove + --> done + - finish menu (consider is_game_end, undo move) + - end condition: if KING is under attack and if KING can not move to a field which is under attack... + then the game is lost. What will be returned by the Eval procedure? is it -INF? + --> finished + + - reduce the use of variable color, all should be reduced to board_orientation and ply&1 + + - chess_GetNextMarked shoud make use of cu_NextPos + --> done + - chess_ManualMove: again cleanup, solve draw issue (KING is not in check and no legal moves are available) + --> done + 22.01.2011 + - simplify eval_t ce_Eval(void) + - position eval does not work, still moves side pawn :-( + maybe because all pieces are considered + --> done + +*/ + +#include "u8g.h" + +//#ifndef __unix__ +//#else +//#include +//#define U8G_NOINLINE +//#endif + +/* +SAN identifies each piece by a single upper case letter. The standard English +values: pawn = "P", knight = "N", bishop = "B", rook = "R", queen = "Q", and +king = "K". +*/ + +/* numbers for the various pieces */ +#define PIECE_NONE 0 +#define PIECE_PAWN 1 +#define PIECE_KNIGHT 2 +#define PIECE_BISHOP 3 +#define PIECE_ROOK 4 +#define PIECE_QUEEN 5 +#define PIECE_KING 6 + +/* color definitions */ +#define COLOR_WHITE 0 +#define COLOR_BLACK 1 + +/* a mask, which includes COLOR and PIECE number */ +#define COLOR_PIECE_MASK 0x01f + +#define CP_MARK_MASK 0x20 + +#define ILLEGAL_POSITION 255 + +/* This is the build in upper limit of the search stack */ +/* This value defines the amount of memory allocated for the search stack */ +/* The search depth of this chess engine can never exceed this value */ +#define STACK_MAX_SIZE 5 + +/* chess half move stack: twice the number of undo's, a user can do */ +#define CHM_USER_SIZE 6 + +/* the CHM_LIST_SIZE must be larger than the maximum search depth */ +/* the overall size of ste half move stack */ +#define CHM_LIST_SIZE (STACK_MAX_SIZE+CHM_USER_SIZE+2) + +typedef int16_t eval_t; /* a variable type to store results from the evaluation */ +//#define EVAL_T_LOST -32768 +#define EVAL_T_MIN -32767 +#define EVAL_T_MAX 32767 +//#define EVAL_T_WIN 32767 + +/* for maintainance of our own stack: this is the definition of one element on the stack */ +struct _stack_element_struct +{ + /* the current source position which is investigated */ + uint8_t current_pos; + uint8_t current_cp; + uint8_t current_color; /* COLOR_WHITE or COLOR_BLACK: must be predefines */ + + /* the move which belongs to that value, both values are game positions */ + uint8_t best_from_pos; + uint8_t best_to_pos; + /* the best value, which has been dicovered so far */ + eval_t best_eval; +}; +typedef struct _stack_element_struct stack_element_t; +typedef struct _stack_element_struct *stack_element_p; + +/* chess half move history */ +struct _chm_struct +{ + uint8_t main_cp; /* the main piece, which is moved */ + uint8_t main_src; /* the source position of the main piece */ + uint8_t main_dest; /* the destination of the main piece */ + + uint8_t other_cp; /* another piece: the captured one, the ROOK in case of castling or PIECE_NONE */ + uint8_t other_src; /* the delete position of other_cp. Often identical to main_dest except for e.p. and castling */ + uint8_t other_dest; /* only used for castling: ROOK destination pos */ + + /* the position of the last pawn, which did a double move forward */ + /* this is required to check en passant conditions */ + /* this array can be indexed by the color of the current player */ + /* this is the condition BEFORE the move was done */ + uint8_t pawn_dbl_move[2]; + + /* flags for the movement of rook and king; required for castling */ + /* a 1 means: castling is (still) possible */ + /* a 0 means: castling not possible */ + /* bit 0 left side white */ + /* bit 1 right side white */ + /* bit 2 left side black */ + /* bit 3 right side black */ + /* this is the condition BEFORE the move was done */ + uint8_t castling_possible; +}; + +typedef struct _chm_struct chm_t; +typedef struct _chm_struct *chm_p; + +/* little rook chess, main structure */ +struct _lrc_struct +{ + /* half-move (ply) counter: Counts the number of half-moves so far. Starts with 0 */ + /* the lowest bit is used to derive the color of the current player */ + /* will be set to zero in chess_SetupBoard() */ + uint8_t ply_count; + + /* the half move stack position counter, counts the number of elements in chm_list */ + uint8_t chm_pos; + + /* each element contains a colored piece, empty fields have value 0 */ + /* the field with index 0 is black (lower left) */ + uint8_t board[64]; + /* the position of the last pawn, which did a double move forward */ + /* this is required to check en passant conditions */ + /* this array can be indexed by the color of the current player */ + uint8_t pawn_dbl_move[2]; + + /* flags for the movement of rook and king; required for castling */ + /* a 1 means: castling is (still) possible */ + /* a 0 means: castling not possible */ + /* bit 0 left side white */ + /* bit 1 right side white */ + /* bit 2 left side black */ + /* bit 3 right side black */ + uint8_t castling_possible; + + /* board orientation */ + /* 0: white is below COLOR_WHITE */ + /* 1: black is below COLOR_BLACK */ + /* bascially, this can be used as a color */ + uint8_t orientation; + + /* exchange colors of the pieces */ + /* 0: white has an empty body, use this for bright background color */ + /* 1: black has an empty body, use this for dark backround color */ + uint8_t strike_out_color; + + /* 0, when the game is ongoing */ + /* 1, when the game is stopped (lost or draw) */ + uint8_t is_game_end; + /* the color of the side which lost the game */ + /* this value is only valid, when is_game_end is not 0 */ + /* values 0 and 1 represent WHITE and BLACK, 2 means a draw */ + uint8_t lost_side_color; + + + + /* checks are executed in ce_LoopRecur */ + /* these checks will put some marks on the board */ + /* this will be used by the interface to find out */ + /* legal moves */ + uint8_t check_src_pos; + uint8_t check_mode; /* CHECK_MODE_NONE, CHECK_MODE_MOVEABLE, CHECK_MODE_TARGET_MOVE */ + + + /* count of the attacking pieces, indexed by color */ + uint8_t find_piece_cnt[2]; + + /* sum of the attacking pieces, indexed by color */ + uint8_t find_piece_weight[2]; + + /* points to the current element of the search stack */ + /* this stack is NEVER empty. The value 0 points to the first element of the stack */ + /* actually "curr_depth" represent half-moves (plies) */ + uint8_t curr_depth; + uint8_t max_depth; + stack_element_p curr_element; + + /* allocated memory for the search stack */ + stack_element_t stack_memory[STACK_MAX_SIZE]; + + /* the half move stack, used for move undo and depth search, size is stored in chm_pos */ + chm_t chm_list[CHM_LIST_SIZE]; +}; +typedef struct _lrc_struct lrc_t; + +#define CHECK_MODE_NONE 0 +#define CHECK_MODE_MOVEABLE 1 +#define CHECK_MODE_TARGET_MOVE 2 + + + +/*==============================================================*/ +/* global variables */ +/*==============================================================*/ + +u8g_t *lrc_u8g; + +lrc_t lrc_obj; + + +/*==============================================================*/ +/* forward declarations */ +/*==============================================================*/ + +/* + apply no inline to some of the functions: + avr-gcc very often inlines functions, however not inline saves a lot of program memory! + On the other hand there are some really short procedures which should be inlined (like cp_GetColor) + These procedures are marked static to prevent the generation of the expanded procedure, which + also saves space. +*/ + +uint8_t stack_Push(uint8_t color) U8G_NOINLINE; +void stack_Pop(void) U8G_NOINLINE; +void stack_InitCurrElement(void) U8G_NOINLINE; +void stack_Init(uint8_t max) U8G_NOINLINE; +void stack_SetMove(eval_t val, uint8_t to_pos) U8G_NOINLINE; +uint8_t cu_NextPos(uint8_t pos) U8G_NOINLINE; +static uint8_t cu_gpos2bpos(uint8_t gpos); +static uint8_t cp_Construct(uint8_t color, uint8_t piece); +static uint8_t cp_GetPiece(uint8_t cp); +static uint8_t cp_GetColor(uint8_t cp); +uint8_t cp_GetFromBoard(uint8_t pos) U8G_NOINLINE; +void cp_SetOnBoard(uint8_t pos, uint8_t cp) U8G_NOINLINE; + +void cu_ClearBoard(void) U8G_NOINLINE; +void chess_SetupBoard(void) U8G_NOINLINE; +eval_t ce_Eval(void); + +void cu_ClearMoveHistory(void) U8G_NOINLINE; +void cu_ReduceHistoryByFullMove(void) U8G_NOINLINE; +void cu_UndoHalfMove(void) U8G_NOINLINE; +chm_p cu_PushHalfMove(void) U8G_NOINLINE; + + +void ce_CalculatePositionWeight(uint8_t pos); +uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color); + +void chess_Thinking(void); +void ce_LoopPieces(void); + + +/*==============================================================*/ +/* search stack */ +/*==============================================================*/ + +/* get current element from stack */ +stack_element_p stack_GetCurrElement(void) +{ + return lrc_obj.curr_element; +} + +uint8_t stack_Push(uint8_t color) +{ + if ( lrc_obj.curr_depth == lrc_obj.max_depth ) + return 0; + lrc_obj.curr_depth++; + lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; + + /* change view for the evaluation */ + color ^= 1; + stack_GetCurrElement()->current_color = color; + + return 1; +} + +void stack_Pop(void) +{ + lrc_obj.curr_depth--; + lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; +} + +/* reset the current element on the stack */ +void stack_InitCurrElement(void) +{ + stack_element_p e = stack_GetCurrElement(); + e->best_eval = EVAL_T_MIN; + e->best_from_pos = ILLEGAL_POSITION; + e->best_to_pos = ILLEGAL_POSITION; +} + +/* resets the search stack (and the check mode) */ +void stack_Init(uint8_t max) +{ + lrc_obj.curr_depth = 0; + lrc_obj.curr_element = lrc_obj.stack_memory; + lrc_obj.max_depth = max; + lrc_obj.check_mode = CHECK_MODE_NONE; + stack_InitCurrElement(); + stack_GetCurrElement()->current_color = lrc_obj.ply_count; + stack_GetCurrElement()->current_color &= 1; +} + +/* assign evaluation value and store the move, if this is the best move */ +/* assumes, that current_pos contains the source position */ +void stack_SetMove(eval_t val, uint8_t to_pos) +{ + stack_element_p e = stack_GetCurrElement(); + if ( e->best_eval < val ) + { + e->best_eval = val; + e->best_from_pos = e->current_pos; + e->best_to_pos = to_pos; + } +} + +/* + calculate next position on a 0x88 board + loop is constructed in this way: + i = 0; + do + { + ... + i = cu_NextPos(i); + } while( i != 0 ); + + next pos might be started with an illegal position like 255 +*/ +uint8_t cu_NextPos(uint8_t pos) +{ + /* calculate next gpos */ + pos++; + if ( ( pos & 0x08 ) != 0 ) + { + pos+= 0x10; + pos&= 0xf0; + } + if ( ( pos & 0x80 ) != 0 ) + pos = 0; + return pos; +} + +uint8_t cu_PrevPos(uint8_t pos) +{ + /* calculate prev gpos */ + pos--; + if ( ( pos & 0x80 ) != 0 ) + pos = 0x077; + else if ( ( pos & 0x08 ) != 0 ) + { + pos &= 0xf0; + pos |= 0x07; + } + return pos; +} + + +/*==============================================================*/ +/* position transltion */ +/*==============================================================*/ +/* + there are two positions + 1. game position (gpos): BCD encoded x-y values + 2. board position (bpos): a number between 0 and 63, only used to access the board. +*/ +/* + gpos: game position value + returns: board position + note: does not do any checks +*/ +static uint8_t cu_gpos2bpos(uint8_t gpos) +{ + uint8_t bpos = gpos; + bpos &= 0xf0; + bpos >>= 1; + gpos &= 0x0f; + bpos |= gpos; + return bpos; +} + +#define gpos_IsIllegal(gpos) ((gpos) & 0x088) + + +/*==============================================================*/ +/* colored piece handling */ +/*==============================================================*/ + +#define cp_IsMarked(cp) ((cp) & CP_MARK_MASK) + + +/* + piece: one of PIECE_xxx + color: COLOR_WHITE or COLOR_BLACK + + returns: A colored piece +*/ +static uint8_t cp_Construct(uint8_t color, uint8_t piece) +{ + color <<= 4; + color |= piece; + return color; +} + +/* inline is better than a macro */ +static uint8_t cp_GetPiece(uint8_t cp) +{ + cp &= 0x0f; + return cp; +} + +/* + we could use a macro: + #define cp_GetColor(cp) (((cp) >> 4)&1) + however, inlined functions are sometimes much better +*/ +static uint8_t cp_GetColor(uint8_t cp) +{ + cp >>= 4; + cp &= 1; + return cp; +} + +/* + pos: game position + returns the colored piece at the given position +*/ +uint8_t cp_GetFromBoard(uint8_t pos) +{ + return lrc_obj.board[cu_gpos2bpos(pos)]; +} + +/* + pos: game position + cp: colored piece +*/ +void cp_SetOnBoard(uint8_t pos, uint8_t cp) +{ + /*printf("cp_SetOnBoard gpos:%02x cp:%02x\n", pos, cp);*/ + lrc_obj.board[cu_gpos2bpos(pos)] = cp; +} + +/*==============================================================*/ +/* global board access */ +/*==============================================================*/ + +void cu_ClearBoard(void) +{ + uint8_t i; + /* clear the board */ + for( i = 0; i < 64; i++ ) + lrc_obj.board[i] = PIECE_NONE; + + lrc_obj.ply_count = 0; + lrc_obj.orientation = COLOR_WHITE; + + lrc_obj.pawn_dbl_move[0] = ILLEGAL_POSITION; + lrc_obj.pawn_dbl_move[1] = ILLEGAL_POSITION; + + lrc_obj.castling_possible = 0x0f; + + lrc_obj.is_game_end = 0; + lrc_obj.lost_side_color = 0; + + /* clear half move history */ + cu_ClearMoveHistory(); + +} + +/* + test setup + white wins in one move +*/ +void chess_SetupBoardTest01(void) +{ + cu_ClearBoard(); + lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); + lrc_obj.board[7+5*8] = cp_Construct(COLOR_WHITE, PIECE_PAWN); + lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_KING); + lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); + lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); +} + +/* setup the global board */ +void chess_SetupBoard(void) +{ + uint8_t i; + register uint8_t bp, wp; + + /* clear the board */ + cu_ClearBoard(); + + /* precronstruct pawns */ + wp = cp_Construct(COLOR_WHITE, PIECE_PAWN); + bp = cp_Construct(COLOR_BLACK, PIECE_PAWN); + + /* setup pawn */ + for( i = 0; i < 8; i++ ) + { + lrc_obj.board[i+8] = wp; + lrc_obj.board[i+6*8] = bp; + } + + /* assign remaining pieces */ + + lrc_obj.board[0] = cp_Construct(COLOR_WHITE, PIECE_ROOK); + lrc_obj.board[1] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); + lrc_obj.board[2] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); + lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); + lrc_obj.board[4] = cp_Construct(COLOR_WHITE, PIECE_KING); + lrc_obj.board[5] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); + lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); + lrc_obj.board[7] = cp_Construct(COLOR_WHITE, PIECE_ROOK); + + lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); + lrc_obj.board[1+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); + lrc_obj.board[2+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); + lrc_obj.board[3+7*8] = cp_Construct(COLOR_BLACK, PIECE_QUEEN); + lrc_obj.board[4+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); + lrc_obj.board[5+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); + lrc_obj.board[6+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); + lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); + + //chess_SetupBoardTest01(); + +} + + + +/*==============================================================*/ +/* checks */ +/*==============================================================*/ + +/* + checks if the position is somehow illegal +*/ +uint8_t cu_IsIllegalPosition(uint8_t pos, uint8_t my_color) +{ + uint8_t board_cp; + /* check, if the position is offboard */ + if ( gpos_IsIllegal(pos) != 0 ) + return 1; + /* get the piece from the board */ + board_cp = cp_GetFromBoard(pos); + /* check if hit our own pieces */ + if ( board_cp != 0 ) + if ( cp_GetColor(board_cp) == my_color ) + return 1; + /* all ok, we could go to this position */ + return 0; +} + +/*==============================================================*/ +/* evaluation procedure */ +/*==============================================================*/ + +/* + basic idea is to return a value between EVAL_T_MIN and EVAL_T_MAX +*/ + +/* + the weight table uses the PIECE number as index: + #define PIECE_NONE 0 + #define PIECE_PAWN 1 + #define PIECE_KNIGHT 2 + #define PIECE_BISHOP 3 + #define PIECE_ROOK 4 + #define PIECE_QUEEN 5 + #define PIECE_KING 6 + the king itself is not counted +*/ +uint8_t ce_piece_weight[] = { 0, 1, 3, 3, 5, 9, 0 }; +uint8_t ce_pos_weight[] = { 0, 1, 1, 2, 2, 1, 1, 0}; +/* + evaluate the current situation on the global board +*/ +eval_t ce_Eval(void) +{ + uint8_t cp; + uint8_t is_my_king_present = 0; + uint8_t is_opposit_king_present = 0; + eval_t material_my_color = 0; + eval_t material_opposit_color = 0; + eval_t position_my_color = 0; + eval_t position_opposit_color = 0; + eval_t result; + uint8_t pos; + + pos = 0; + do + { + /* get colored piece from the board */ + cp = cp_GetFromBoard(pos); + + if ( cp_GetPiece(cp) != PIECE_NONE ) + { + if ( stack_GetCurrElement()->current_color == cp_GetColor(cp) ) + { + /* this is our color */ + /* check if we found our king */ + if ( cp_GetPiece(cp) == PIECE_KING ) + is_my_king_present = 1; + material_my_color += ce_piece_weight[cp_GetPiece(cp)]; + if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) + { + position_my_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; + } + } + else + { + /* this is the opposit color */ + if ( cp_GetPiece(cp) == PIECE_KING ) + is_opposit_king_present = 1; + material_opposit_color += ce_piece_weight[cp_GetPiece(cp)]; + if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) + { + position_opposit_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; + } + } + } + pos = cu_NextPos(pos); + } while( pos != 0 ); + + + /* decide if we lost or won the game */ + if ( is_my_king_present == 0 ) + return EVAL_T_MIN; /*_LOST*/ + if ( is_opposit_king_present == 0 ) + return EVAL_T_MAX; /*_WIN*/ + + /* here is the evaluation function */ + + result = material_my_color - material_opposit_color; + result <<= 3; + result += position_my_color - position_opposit_color; + return result; +} + +/*==============================================================*/ +/* move backup and restore */ +/*==============================================================*/ + + +/* this procedure must be called to keep the size as low as possible */ +/* if the chm_list is large enough, it could hold the complete history */ +/* but for an embedded controler... it is deleted for every engine search */ +void cu_ClearMoveHistory(void) +{ + lrc_obj.chm_pos = 0; +} + +void cu_ReduceHistoryByFullMove(void) +{ + uint8_t i; + while( lrc_obj.chm_pos > CHM_USER_SIZE ) + { + i = 0; + for(;;) + { + if ( i+2 >= lrc_obj.chm_pos ) + break; + lrc_obj.chm_list[i] = lrc_obj.chm_list[i+2]; + i++; + } + lrc_obj.chm_pos -= 2; + } +} + +void cu_UndoHalfMove(void) +{ + chm_p chm; + + if ( lrc_obj.chm_pos == 0 ) + return; + + lrc_obj.chm_pos--; + + chm = lrc_obj.chm_list+lrc_obj.chm_pos; + + lrc_obj.pawn_dbl_move[0] = chm->pawn_dbl_move[0]; + lrc_obj.pawn_dbl_move[1] = chm->pawn_dbl_move[1]; + lrc_obj.castling_possible = chm->castling_possible; + + cp_SetOnBoard(chm->main_src, chm->main_cp); + cp_SetOnBoard(chm->main_dest, PIECE_NONE); + + if ( chm->other_src != ILLEGAL_POSITION ) + cp_SetOnBoard(chm->other_src, chm->other_cp); + if ( chm->other_dest != ILLEGAL_POSITION ) + cp_SetOnBoard(chm->other_dest, PIECE_NONE); + +} + +/* + assumes, that the following members of the returned chm structure are filled + uint8_t main_cp; the main piece, which is moved + uint8_t main_src; the source position of the main piece + uint8_t main_dest; the destination of the main piece + + uint8_t other_cp; another piece: the captured one, the ROOK in case of castling or PIECE_NONE + uint8_t other_src; the delete position of other_cp. Often identical to main_dest except for e.p. and castling + uint8_t other_dest; only used for castling: ROOK destination pos + +*/ +chm_p cu_PushHalfMove(void) +{ + chm_p chm; + + chm = lrc_obj.chm_list+lrc_obj.chm_pos; + if ( lrc_obj.chm_pos < CHM_LIST_SIZE-1) + lrc_obj.chm_pos++; + + chm->pawn_dbl_move[0] = lrc_obj.pawn_dbl_move[0]; + chm->pawn_dbl_move[1] = lrc_obj.pawn_dbl_move[1]; + chm->castling_possible = lrc_obj.castling_possible; + return chm; +} + + +char chess_piece_to_char[] = "NBRQK"; + +/* + simple moves on empty field: Ka1-b2 + capture moves: Ka1xb2 + castling: 0-0 or 0-0-0 +*/ + +static void cu_add_pos(char *s, uint8_t pos) U8G_NOINLINE; + +static void cu_add_pos(char *s, uint8_t pos) +{ + *s = pos; + *s >>= 4; + *s += 'a'; + s++; + *s = pos; + *s &= 15; + *s += '1'; +} + +const char *cu_GetHalfMoveStr(uint8_t idx) +{ + chm_p chm; + static char buf[7]; /*Ka1-b2*/ + char *p = buf; + chm = lrc_obj.chm_list+idx; + + if ( cp_GetPiece(chm->main_cp) != PIECE_NONE ) + { + if ( cp_GetPiece(chm->main_cp) > PIECE_PAWN ) + { + *p++ = chess_piece_to_char[cp_GetPiece(chm->main_cp)-2]; + } + cu_add_pos(p, chm->main_src); + p+=2; + if ( cp_GetPiece(chm->other_cp) == PIECE_NONE ) + *p++ = '-'; + else + *p++ = 'x'; + cu_add_pos(p, chm->main_dest); + p+=2; + } + *p = '\0'; + return buf; +} + + + + + +/*==============================================================*/ +/* move */ +/*==============================================================*/ + +/* + Move a piece from source position to a destination on the board + This function + - does not perform any checking + - however it processes "en passant" and casteling + - backup the move and allow 1x undo + + 2011-02-05: + - fill pawn_dbl_move[] for double pawn moves + --> done + - Implement casteling + --> done + - en passant + --> done + - pawn conversion/promotion + --> done + - half-move backup + --> done + - cleanup everything, minimize variables + --> done +*/ + +void cu_Move(uint8_t src, uint8_t dest) +{ + /* start backup structure */ + chm_p chm = cu_PushHalfMove(); + + /* these are the values from the board at the positions, provided as arguments to this function */ + uint8_t cp_src, cp_dest; + + /* Maybe a second position is cleared and one additional location is set */ + uint8_t clr_pos2; + uint8_t set_pos2; + uint8_t set_cp2; + + /* get values from board */ + cp_src = cp_GetFromBoard(src); + cp_dest = cp_GetFromBoard(dest); + + /* fill backup structure */ + + chm->main_cp = cp_src; + chm->main_src = src; + chm->main_dest = dest; + + chm->other_cp = cp_dest; /* prepace capture backup */ + chm->other_src = dest; + chm->other_dest = ILLEGAL_POSITION; + + /* setup results as far as possible with some suitable values */ + + clr_pos2 = ILLEGAL_POSITION; /* for en passant and castling, two positions might be cleared */ + set_pos2 = ILLEGAL_POSITION; /* only used for castling */ + set_cp2 = PIECE_NONE; /* ROOK for castling */ + + /* check for PAWN */ + if ( cp_GetPiece(cp_src) == PIECE_PAWN ) + { + + /* double step: is the distance 2 rows */ + if ( (src - dest == 32) || ( dest - src == 32 ) ) + { + /* remember the destination position */ + lrc_obj.pawn_dbl_move[cp_GetColor(cp_src)] = dest; + } + + /* check if the PAWN is able to promote */ + else if ( (dest>>4) == 0 || (dest>>4) == 7 ) + { + /* do simple "queening" */ + cp_src &= ~PIECE_PAWN; + cp_src |= PIECE_QUEEN; + } + + /* is it en passant capture? */ + /* check for side move */ + else if ( ((src + dest) & 1) != 0 ) + { + /* check, if target field is empty */ + if ( cp_GetPiece(cp_dest) == PIECE_NONE ) + { + /* this is en passant */ + /* no further checking required, because legal moves are assumed here */ + /* however... the captured pawn position must be valid */ + clr_pos2 = lrc_obj.pawn_dbl_move[cp_GetColor(cp_src) ^ 1]; + chm->other_src = clr_pos2; + chm->other_cp = cp_GetFromBoard(clr_pos2); + } + } + } + + /* check for the KING */ + else if ( cp_GetPiece(cp_src) == PIECE_KING ) + { + /* disallow castling, if the KING has moved */ + if ( cp_GetColor(cp_src) == COLOR_WHITE ) + { + /* if white KING has moved, disallow castling for white */ + lrc_obj.castling_possible &= 0x0c; + } + else + { + /* if black KING has moved, disallow castling for black */ + lrc_obj.castling_possible &= 0x03; + } + + /* has it been castling to the left? */ + if ( src - dest == 2 ) + { + /* let the ROOK move to pos2 */ + set_pos2 = src-1; + set_cp2 = cp_GetFromBoard(src-4); + + /* the ROOK must be cleared from the original position */ + clr_pos2 = src-4; + + chm->other_cp = set_cp2; + chm->other_src = clr_pos2; + chm->other_dest = set_pos2; + } + + /* has it been castling to the right? */ + else if ( dest - src == 2 ) + { + /* let the ROOK move to pos2 */ + set_pos2 = src+1; + set_cp2 = cp_GetFromBoard(src+3); + + /* the ROOK must be cleared from the original position */ + clr_pos2 = src+3; + + chm->other_cp = set_cp2; + chm->other_src = clr_pos2; + chm->other_dest = set_pos2; + + } + + } + + /* check for the ROOK */ + else if ( cp_GetPiece(cp_src) == PIECE_ROOK ) + { + /* disallow white left castling */ + if ( src == 0x00 ) + lrc_obj.castling_possible &= ~0x01; + /* disallow white right castling */ + if ( src == 0x07 ) + lrc_obj.castling_possible &= ~0x02; + /* disallow black left castling */ + if ( src == 0x70 ) + lrc_obj.castling_possible &= ~0x04; + /* disallow black right castling */ + if ( src == 0x77 ) + lrc_obj.castling_possible &= ~0x08; + } + + + /* apply new board situation */ + + cp_SetOnBoard(dest, cp_src); + + if ( set_pos2 != ILLEGAL_POSITION ) + cp_SetOnBoard(set_pos2, set_cp2); + + cp_SetOnBoard(src, PIECE_NONE); + + if ( clr_pos2 != ILLEGAL_POSITION ) + cp_SetOnBoard(clr_pos2, PIECE_NONE); + + +} + +/* + this subprocedure decides for evaluation of the current board situation or further (deeper) investigation + Argument pos is the new target position if the current piece + +*/ +uint8_t ce_LoopRecur(uint8_t pos) +{ + eval_t eval; + + /* 1. check if target position is occupied by the same player (my_color) */ + /* of if pos is somehow illegal or not valid */ + if ( cu_IsIllegalPosition(pos, stack_GetCurrElement()->current_color) != 0 ) + return 0; + + /* 2. move piece to the specified position, capture opponent piece if required */ + cu_Move(stack_GetCurrElement()->current_pos, pos); + + + /* 3. */ + /* if depth reached: evaluate */ + /* else: go down next level */ + /* no eval if there had been any valid half-moves, so the default value (MIN) will be returned. */ + if ( stack_Push(stack_GetCurrElement()->current_color) == 0 ) + { + eval = ce_Eval(); + } + else + { + /* init the element, which has been pushed */ + stack_InitCurrElement(); + /* start over with ntext level */ + ce_LoopPieces(); + /* get the best move from opponents view, so invert the result */ + eval = -stack_GetCurrElement()->best_eval; + stack_Pop(); + } + + /* 4. store result */ + stack_SetMove(eval, pos); + + /* 5. undo the move */ + cu_UndoHalfMove(); + + /* 6. check special modes */ + /* the purpose of these checks is to mark special pieces and positions on the board */ + /* these marks can be checked by the user interface to highlight special positions */ + if ( lrc_obj.check_mode != 0 ) + { + stack_element_p e = stack_GetCurrElement(); + if ( lrc_obj.check_mode == CHECK_MODE_MOVEABLE ) + { + cp_SetOnBoard(e->current_pos, e->current_cp | CP_MARK_MASK ); + } + else if ( lrc_obj.check_mode == CHECK_MODE_TARGET_MOVE ) + { + if ( e->current_pos == lrc_obj.check_src_pos ) + { + cp_SetOnBoard(pos, cp_GetFromBoard(pos) | CP_MARK_MASK ); + } + } + } + return 1; +} + +/*==============================================================*/ +/* move pieces which can move one or more steps into a direction */ +/*==============================================================*/ + +/* + subprocedure to generate various target positions for some pieces + special cases are handled in the piece specific sub-procedure + + Arguments: + d: a list of potential directions + is_multi_step: if the piece can only do one step (zero for KING and KNIGHT) +*/ +static const uint8_t ce_dir_offset_rook[] PROGMEM = { 1, 16, -16, -1, 0 }; +static const uint8_t ce_dir_offset_bishop[] PROGMEM = { 15, 17, -17, -15, 0 }; +static const uint8_t ce_dir_offset_queen[] PROGMEM = { 1, 16, -16, -1, 15, 17, -17, -15, 0 }; +static const uint8_t ce_dir_offset_knight[] PROGMEM = {14, -14, 18, -18, 31, -31, 33, -33, 0}; + +void ce_LoopDirsSingleMultiStep(const uint8_t *d, uint8_t is_multi_step) +{ + uint8_t loop_pos; + + /* with all directions */ + for(;;) + { + if ( u8g_pgm_read(d) == 0 ) + break; + + /* start again from the initial position */ + loop_pos = stack_GetCurrElement()->current_pos; + + /* check direction */ + do + { + /* check next position into one direction */ + loop_pos += u8g_pgm_read(d); + + /* + go further to ce_LoopRecur() + 0 will be returned if the target position is illegal or a piece of the own color + this is used to stop walking into one direction + */ + if ( ce_LoopRecur(loop_pos) == 0 ) + break; + + /* stop if we had hit another piece */ + if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) + break; + } while( is_multi_step ); + d++; + } +} + +void ce_LoopRook(void) +{ + ce_LoopDirsSingleMultiStep(ce_dir_offset_rook, 1); +} + +void ce_LoopBishop(void) +{ + ce_LoopDirsSingleMultiStep(ce_dir_offset_bishop, 1); +} + +void ce_LoopQueen(void) +{ + ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 1); +} + +void ce_LoopKnight(void) +{ + ce_LoopDirsSingleMultiStep(ce_dir_offset_knight, 0); +} + + + +/*==============================================================*/ +/* move king */ +/*==============================================================*/ + +uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) U8G_NOINLINE; + +/* + checks, if the king can do castling + + Arguments: + mask: the bit-mask for the global "castling possible" flag + direction: left castling: -1, right castling 1 + cnt: number of fields to be checked: 3 or 2 +*/ +uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) +{ + uint8_t pos; + uint8_t opponent_color; + + /* check if the current board state allows castling */ + if ( (lrc_obj.castling_possible & mask) == 0 ) + return 0; /* castling not allowed */ + + /* get the position of the KING, could be white or black king */ + pos = stack_GetCurrElement()->current_pos; + + /* calculate the color of the opponent */ + opponent_color = 1; + opponent_color -= stack_GetCurrElement()->current_color; + + /* if the KING itself is given check... */ + if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) + return 0; + + + /* check if fields in the desired direction are emtpy */ + for(;;) + { + /* go to the next field */ + pos += direction; + /* check for a piece */ + if ( cp_GetPiece(cp_GetFromBoard(pos)) != PIECE_NONE ) + return 0; /* castling not allowed */ + + /* if some of the fields are under attack */ + if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) + return 0; + + cnt--; + if ( cnt == 0 ) + break; + } + return 1; /* castling allowed */ +} + +void ce_LoopKing(void) +{ + /* + there is an interessting timing problem in this procedure + it must be checked for castling first and as second step the normal + KING movement. If we would first check for normal moves, than + any marks might be overwritten by the ROOK in the case of castling. + */ + + /* castling (this must be done before checking normal moves (see above) */ + if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) + { + /* white left castling */ + if ( cu_IsKingCastling(1, -1, 3) != 0 ) + { + /* check for attacked fields */ + ce_LoopRecur(stack_GetCurrElement()->current_pos-2); + } + /* white right castling */ + if ( cu_IsKingCastling(2, 1, 2) != 0 ) + { + /* check for attacked fields */ + ce_LoopRecur(stack_GetCurrElement()->current_pos+2); + } + } + else + { + /* black left castling */ + if ( cu_IsKingCastling(4, -1, 3) != 0 ) + { + /* check for attacked fields */ + ce_LoopRecur(stack_GetCurrElement()->current_pos-2); + } + /* black right castling */ + if ( cu_IsKingCastling(8, 1, 2) != 0 ) + { + /* check for attacked fields */ + ce_LoopRecur(stack_GetCurrElement()->current_pos+2); + } + } + + /* reuse queen directions */ + ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 0); +} + + +/*==============================================================*/ +/* move pawn */ +/*==============================================================*/ + +/* + doppelschritt: nur von der grundlinie aus, beide (!) felder vor dem bauern müssen frei sein + en passant: nur unmittelbar nachdem ein doppelschritt ausgeführt wurde. +*/ +void ce_LoopPawnSideCapture(uint8_t loop_pos) +{ + if ( gpos_IsIllegal(loop_pos) == 0 ) + { + /* get the piece from the board */ + /* if the field is NOT empty */ + if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) + { + /* normal capture */ + ce_LoopRecur(loop_pos); + /* TODO: check for pawn conversion/promotion */ + } + else + { + /* check conditions for en passant capture */ + if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) + { + if ( lrc_obj.pawn_dbl_move[COLOR_BLACK]+16 == loop_pos ) + { + ce_LoopRecur(loop_pos); + /* note: pawn conversion/promotion can not occur */ + } + } + else + { + if ( lrc_obj.pawn_dbl_move[COLOR_WHITE] == loop_pos+16 ) + { + ce_LoopRecur(loop_pos); + /* note: pawn conversion/promotion can not occur */ + } + } + } + } +} + +void ce_LoopPawn(void) +{ + uint8_t initial_pos = stack_GetCurrElement()->current_pos; + uint8_t my_color = stack_GetCurrElement()->current_color; + + uint8_t loop_pos; + uint8_t line; + + /* one step forward */ + + loop_pos = initial_pos; + line = initial_pos; + line >>= 4; + if ( my_color == COLOR_WHITE ) + loop_pos += 16; + else + loop_pos -= 16; + if ( gpos_IsIllegal(loop_pos) == 0 ) + { + /* if the field is empty */ + if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) + { + /* TODO: check for and loop through piece conversion/promotion */ + ce_LoopRecur(loop_pos); + + /* second step forward */ + + /* if pawn is on his starting line */ + if ( (my_color == COLOR_WHITE && line == 1) || (my_color == COLOR_BLACK && line == 6 ) ) + { + /* the place before the pawn is not occupied, so we can do double moves, see above */ + + if ( my_color == COLOR_WHITE ) + loop_pos += 16; + else + loop_pos -= 16; + if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) + { + /* this is a special case, other promotions of the pawn can not occur */ + ce_LoopRecur(loop_pos); + } + } + } + } + + /* capture */ + + loop_pos = initial_pos; + if ( my_color == COLOR_WHITE ) + loop_pos += 15; + else + loop_pos -= 15; + ce_LoopPawnSideCapture(loop_pos); + + + loop_pos = initial_pos; + if ( my_color == COLOR_WHITE ) + loop_pos += 17; + else + loop_pos -= 17; + ce_LoopPawnSideCapture(loop_pos); +} + +/*==============================================================*/ +/* attacked */ +/*==============================================================*/ + +/* + from a starting position, search for a piece, that might jump to that postion. + return: + the two global variables + lrc_obj.find_piece_weight[0]; + lrc_obj.find_piece_weight[1]; + will be increased by the weight of the attacked pieces of that color. + it is usually required to reset these global variables to zero, before using + this function. +*/ + +void ce_FindPieceByStep(uint8_t start_pos, uint8_t piece, const uint8_t *d, uint8_t is_multi_step) +{ + uint8_t loop_pos, cp; + + /* with all directions */ + for(;;) + { + if ( u8g_pgm_read(d) == 0 ) + break; + + /* start again from the initial position */ + loop_pos = start_pos; + + /* check direction */ + do + { + /* check next position into one direction */ + loop_pos += u8g_pgm_read(d); + + /* check if the board boundary has been crossed */ + if ( (loop_pos & 0x088) != 0 ) + break; + + /* get the colored piece from the board */ + cp = cp_GetFromBoard(loop_pos); + + /* stop if we had hit another piece */ + if ( cp_GetPiece(cp) != PIECE_NONE ) + { + /* if it is the piece we are looking for, then add the weight */ + if ( cp_GetPiece(cp) == piece ) + { + lrc_obj.find_piece_weight[cp_GetColor(cp)] += ce_piece_weight[piece]; + lrc_obj.find_piece_cnt[cp_GetColor(cp)]++; + } + /* in any case, break out of the inner loop */ + break; + } + } while( is_multi_step ); + d++; + } +} + +void ce_FindPawnPiece(uint8_t dest_pos, uint8_t color) +{ + uint8_t cp; + /* check if the board boundary has been crossed */ + if ( (dest_pos & 0x088) == 0 ) + { + /* get the colored piece from the board */ + cp = cp_GetFromBoard(dest_pos); + /* only if there is a pawn of the matching color */ + if ( cp_GetPiece(cp) == PIECE_PAWN ) + { + if ( cp_GetColor(cp) == color ) + { + /* the weight of the PAWN */ + lrc_obj.find_piece_weight[color] += 1; + lrc_obj.find_piece_cnt[color]++; + } + } + } +} + + +/* + find out, which pieces do attack a specified field + used to + - check if the KING can do castling + - check if the KING must move + + may be used in the eval procedure ... once... + + the result is stored in the global array + uint8_t lrc_obj.find_piece_weight[2]; + which is indexed with the color. + lrc_obj.find_piece_weight[COLOR_WHITE] is the sum of all white pieces + which can directly move to this field. + + example: + if the black KING is at "pos" and lrc_obj.find_piece_weight[COLOR_WHITE] is not zero + (after executing ce_CalculatePositionWeight(pos)) then the KING must be protected or moveed, because + the KING was given check. +*/ + +void ce_CalculatePositionWeight(uint8_t pos) +{ + + lrc_obj.find_piece_weight[0] = 0; + lrc_obj.find_piece_weight[1] = 0; + lrc_obj.find_piece_cnt[0] = 0; + lrc_obj.find_piece_cnt[1] = 0; + + if ( (pos & 0x088) != 0 ) + return; + + ce_FindPieceByStep(pos, PIECE_ROOK, ce_dir_offset_rook, 1); + ce_FindPieceByStep(pos, PIECE_BISHOP, ce_dir_offset_bishop, 1); + ce_FindPieceByStep(pos, PIECE_QUEEN, ce_dir_offset_queen, 1); + ce_FindPieceByStep(pos, PIECE_KNIGHT, ce_dir_offset_knight, 0); + ce_FindPieceByStep(pos, PIECE_KING, ce_dir_offset_queen, 0); + + ce_FindPawnPiece(pos+17, COLOR_BLACK); + ce_FindPawnPiece(pos+15, COLOR_BLACK); + ce_FindPawnPiece(pos-17, COLOR_WHITE); + ce_FindPawnPiece(pos-15, COLOR_WHITE); +} + +/* + calculate the summed weight of pieces with specified color which can move to a specified position + + argument: + pos: the position which should be analysed + color: the color of those pieces which should be analysed + e.g. if a black piece is at 'pos' and 'color' is white then this procedure returns the white atting count +*/ +uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color) +{ + ce_CalculatePositionWeight(pos); + return lrc_obj.find_piece_weight[color]; +} + +uint8_t ce_GetPositionAttackCount(uint8_t pos, uint8_t color) +{ + ce_CalculatePositionWeight(pos); + return lrc_obj.find_piece_cnt[color]; +} + + +/*==============================================================*/ +/* depth search starts here: loop over all pieces of the current color on the board */ +/*==============================================================*/ + +void ce_LoopPieces(void) +{ + stack_element_p e = stack_GetCurrElement(); + /* start with lower left position (A1) */ + e->current_pos = 0; + do + { + e->current_cp = cp_GetFromBoard(e->current_pos); + /* check if the position on the board is empty */ + if ( e->current_cp != 0 ) + { + /* only generate moves for the current color */ + if ( e->current_color == cp_GetColor(e->current_cp) ) + { + chess_Thinking(); + + /* find out which piece is used */ + switch(cp_GetPiece(e->current_cp)) + { + case PIECE_NONE: + break; + case PIECE_PAWN: + ce_LoopPawn(); + break; + case PIECE_KNIGHT: + ce_LoopKnight(); + break; + case PIECE_BISHOP: + ce_LoopBishop(); + break; + case PIECE_ROOK: + ce_LoopRook(); + break; + case PIECE_QUEEN: + ce_LoopQueen(); + break; + case PIECE_KING: + ce_LoopKing(); + break; + } + } + } + e->current_pos = cu_NextPos(e->current_pos); + } while( e->current_pos != 0 ); +} + +/*==============================================================*/ +/* user interface */ +/*==============================================================*/ + +/* +eval_t chess_EvalCurrBoard(uint8_t color) +{ + stack_Init(0); + stack_GetCurrElement()->current_color = color; + ce_LoopPieces(); + return stack_GetCurrElement()->best_eval; +} +*/ + +/* clear any marks on the board */ +void chess_ClearMarks(void) +{ + uint8_t i; + for( i = 0; i < 64; i++ ) + lrc_obj.board[i] &= ~CP_MARK_MASK; +} + +/* + Mark all pieces which can do moves. This is done by setting flags on the global board +*/ +void chess_MarkMovable(void) +{ + stack_Init(0); + //stack_GetCurrElement()->current_color = color; + lrc_obj.check_mode = CHECK_MODE_MOVEABLE; + ce_LoopPieces(); +} + +/* + Checks, if the piece can move from src_pos to dest_pos + + src_pos: The game position of a piece on the chess board +*/ +void chess_MarkTargetMoves(uint8_t src_pos) +{ + stack_Init(0); + stack_GetCurrElement()->current_color = cp_GetColor(cp_GetFromBoard(src_pos)); + lrc_obj.check_src_pos = src_pos; + lrc_obj.check_mode = CHECK_MODE_TARGET_MOVE; + ce_LoopPieces(); +} + +/* + first call should start with 255 + this procedure will return 255 if + - there are no marks at all + - it has looped over all marks once +*/ +uint8_t chess_GetNextMarked(uint8_t arg, uint8_t is_prev) +{ + uint8_t i; + uint8_t pos = arg; + for(i = 0; i < 64; i++) + { + if ( is_prev != 0 ) + pos = cu_PrevPos(pos); + else + pos = cu_NextPos(pos); + if ( arg != 255 && pos == 0 ) + return 255; + if ( cp_IsMarked(cp_GetFromBoard(pos)) ) + return pos; + } + return 255; +} + + +/* make a manual move: this is a little bit more than cu_Move() */ +void chess_ManualMove(uint8_t src, uint8_t dest) +{ + uint8_t cp; + + /* printf("chess_ManualMove %02x -> %02x\n", src, dest); */ + + /* if all other things fail, this is the place where the game is to be decided: */ + /* ... if the KING is captured */ + cp = cp_GetFromBoard(dest); + if ( cp_GetPiece(cp) == PIECE_KING ) + { + lrc_obj.is_game_end = 1; + lrc_obj.lost_side_color = cp_GetColor(cp); + } + + /* clear ply history here, to avoid memory overflow */ + /* may be the last X moves can be kept here */ + cu_ReduceHistoryByFullMove(); + /* perform the move on the board */ + cu_Move(src, dest); + + /* update en passant double move positions: en passant position is removed after two half moves */ + lrc_obj.pawn_dbl_move[lrc_obj.ply_count&1] = ILLEGAL_POSITION; + + /* update the global half move counter */ + lrc_obj.ply_count++; + + + /* make a small check about the end of the game */ + /* use at least depth 1, because we must know if the king can still move */ + /* this is: King moves at level 0 and will be captured at level 1 */ + /* so we check if the king can move and will not be captured at search level 1 */ + + stack_Init(1); + ce_LoopPieces(); + + /* printf("chess_ManualMove/analysis best_from_pos %02x -> best_to_pos %02x\n", stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); */ + + /* analyse the eval result */ + + /* check if the other player has any moves left */ + if ( stack_GetCurrElement()->best_from_pos == ILLEGAL_POSITION ) + { + uint8_t color; + /* conditions: */ + /* 1. no King, should never happen, opposite color has won */ + /* this is already checked above at the beginning if this procedure */ + /* 2. King is under attack, opposite color has won */ + /* 3. King is not under attack, game is a draw */ + + uint8_t i = 0; + color = lrc_obj.ply_count; + color &= 1; + do + { + cp = cp_GetFromBoard(i); + /* look for the King */ + if ( cp_GetPiece(cp) == PIECE_KING ) + { + if ( cp_GetColor(cp) == color ) + { + /* check if KING is attacked */ + if ( ce_GetPositionAttackCount(i, color^1) != 0 ) + { + /* KING is under attack (check) and can not move: Game is lost */ + lrc_obj.is_game_end = 1; + lrc_obj.lost_side_color = color; + } + else + { + /* KING is NOT under attack (check) but can not move: Game is a draw */ + lrc_obj.is_game_end = 1; + lrc_obj.lost_side_color = 2; + } + /* break out of the loop */ + break; + } + } + i = cu_NextPos(i); + } while( i != 0 ); + } +} + +/* let the computer do a move */ +void chess_ComputerMove(uint8_t depth) +{ + stack_Init(depth); + + //stack_GetCurrElement()->current_color = lrc_obj.ply_count; + //stack_GetCurrElement()->current_color &= 1; + + cu_ReduceHistoryByFullMove(); + ce_LoopPieces(); + + chess_ManualMove(stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); +} + + +/*==============================================================*/ +/* unix code */ +/*==============================================================*/ + +#ifdef UNIX_MAIN + +#include +#include + +char *piece_str[] = { + /* 0x00 */ + " ", + "wP", + "wN", + "wB", + + /* 0x04 */ + "wR", + "wQ", + "wK", + "w?", + + /* 0x08 */ + "w?", + "w?", + "w?", + "w?", + + /* 0x0c */ + "w?", + "w?", + "w?", + "w?", + + /* 0x10 */ + "b ", + "bP", + "bN", + "bB", + "bR", + "bQ", + "bK", + "b?", + + "b?", + "b?", + "b?", + "b?", + "b?", + "b?", + "b?", + "b?" +}; + +void chess_Thinking(void) +{ + uint8_t i; + uint8_t cp = cp_GetPiece(stack_GetCurrElement()->current_cp); + + printf("Thinking: ", piece_str[cp], stack_GetCurrElement()->current_pos); + + for( i = 0; i <= lrc_obj.curr_depth; i++ ) + printf("%s ", piece_str[(lrc_obj.stack_memory+i)->current_cp]); + + printf(" \r"); +} + +void board_Show(void) +{ + uint8_t i, j, cp; + char buf[10]; + for ( i = 0; i < 8; i++ ) + { + printf("%1d ", 7-i); + for ( j = 0; j < 8; j++ ) + { + /* get piece from global board */ + cp = lrc_obj.board[(7-i)*8+j]; + strcpy(buf, piece_str[cp&COLOR_PIECE_MASK]); + + if ( (cp & CP_MARK_MASK) != 0 ) + { + buf[0] = '#'; + } + + /* mask out any bits except color and piece index */ + cp &= COLOR_PIECE_MASK; + printf("%s %02x ", buf, cp); + + } + printf("\n"); + } +} + +int main(void) +{ + uint8_t depth = 3; + chess_SetupBoard(); + board_Show(); + puts(""); + + + /* + chess_ClearMarks(); + chess_MarkMovable(COLOR_WHITE); + board_Show(); + */ + + chess_ManualMove(0x006, 0x066); + + printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); + printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); + + chess_ComputerMove(2); + + printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); + printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); + + board_Show(); + +} + + + +#else + +/*==============================================================*/ +/* display menu */ +/*==============================================================*/ + +//#define MNU_FONT font_5x7 +#define MNU_FONT u8g_font_5x8r +//#define MNU_FONT font_6x9 +#define MNU_ENTRY_HEIGHT 9 + +char *mnu_title = "Little Rook Chess"; +char *mnu_list[] = { "New Game (White)", "New Game (Black)", "Undo Move", "Return" }; +uint8_t mnu_pos = 0; +uint8_t mnu_max = 4; + +void mnu_DrawHome(uint8_t is_highlight) +{ + uint8_t x = lrc_u8g->width - 35; + uint8_t y = (lrc_u8g->height-1); + uint8_t t; + + u8g_SetFont(lrc_u8g, u8g_font_5x7r); + u8g_SetDefaultForegroundColor(lrc_u8g); + t = u8g_DrawStrP(lrc_u8g, x, y -1, U8G_PSTR("Options")); + + if ( is_highlight ) + u8g_DrawFrame(lrc_u8g, x-1, y - MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); +} + +void mnu_DrawEntry(uint8_t y, char *str, uint8_t is_clr_background, uint8_t is_highlight) +{ + uint8_t t, x; + u8g_SetFont(lrc_u8g, MNU_FONT); + t = u8g_GetStrWidth(lrc_u8g, str); + x = u8g_GetWidth(lrc_u8g); + x -= t; + x >>= 1; + + if ( is_clr_background ) + { + u8g_SetDefaultBackgroundColor(lrc_u8g); + u8g_DrawBox(lrc_u8g, x-3, (lrc_u8g->height-1) - (y+MNU_ENTRY_HEIGHT-1+2), t+5, MNU_ENTRY_HEIGHT+4); + } + + u8g_SetDefaultForegroundColor(lrc_u8g); + u8g_DrawStr(lrc_u8g, x, (lrc_u8g->height-1) - y, str); + + if ( is_highlight ) + { + u8g_DrawFrame(lrc_u8g, x-1, (lrc_u8g->height-1) - y -MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); + } +} + +void mnu_Draw(void) +{ + uint8_t i; + uint8_t t,y; + /* calculate hight of the complete menu */ + y = mnu_max; + y++; /* consider also some space for the title */ + y++; /* consider also some space for the title */ + y *= MNU_ENTRY_HEIGHT; + + /* calculate how much space will be left */ + t = u8g_GetHeight(lrc_u8g); + t -= y; + + /* topmost pos start half of that empty space from the top */ + t >>= 1; + y = u8g_GetHeight(lrc_u8g); + y -= t; + + y -= MNU_ENTRY_HEIGHT; + mnu_DrawEntry(y, mnu_title, 0, 0); + + y -= MNU_ENTRY_HEIGHT; + + + for( i = 0; i < mnu_max; i++ ) + { + y -= MNU_ENTRY_HEIGHT; + mnu_DrawEntry(y, mnu_list[i], 0, i == mnu_pos); + } +} + +void mnu_Step(uint8_t key_cmd) +{ + if ( key_cmd == CHESS_KEY_NEXT ) + { + if ( mnu_pos+1 < mnu_max ) + mnu_pos++; + } + else if ( key_cmd == CHESS_KEY_PREV ) + { + if ( mnu_pos > 0 ) + mnu_pos--; + } +} + + + + +uint8_t chess_key_code = 0; +uint8_t chess_key_cmd = 0; +#define CHESS_STATE_MENU 0 +#define CHESS_STATE_SELECT_START 1 +#define CHESS_STATE_SELECT_PIECE 2 +#define CHESS_STATE_SELECT_TARGET_POS 3 +#define CHESS_STATE_THINKING 4 +#define CHESS_STATE_GAME_END 5 +uint8_t chess_state = CHESS_STATE_MENU; +uint8_t chess_source_pos = 255; +uint8_t chess_target_pos = 255; + +const uint8_t chess_pieces_body_bm[] PROGMEM = +{ + /* PAWN */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, */ + /* KNIGHT */ 0x00, 0x00, 0x1c, 0x2c, 0x04, 0x04, 0x0e, 0x00, + /* BISHOP */ 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x08, 0x00, 0x00, /* 0x00, 0x00, 0x08, 0x1c, 0x1c, 0x08, 0x00, 0x00, */ + /* ROOK */ 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, + /* QUEEN */ 0x00, 0x00, 0x14, 0x1c, 0x08, 0x1c, 0x08, 0x00, + /* KING */ 0x00, 0x00, 0x00, 0x08, 0x3e, 0x1c, 0x08, 0x00, +}; + +#ifdef NOT_REQUIRED +/* white pieces are constructed by painting black pieces and cutting out the white area */ +const uint8_t chess_white_pieces_bm[] PROGMEM = +{ + /* PAWN */ 0x00, 0x00, 0x0c, 0x12, 0x12, 0x0c, 0x1e, 0x00, + /* KNIGHT */ 0x00, 0x1c, 0x22, 0x52, 0x6a, 0x0a, 0x11, 0x1f, + /* BISHOP */ 0x00, 0x08, 0x14, 0x22, 0x22, 0x14, 0x08, 0x7f, + /* ROOK */ 0x00, 0x55, 0x7f, 0x22, 0x22, 0x22, 0x22, 0x7f, + /* QUEEN */ 0x00, 0x55, 0x2a, 0x22, 0x14, 0x22, 0x14, 0x7f, + /* KING */ 0x08, 0x1c, 0x49, 0x77, 0x41, 0x22, 0x14, 0x7f, +}; +#endif + +const uint8_t chess_black_pieces_bm[] PROGMEM = +{ + /* PAWN */ 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x3c, 0x00, /* 0x00, 0x00, 0x0c, 0x1e, 0x1e, 0x0c, 0x1e, 0x00, */ + /* KNIGHT */ 0x00, 0x1c, 0x3e, 0x7e, 0x6e, 0x0e, 0x1f, 0x1f, + /* BISHOP */ 0x00, 0x1c, 0x2e, 0x3e, 0x3e, 0x1c, 0x08, 0x7f, /*0x00, 0x08, 0x1c, 0x3e, 0x3e, 0x1c, 0x08, 0x7f,*/ + /* ROOK */ 0x00, 0x55, 0x7f, 0x3e, 0x3e, 0x3e, 0x3e, 0x7f, + /* QUEEN */ 0x00, 0x55, 0x3e, 0x3e, 0x1c, 0x3e, 0x1c, 0x7f, + /* KING -*/ 0x08, 0x1c, 0x49, 0x7f, 0x7f, 0x3e, 0x1c, 0x7f, +}; + + +#if defined(DOGXL160_HW_GR) +#define BOXSIZE 13 +#define BOXOFFSET 3 +#else +#define BOXSIZE 8 +#define BOXOFFSET 1 +#endif + +u8g_uint_t chess_low_edge; +uint8_t chess_boxsize = 8; +uint8_t chess_boxoffset = 1; + + +void chess_DrawFrame(uint8_t pos, uint8_t is_bold) +{ + u8g_uint_t x0, y0; + + x0 = pos; + x0 &= 15; + if ( lrc_obj.orientation != COLOR_WHITE ) + x0 ^= 7; + + y0 = pos; + y0>>= 4; + if ( lrc_obj.orientation != COLOR_WHITE ) + y0 ^= 7; + + x0 *= chess_boxsize; + y0 *= chess_boxsize; + + u8g_SetDefaultForegroundColor(lrc_u8g); + u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize+1, chess_boxsize, chess_boxsize); + + + if ( is_bold ) + { + x0--; + y0++; + + u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize +1, chess_boxsize+2, chess_boxsize+2); + } +} + + +void chess_DrawBoard(void) +{ + uint8_t i, j, cp; + const uint8_t *ptr; /* pointer into PROGMEM */ + + if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) > 1 ) + { + for( i = 0; i < 8; i++ ) + for( j = 0; j < 8; j++ ) + { + uint8_t x,y; + x = i; + x*=chess_boxsize; + y = j; + y*=chess_boxsize; + if ( ((i^j) & 1) == 0 ) + u8g_SetDefaultMidColor(lrc_u8g); + else + u8g_SetDefaultBackgroundColor(lrc_u8g); + u8g_DrawBox(lrc_u8g, x,chess_low_edge-y-chess_boxsize+1,chess_boxsize,chess_boxsize); + } + //u8g_SetDefaultForegroundColor(lrc_u8g); + } + else + { + uint8_t x_offset = 1; + u8g_SetDefaultForegroundColor(lrc_u8g); + for( i = 0; i < 8*8; i+=8 ) + { + for( j = 0; j < 8*8; j+=8 ) + { + if ( ((i^j) & 8) == 0 ) + { + u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-0); + u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-2); + u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-4); + u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-6); + u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-0); + u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-6); + u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-0); + u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-6); + u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-0); + u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-2); + u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-4); + u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-6); + } + } + } + } + + for ( i = 0; i < 8; i++ ) + { + for ( j = 0; j < 8; j++ ) + { + /* get piece from global board */ + if ( lrc_obj.orientation == COLOR_WHITE ) + { + cp = lrc_obj.board[i*8+j]; + } + else + { + cp = lrc_obj.board[(7-i)*8+7-j]; + } + if ( cp_GetPiece(cp) != PIECE_NONE ) + { + ptr = chess_black_pieces_bm; + ptr += (cp_GetPiece(cp)-1)*8; + u8g_SetDefaultForegroundColor(lrc_u8g); + u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); + + if ( cp_GetColor(cp) == lrc_obj.strike_out_color ) + { + ptr = chess_pieces_body_bm; + ptr += (cp_GetPiece(cp)-1)*8; + u8g_SetDefaultBackgroundColor(lrc_u8g); + u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); + } + } + } + } + + if ( (chess_source_pos & 0x88) == 0 ) + { + chess_DrawFrame(chess_source_pos, 1); + } + + if ( (chess_target_pos & 0x88) == 0 ) + { + chess_DrawFrame(chess_target_pos, 0); + } + +} + + +void chess_Thinking(void) +{ +} + +void chess_Init(u8g_t *u8g, uint8_t body_color) +{ + lrc_u8g = u8g; + + chess_low_edge = u8g_GetHeight(lrc_u8g); + chess_low_edge--; + + + if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) == 1 ) + { + + chess_boxsize = 8; + chess_boxoffset = 1; + } + else + { + + /* + if ( u8g_GetHeight(lrc_u8g) >= 12*8 ) + { + chess_boxsize = 12; + chess_boxoffset = 3; + } + else */ if ( u8g_GetHeight(lrc_u8g) >= 11*8 ) + { + chess_boxsize = 10; + chess_boxoffset = 2; + } + else + { + chess_boxsize = 8; + chess_boxoffset = 1; + } + + if ( u8g_GetHeight(lrc_u8g) > 64 ) + chess_low_edge -= (u8g_GetHeight(lrc_u8g)-chess_boxsize*8) / 2; + + } + + lrc_obj.strike_out_color = body_color; + chess_SetupBoard(); +} + + + +void chess_Draw(void) +{ + if ( chess_state == CHESS_STATE_MENU ) + { + if ( lrc_obj.ply_count == 0) + mnu_max = 2; + else + mnu_max = 4; + mnu_Draw(); + } + else + { + chess_DrawBoard(); + + { + uint8_t i; + uint8_t entries = lrc_obj.chm_pos; + if ( entries > 4 ) + entries = 4; + + u8g_SetFont(lrc_u8g, u8g_font_5x7); + u8g_SetDefaultForegroundColor(lrc_u8g); + for( i = 0; i < entries; i++ ) + { + +#if defined(DOGXL160_HW_GR) || defined(DOGXL160_HW_BW) + dog_DrawStr(u8g_GetWidth(lrc_u8g)-35, u8g_GetHeight(lrc_u8g)-8*(i+1), font_5x7, cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); +#else + u8g_DrawStr(lrc_u8g, u8g_GetWidth(lrc_u8g)-35, 8*(i+1), cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); +#endif + + } + + } + + if ( chess_state == CHESS_STATE_SELECT_PIECE ) + mnu_DrawHome(chess_source_pos == 255); + else if ( chess_state == CHESS_STATE_SELECT_TARGET_POS ) + mnu_DrawHome(chess_target_pos == 255); + else + mnu_DrawHome(0); + + if ( chess_state == CHESS_STATE_GAME_END ) + { + switch( lrc_obj.lost_side_color ) + { + case COLOR_WHITE: + mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Black wins", 1, 1); + break; + case COLOR_BLACK: + mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "White wins", 1, 1); + break; + default: + mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Stalemate", 1, 1); + break; + } + } + } +} + + +void chess_Step(uint8_t keycode) +{ + if ( keycode == CHESS_KEY_NONE ) + { + chess_key_cmd = chess_key_code; + chess_key_code = CHESS_KEY_NONE; + } + else + { + chess_key_cmd = CHESS_KEY_NONE; + chess_key_code = keycode; + } + //chess_ComputerMove(2); + switch(chess_state) + { + case CHESS_STATE_MENU: + mnu_Step(chess_key_cmd); + if ( chess_key_cmd == CHESS_KEY_SELECT ) + { + if ( mnu_pos == 0 ) + { + chess_SetupBoard(); + lrc_obj.orientation = 0; + chess_state = CHESS_STATE_SELECT_START; + } + else if ( mnu_pos == 1 ) + { + chess_SetupBoard(); + lrc_obj.orientation = 1; + chess_state = CHESS_STATE_THINKING; + } + else if ( mnu_pos == 2 ) + { + if ( lrc_obj.ply_count >= 2 ) + { + cu_UndoHalfMove(); + cu_UndoHalfMove(); + lrc_obj.ply_count-=2; + if ( lrc_obj.ply_count == 0 ) + mnu_pos = 0; + } + chess_state = CHESS_STATE_SELECT_START; + } + else if ( mnu_pos == 3 ) + { + chess_state = CHESS_STATE_SELECT_START; + } + } + break; + case CHESS_STATE_SELECT_START: + chess_ClearMarks(); + chess_MarkMovable(); + chess_source_pos = chess_GetNextMarked(255, 0); + chess_target_pos = ILLEGAL_POSITION; + chess_state = CHESS_STATE_SELECT_PIECE; + break; + + case CHESS_STATE_SELECT_PIECE: + if ( chess_key_cmd == CHESS_KEY_NEXT ) + { + chess_source_pos = chess_GetNextMarked(chess_source_pos, 0); + } + else if ( chess_key_cmd == CHESS_KEY_PREV ) + { + chess_source_pos = chess_GetNextMarked(chess_source_pos, 1); + } + else if ( chess_key_cmd == CHESS_KEY_SELECT ) + { + if ( chess_source_pos == 255 ) + { + chess_state = CHESS_STATE_MENU; + } + else + { + chess_ClearMarks(); + chess_MarkTargetMoves(chess_source_pos); + chess_target_pos = chess_GetNextMarked(255, 0); + chess_state = CHESS_STATE_SELECT_TARGET_POS; + } + } + break; + case CHESS_STATE_SELECT_TARGET_POS: + if ( chess_key_cmd == CHESS_KEY_NEXT ) + { + chess_target_pos = chess_GetNextMarked(chess_target_pos, 0); + } + else if ( chess_key_cmd == CHESS_KEY_PREV ) + { + chess_target_pos = chess_GetNextMarked(chess_target_pos, 1); + } + else if ( chess_key_cmd == CHESS_KEY_BACK ) + { + chess_ClearMarks(); + chess_MarkMovable(); + chess_target_pos = ILLEGAL_POSITION; + chess_state = CHESS_STATE_SELECT_PIECE; + } + else if ( chess_key_cmd == CHESS_KEY_SELECT ) + { + chess_ManualMove(chess_source_pos, chess_target_pos); + if ( lrc_obj.is_game_end != 0 ) + chess_state = CHESS_STATE_GAME_END; + else + chess_state = CHESS_STATE_THINKING; + /* clear marks as some kind of feedback to the user... it simply looks better */ + chess_source_pos = ILLEGAL_POSITION; + chess_target_pos = ILLEGAL_POSITION; + chess_ClearMarks(); + } + break; + case CHESS_STATE_THINKING: + chess_ComputerMove(2); + if ( lrc_obj.is_game_end != 0 ) + chess_state = CHESS_STATE_GAME_END; + else + chess_state = CHESS_STATE_SELECT_START; + break; + case CHESS_STATE_GAME_END: + if ( chess_key_cmd != CHESS_KEY_NONE ) + { + chess_state = CHESS_STATE_MENU; + chess_SetupBoard(); + } + break; + } + +} + +#endif + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h new file mode 100644 index 000000000..f5a0230ac --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h @@ -0,0 +1,1607 @@ +/* + + u8g.h + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#ifndef _U8G_H +#define _U8G_H + +//#define U8G_16BIT 1 + +#include + +#ifdef __18CXX +typedef unsigned char uint8_t; +typedef signed char int8_t; +typedef unsigned short uint16_t; +typedef signed short int16_t; +#else +#include +#endif + +#if defined(__AVR__) +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/*===============================================================*/ +#ifdef __GNUC__ +#define U8G_NOINLINE __attribute__((noinline)) +#define U8G_PURE __attribute__ ((pure)) +#define U8G_NOCOMMON __attribute__ ((nocommon)) +#define U8G_SECTION(name) __attribute__ ((section (name))) +#else +#define U8G_NOINLINE +#define U8G_PURE +#define U8G_NOCOMMON +#define U8G_SECTION(name) +#endif + +/*===============================================================*/ +/* flash memory access */ + +#if defined(__AVR__) +/* U8G_PROGMEM is used by the XBM example */ +#define U8G_PROGMEM U8G_SECTION(".progmem.data") +typedef uint8_t PROGMEM u8g_pgm_uint8_t; +typedef uint8_t u8g_fntpgm_uint8_t; +#define u8g_pgm_read(adr) pgm_read_byte_near(adr) +#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) +#else +#define U8G_PROGMEM +#define PROGMEM +typedef uint8_t u8g_pgm_uint8_t; +typedef uint8_t u8g_fntpgm_uint8_t; +#define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) +#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) +#endif + +/*===============================================================*/ +/* forward */ +typedef struct _u8g_t u8g_t; +typedef struct _u8g_dev_t u8g_dev_t; + +typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; +typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; +typedef struct _u8g_box_t u8g_box_t; + + +/*===============================================================*/ +/* generic */ +#if defined(U8G_16BIT) +typedef uint16_t u8g_uint_t; +typedef int16_t u8g_int_t; +#else +typedef uint8_t u8g_uint_t; +typedef int8_t u8g_int_t; +#endif + +#ifdef OBSOLETE +struct _u8g_box_t +{ + u8g_uint_t x0, y0, x1, y1; +}; +typedef struct _u8g_box_t u8g_box_t; +#endif /* OBSOLETE */ + + +/*===============================================================*/ +/* device structure */ + +#ifdef __XC8 +/* device prototype */ +typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); + +/* com prototype */ +typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); +#else +/* device prototype */ +typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* com prototype */ +typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); +#endif + + + +struct _u8g_dev_t +{ + u8g_dev_fnptr dev_fn; /* device procedure */ + void *dev_mem; /* device memory */ + u8g_com_fnptr com_fn; /* communication procedure */ +}; + + +/*===============================================================*/ +/* device list */ + +/* Size: 128x64 SDL, u8g_dev_sdl.c */ +extern u8g_dev_t u8g_dev_sdl_1bit; +extern u8g_dev_t u8g_dev_sdl_1bit_h; +extern u8g_dev_t u8g_dev_sdl_2bit; +extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; +extern u8g_dev_t u8g_dev_sdl_8bit; +int u8g_sdl_get_key(void); + +/* Size: 70x30 monochrom, stdout */ +extern u8g_dev_t u8g_dev_stdout; + +/* Size: monochrom, writes "u8g.pbm" */ +extern u8g_dev_t u8g_dev_pbm; +extern u8g_dev_t u8g_dev_pbm_8h1; +extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ + +/* Size: 128x64 monochrom, no output, used for performance measure */ +extern u8g_dev_t u8g_dev_gprof; + +/* Display: EA DOGS102, Size: 102x64 monochrom */ +extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; +extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; + +/* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ +extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; +extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; + +/* Display: EA DOGM132, Size: 128x32 monochrom */ +extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; +extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; + +/* Display: EA DOGM128, Size: 128x64 monochrom */ +extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; +extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; +/* Display: Topway LM6063 128x64 */ +extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; +extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; +/* Display: Topway LM6059 128x64 (Adafruit) */ +extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; +extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; +/* Display: Newhaven NHD-C12864 */ +extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; +extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; +/* Display: Newhaven NHD-C12832 */ +extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; +extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; +extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; +/* Display: Displaytech 64128N */ +extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; +extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; + +/* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ +extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; +extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; +extern u8g_dev_t u8g_dev_st7920_128x64_8bit; + +extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; +extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; +extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; + +/* NHD-19232WG */ +extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; +extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; +extern u8g_dev_t u8g_dev_st7920_192x32_8bit; + +extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; +extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; +extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; + +/* CrystalFontz CFAG20232 */ +extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; +extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; +extern u8g_dev_t u8g_dev_st7920_202x32_8bit; + +extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; +extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; +extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; + +/* LC7981 160x80 display */ +extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; +/* LC7981 240x64 display */ +extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; +/* LC7981 240x128 display */ +extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; +/* LC7981 320x64 display */ +extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; + +/* T6963, all t6963 devices have double page (2x) */ +extern u8g_dev_t u8g_dev_t6963_240x128_8bit; +extern u8g_dev_t u8g_dev_t6963_240x64_8bit; +extern u8g_dev_t u8g_dev_t6963_128x64_8bit; + +/* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ +extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; + +extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; +extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; + +/* Display: Generic KS0108b, Size: 128x64 monochrom */ +extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ +extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ + +/* Nokia 84x48 Display with PCD8544 */ +extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; +extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; + +/* Nokia 96x65 Display with PCF8812 */ +extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; + +/* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; + +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; + +/* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ +extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; +extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; + +extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; +extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; + +/* NHD-3.12-25664 OLED Display with SSD1322 Controller */ +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; + +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; +extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; + +/* OLED 128x64 Display with SSD1306 Controller */ +extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; +extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; +extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; + +/* OLED 128x64 Display with SSD1309 Controller */ +extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; +extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; +extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; + +/* OLED 128x32 Display with SSD1306 Controller */ +extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; +extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; +extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; + +/* experimental 65K TFT with st7687 controller */ +extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; +extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; + +/* SBN1661/SED1520 display with 122x32 */ +extern u8g_dev_t u8g_dev_sbn1661_122x32; + +/* flip disc matrix */ +extern u8g_dev_t u8g_dev_flipdisc_2x7; +void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); + +/* ILI9325D based TFT */ +extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; + +/* u8g_virtual_screen.c */ +extern u8g_dev_t u8g_dev_vs; + + +/*===============================================================*/ +/* device messages */ + +struct _u8g_dev_arg_pixel_t +{ + u8g_uint_t x, y; /* will be modified */ + uint8_t pixel; /* will be modified */ + uint8_t dir; + uint8_t color; +}; +/* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ + +struct _u8g_dev_arg_bbx_t +{ + u8g_uint_t x, y, w, h; +}; +/* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ + +struct _u8g_box_t +{ + u8g_uint_t x0, y0, x1, y1; +}; +/* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ + + +#define U8G_DEV_MSG_INIT 10 +#define U8G_DEV_MSG_STOP 11 + +/* arg: pointer to uint8_t, contranst value between 0 and 255 */ +#define U8G_DEV_MSG_CONTRAST 15 + +#define U8G_DEV_MSG_SLEEP_ON 16 +#define U8G_DEV_MSG_SLEEP_OFF 17 + +#define U8G_DEV_MSG_PAGE_FIRST 20 +#define U8G_DEV_MSG_PAGE_NEXT 21 + +/* arg: u8g_dev_arg_bbx_t * */ +/* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ +/* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ + +/* arg: u8g_box_t *, fill structure with current page properties */ +#define U8G_DEV_MSG_GET_PAGE_BOX 23 + +/* +#define U8G_DEV_MSG_PRIMITIVE_START 30 +#define U8G_DEV_MSG_PRIMITIVE_END 31 +*/ + +/* arg: u8g_dev_arg_pixel_t * */ +#define U8G_DEV_MSG_SET_PIXEL 50 +#define U8G_DEV_MSG_SET_8PIXEL 59 + +#define U8G_DEV_MSG_SET_COLOR_INDEX 60 + +#define U8G_DEV_MSG_SET_XY_CB 61 + +#define U8G_DEV_MSG_GET_WIDTH 70 +#define U8G_DEV_MSG_GET_HEIGHT 71 +#define U8G_DEV_MSG_GET_MODE 72 + +/*===============================================================*/ +/* device modes */ +#define U8G_MODE(is_color, bits_per_pixel) (((is_color)<<4)|(bits_per_pixel)) + +#define U8G_MODE_UNKNOWN 0 +#define U8G_MODE_BW U8G_MODE(0, 1) +#define U8G_MODE_GRAY2BIT U8G_MODE(0, 2) +#define U8G_MODE_R3G3B2 U8G_MODE(1, 8) + +#define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&15) +#define U8G_MODE_IS_COLOR(mode) (((mode)&16)==0?0:1) + + +/*===============================================================*/ +/* com options */ + +/* uncomment the following line for Atmega HW SPI double speed, issue 89 */ +/* #define U8G_HW_SPI_2X 1 */ + +/* com messages */ + +#define U8G_COM_MSG_STOP 0 +#define U8G_COM_MSG_INIT 1 + +#define U8G_COM_MSG_ADDRESS 2 + +/* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ +#define U8G_COM_MSG_CHIP_SELECT 3 + +#define U8G_COM_MSG_RESET 4 + +#define U8G_COM_MSG_WRITE_BYTE 5 +#define U8G_COM_MSG_WRITE_SEQ 6 +#define U8G_COM_MSG_WRITE_SEQ_P 7 + + +/* com driver */ +uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ +uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ +uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ +uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ +uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ +uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ +uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ +uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ +uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ +uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ +uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ +uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ + + +uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ +uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ +uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ +uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); +uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ + + +/* + Translation of system specific com drives to generic com names + At the moment, the following generic com drives are available + U8G_COM_HW_SPI + U8G_COM_SW_SPI + U8G_COM_PARALLEL + U8G_COM_T6963 + U8G_COM_FAST_PARALLEL + U8G_COM_SSD_I2C + +defined(__18CXX) || defined(__PIC32MX) + +*/ +/* ==== HW SPI, Arduino ====*/ +#if defined(ARDUINO) +#if defined(__AVR__) +#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn +#define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn +#elif defined(__18CXX) || defined(__PIC32MX) +#define U8G_COM_HW_SPI u8g_com_null_fn +#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn +#endif +#endif +/* ==== HW SPI, not Arduino ====*/ +#ifndef U8G_COM_HW_SPI +#if defined(__AVR__) +#define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn +#define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn +#endif +#endif +#ifndef U8G_COM_HW_SPI +#define U8G_COM_HW_SPI u8g_com_null_fn +#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn +#endif + +/* ==== SW SPI, Arduino ====*/ +#if defined(ARDUINO) +#if defined(__AVR__) +#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn +#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn +#elif defined(__18CXX) || defined(__PIC32MX) +#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn +#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn +#elif defined(__arm__) /* Arduino Due */ +#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn +#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn +#endif +#endif + +#ifndef U8G_COM_SW_SPI +/* ==== SW SPI, not Arduino ====*/ +#if defined(__AVR__) +#define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn +#define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn +#endif +#endif +#ifndef U8G_COM_SW_SPI +#define U8G_COM_SW_SPI u8g_com_null_fn +#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn +#endif + +/* ==== Parallel iinterface, Arduino ====*/ +#if defined(ARDUINO) +#if defined(__AVR__) +#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn +#define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn +#define U8G_COM_T6963 u8g_com_arduino_t6963_fn +#else /* Arduino Due, Chipkit PIC32 */ +#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn +#define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn +#define U8G_COM_T6963 u8g_com_null_fn +#endif +#endif +#ifndef U8G_COM_PARALLEL +#if defined(__AVR__) +#define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn +#define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn +#define U8G_COM_T6963 u8g_com_null_fn +#endif +#endif +#ifndef U8G_COM_PARALLEL +#define U8G_COM_PARALLEL u8g_com_null_fn +#define U8G_COM_FAST_PARALLEL u8g_com_null_fn +#define U8G_COM_T6963 u8g_com_null_fn +#endif + +#if defined(ARDUINO) +#if defined(__AVR__) +#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn +#endif +#endif + +#ifndef U8G_COM_SSD_I2C +#if defined(__AVR__) +/* AVR variant can use the arduino version at the moment */ +#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn +#endif +#endif +#ifndef U8G_COM_SSD_I2C +#define U8G_COM_SSD_I2C u8g_com_null_fn +#endif + + + +/*===============================================================*/ +/* com api */ +uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev); +void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); +void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ +void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ +void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); +void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); +void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); +void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); +uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); +uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); +uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); + + + +#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) +#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) +#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) +#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) +#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) +#define U8G_ESC_END 255, 254 +#define U8G_ESC_255 255, 255 +//uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); +uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); + + +/* u8g_com_api_16gr.c */ +uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); +uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); +uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); +uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); + + +/*===============================================================*/ +/* u8g_arduino_common.c */ +void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); +void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); + +/*===============================================================*/ +/* u8g_com_io.c */ + +/* create internal number from port and pin */ +uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); +#define PN(port,bitpos) u8g_Pin(port,bitpos) + +/* low level procedures */ +void u8g_SetPinOutput(uint8_t internal_pin_number); +void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); +void u8g_SetPinInput(uint8_t internal_pin_number); +uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); + +/* u8g level procedures, expect U8G_PI_xxx macro */ +void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); +void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); + + +/*===============================================================*/ +/* page */ +struct _u8g_page_t +{ + u8g_uint_t page_height; + u8g_uint_t total_height; + u8g_uint_t page_y0; + u8g_uint_t page_y1; + uint8_t page; +}; +typedef struct _u8g_page_t u8g_page_t; + +void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ +void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ +uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ + +/*===============================================================*/ +/* page buffer (pb) */ + +struct _u8g_pb_t +{ + u8g_page_t p; + u8g_uint_t width; /* pixel width */ + void *buf; +}; +typedef struct _u8g_pb_t u8g_pb_t; + + +/* u8g_pb.c */ +void u8g_pb_Clear(u8g_pb_t *b); +uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); +uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); +uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); +void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); +uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); +uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); + +/* + note on __attribute__ ((nocommon)) + AVR scripts often use --gc-sections on the linker to remove unused section. + This works fine for initialed data and text sections. In principle .bss is also + handled, but the name##_pb definition is not removed. Reason is, that + array definitions are placed in the COMMON section, by default + The attribute "nocommon" removes this automatic assignment to the + COMMON section and directly puts it into .bss. As a result, if more + than one buffer is defined in one file, then it will be removed with --gc-sections + + .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is + redundant. +*/ +#define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ +uint8_t name##_buf[width] U8G_NOCOMMON ; \ +u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ +u8g_dev_t name = { dev_fn, &name##_pb, com_fn } + + +void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; + +uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); +uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); +uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); + +uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb16v1.c */ +uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb14v1.c */ +uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb8v2.c */ +uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb16v2.c (double memory of pb8v2) */ +uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + +/* u8g_pb8h1.c */ +uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb16h1.c */ +uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb32h1.c */ +uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + +/* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ +uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb16h2.c */ +uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + + +/* u8g_pb8h1f.c */ +uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +/* u8g_pb8h8.c */ +uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + + +/*===============================================================*/ +/* u8g_ll_api.c */ + +/* cursor draw callback */ +typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); + +/* vertical reference point calculation callback */ +typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); + +/* state backup and restore procedure */ +typedef void (*u8g_state_cb)(uint8_t msg); + + +/* PI = Pin Index */ + +/* reset pin, usually optional */ +#define U8G_PI_RESET 0 + +/* address / data or instruction */ +#define U8G_PI_A0 1 +#define U8G_PI_DI 1 + +/* chip select line */ +#define U8G_PI_CS 2 +#define U8G_PI_CS1 2 +#define U8G_PI_CS2 3 +/* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ +#define U8G_PI_A0_STATE 3 + +/* enable / clock signal */ +#define U8G_PI_EN 4 +#define U8G_PI_CS_STATE 4 +#define U8G_PI_SCK 4 +#define U8G_PI_SCL 4 +#define U8G_PI_RD 4 + + +/* data pins, shared with SPI and I2C pins */ +#define U8G_PI_D0 5 +#define U8G_PI_MOSI 5 +#define U8G_PI_SDA 5 +#define U8G_PI_D1 6 +#define U8G_PI_MISO 6 +#define U8G_PI_D2 7 +#define U8G_PI_D3 8 +#define U8G_PI_SET_A0 8 +#define U8G_PI_D4 9 +#define U8G_PI_D5 10 +#define U8G_PI_I2C_OPTION 11 +#define U8G_PI_D6 11 +#define U8G_PI_D7 12 + +/* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ +#define U8G_PI_WR 13 +#define U8G_PI_RW 13 + +#define U8G_PIN_LIST_LEN 14 + + +#define U8G_PIN_NONE 255 + +#define U8G_FONT_HEIGHT_MODE_TEXT 0 +#define U8G_FONT_HEIGHT_MODE_XTEXT 1 +#define U8G_FONT_HEIGHT_MODE_ALL 2 + +struct _u8g_t +{ + u8g_uint_t width; + u8g_uint_t height; + + + u8g_dev_t *dev; /* first device in the device chain */ + const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ + const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ + uint8_t cursor_fg_color, cursor_bg_color; + uint8_t cursor_encoding; + uint8_t mode; /* display mode, one of U8G_MODE_xxx */ + u8g_uint_t cursor_x; + u8g_uint_t cursor_y; + u8g_draw_cursor_fn cursor_fn; + + int8_t glyph_dx; + int8_t glyph_x; + int8_t glyph_y; + uint8_t glyph_width; + uint8_t glyph_height; + + u8g_font_calc_vref_fnptr font_calc_vref; + uint8_t font_height_mode; + int8_t font_ref_ascent; + int8_t font_ref_descent; + uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ + uint8_t line_spacing; + + u8g_dev_arg_pixel_t arg_pixel; + /* uint8_t color_index; */ + + uint8_t pin_list[U8G_PIN_LIST_LEN]; + + u8g_state_cb state_cb; + + u8g_box_t current_page; /* current box of the visible page */ + +}; + +#define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) +#define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) +#define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) + +uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); +void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); +uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); +uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); +void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); +void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); +uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); /* obsolete */ +u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); +u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); + +void u8g_UpdateDimension(u8g_t *u8g); +uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ +uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ +uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset); +uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); +uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ +uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); +uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); +uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); +void u8g_FirstPage(u8g_t *u8g); +uint8_t u8g_NextPage(u8g_t *u8g); +uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); +void u8g_SleepOn(u8g_t *u8g); +void u8g_SleepOff(u8g_t *u8g); +void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); +void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); + +uint8_t u8g_Stop(u8g_t *u8g); +void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); +uint8_t u8g_GetColorIndex(u8g_t *u8g); + +uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); +void u8g_SetDefaultForegroundColor(u8g_t *u8g); + +uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); +void u8g_SetDefaultBackgroundColor(u8g_t *u8g); + +uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); +void u8g_SetDefaultMidColor(u8g_t *u8g); + +#define u8g_GetWidth(u8g) ((u8g)->width) +#define u8g_GetHeight(u8g) ((u8g)->height) +#define u8g_GetMode(u8g) ((u8g)->mode) +/* + U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) + U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) +*/ + +/* u8g_state.c */ +#define U8G_STATE_ENV_IDX 0 +#define U8G_STATE_U8G_IDX 1 +#define U8G_STATE_RESTORE 0 +#define U8G_STATE_BACKUP 1 +#define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) + +#define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) +#define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) +#define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) +#define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) + +#define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) +#define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) + + + +void u8g_state_dummy_cb(uint8_t msg); +void u8g_backup_avr_spi(uint8_t msg); /* backup SPI state on atmel avr controller */ + +void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); + +/* u8g_clip.c */ + +uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); + + +/* u8g_rot.c */ + +void u8g_UndoRotation(u8g_t *u8g); +void u8g_SetRot90(u8g_t *u8g); +void u8g_SetRot180(u8g_t *u8g); +void u8g_SetRot270(u8g_t *u8g); + +/* u8g_scale.c */ + +void u8g_UndoScale(u8g_t *u8g); +void u8g_SetScale2x2(u8g_t *u8g); + + +/* u8g_font.c */ + +size_t u8g_font_GetSize(const void *font); +uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; +uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; + +void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); + +uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); +uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); +int8_t u8g_GetFontBBXOffX(u8g_t *u8g); +int8_t u8g_GetFontBBXOffY(u8g_t *u8g); +uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); + +uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); +int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); + +int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ + +int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); +int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); +int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); +int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); +int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); +int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); + +u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); +u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); +u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); +u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); + +u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); + + +u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); +u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); +u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); +u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); + + +void u8g_SetFontRefHeightText(u8g_t *u8g); +void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); +void u8g_SetFontRefHeightAll(u8g_t *u8g); +void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); + +u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); +u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); +u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); +u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); + +void u8g_SetFontPosBaseline(u8g_t *u8g); +void u8g_SetFontPosBottom(u8g_t *u8g); +void u8g_SetFontPosCenter(u8g_t *u8g); +void u8g_SetFontPosTop(u8g_t *u8g); + + +u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); +u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); +int8_t u8g_GetStrX(u8g_t *u8g, const char *s); +int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); +u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s); +u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); + +u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); + +void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); +void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); + +/* u8g_rect.c */ + +void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; + +void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w); +void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w); +void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); +void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); + +void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r); +void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r); + +/* u8g_bitmap.c */ + +void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); +void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); +void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); +void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); + +void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); +void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); + + +/* u8g_line.c */ +void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); + + +/* u8g_circle.c */ + +/* the following, commented code has been rewritten or is not yet finished +#define U8G_CIRC_UPPER_RIGHT 0x01 +#define U8G_CIRC_UPPER_LEFT 0x02 +#define U8G_CIRC_LOWER_LEFT 0x04 +#define U8G_CIRC_LOWER_RIGHT 0x08 +#define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) +void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); +void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); +void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); +*/ + +#define U8G_DRAW_UPPER_RIGHT 0x01 +#define U8G_DRAW_UPPER_LEFT 0x02 +#define U8G_DRAW_LOWER_LEFT 0x04 +#define U8G_DRAW_LOWER_RIGHT 0x08 +#define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) + +void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; +void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; + +void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); +void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); + +/* u8g_clip.c */ +uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); + + +/* u8g_cursor.c */ +void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); +void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); +void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); +void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); +void u8g_EnableCursor(u8g_t *u8g); +void u8g_DisableCursor(u8g_t *u8g); +void u8g_DrawCursor(u8g_t *u8g); + + + +/*===============================================================*/ +/* u8g_virtual_screen.c */ +void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); +uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); + +/*===============================================================*/ +void st_Draw(uint8_t fps); +void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); + +/*===============================================================*/ +/* u8g_com_i2c.c */ + +/* options for u8g_i2c_init() */ +#define U8G_I2C_OPT_NONE 0 + +/* retrun values from u8g_twi_get_error() */ +#define U8G_I2C_ERR_NONE 0x00 +/* the following values are bit masks */ +#define U8G_I2C_ERR_TIMEOUT 0x01 +#define U8G_I2C_ERR_BUS 0x02 + +void u8g_i2c_clear_error(void) U8G_NOINLINE; +uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; +uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; +void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ +uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; +uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; +uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; +void u8g_i2c_stop(void) U8G_NOINLINE; + + +/*===============================================================*/ +/* u8g_u8toa.c */ +/* v = value, d = number of digits */ +const char *u8g_u8toa(uint8_t v, uint8_t d); + +/* u8g_u8toa.c */ +/* v = value, d = number of digits */ +const char *u8g_u16toa(uint16_t v, uint8_t d); + +/*===============================================================*/ +/* u8g_delay.c */ + +/* delay by the specified number of milliseconds */ +void u8g_Delay(uint16_t val); + +/* delay by one microsecond */ +void u8g_MicroDelay(void); + +/* delay by 10 microseconds */ +void u8g_10MicroDelay(void); + +/*===============================================================*/ +/* chessengine.c */ +#define CHESS_KEY_NONE 0 +#define CHESS_KEY_NEXT 1 +#define CHESS_KEY_PREV 2 +#define CHESS_KEY_SELECT 3 +#define CHESS_KEY_BACK 4 + +void chess_Init(u8g_t *u8g, uint8_t empty_body_color); +void chess_Draw(void); +void chess_Step(uint8_t keycode); + +/*===============================================================*/ +/* font definitions */ + +extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_SECTION(".progmem.u8g_font_m2icon_5"); +extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_SECTION(".progmem.u8g_font_m2icon_7"); +extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_SECTION(".progmem.u8g_font_m2icon_9"); + +extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_SECTION(".progmem.u8g_font_u8glib_4"); +extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_SECTION(".progmem.u8g_font_u8glib_4r"); + + +extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_SECTION(".progmem.u8g_font_6x12_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_SECTION(".progmem.u8g_font_6x13_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_SECTION(".progmem.u8g_font_7x13_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_SECTION(".progmem.u8g_font_8x13_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_SECTION(".progmem.u8g_font_9x15_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_SECTION(".progmem.u8g_font_9x18_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_SECTION(".progmem.u8g_font_cu12_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_SECTION(".progmem.u8g_font_unifont_75r"); +extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_SECTION(".progmem.u8g_font_10x20_75r"); + +extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_SECTION(".progmem.u8g_font_10x20_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_SECTION(".progmem.u8g_font_10x20_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_SECTION(".progmem.u8g_font_10x20"); +extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_SECTION(".progmem.u8g_font_10x20r"); +extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_SECTION(".progmem.u8g_font_4x6"); +extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_SECTION(".progmem.u8g_font_4x6r"); +//extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_SECTION(".progmem.u8g_font_4x6n"); +extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_SECTION(".progmem.u8g_font_5x7"); +extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_SECTION(".progmem.u8g_font_5x7r"); +extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_SECTION(".progmem.u8g_font_5x8"); +extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_SECTION(".progmem.u8g_font_5x8r"); +extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_SECTION(".progmem.u8g_font_6x10"); +extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_SECTION(".progmem.u8g_font_6x10r"); +extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_SECTION(".progmem.u8g_font_6x12_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_SECTION(".progmem.u8g_font_6x12_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_SECTION(".progmem.u8g_font_6x12"); +extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_SECTION(".progmem.u8g_font_6x12r"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_SECTION(".progmem.u8g_font_6x13_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_SECTION(".progmem.u8g_font_6x13_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_SECTION(".progmem.u8g_font_6x13B"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_SECTION(".progmem.u8g_font_6x13Br"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_SECTION(".progmem.u8g_font_6x13"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_SECTION(".progmem.u8g_font_6x13r"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_SECTION(".progmem.u8g_font_6x13O"); +extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_SECTION(".progmem.u8g_font_6x13Or"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_SECTION(".progmem.u8g_font_7x13_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_SECTION(".progmem.u8g_font_7x13_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_SECTION(".progmem.u8g_font_7x13B"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_SECTION(".progmem.u8g_font_7x13Br"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_SECTION(".progmem.u8g_font_7x13"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_SECTION(".progmem.u8g_font_7x13r"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_SECTION(".progmem.u8g_font_7x13O"); +extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_SECTION(".progmem.u8g_font_7x13Or"); +extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_SECTION(".progmem.u8g_font_7x14B"); +extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_SECTION(".progmem.u8g_font_7x14Br"); +extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_SECTION(".progmem.u8g_font_7x14"); +extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_SECTION(".progmem.u8g_font_7x14r"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_SECTION(".progmem.u8g_font_8x13_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_SECTION(".progmem.u8g_font_8x13B"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_SECTION(".progmem.u8g_font_8x13Br"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_SECTION(".progmem.u8g_font_8x13"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_SECTION(".progmem.u8g_font_8x13r"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_SECTION(".progmem.u8g_font_8x13O"); +extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_SECTION(".progmem.u8g_font_8x13Or"); + +extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_SECTION(".progmem.u8g_font_9x15_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_SECTION(".progmem.u8g_font_9x15_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_SECTION(".progmem.u8g_font_9x15B"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_SECTION(".progmem.u8g_font_9x15Br"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_SECTION(".progmem.u8g_font_9x15"); +extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_SECTION(".progmem.u8g_font_9x15r"); + +extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_SECTION(".progmem.u8g_font_9x18_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_SECTION(".progmem.u8g_font_9x18_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_SECTION(".progmem.u8g_font_9x18B"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_SECTION(".progmem.u8g_font_9x18"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_SECTION(".progmem.u8g_font_9x18Br"); +extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_SECTION(".progmem.u8g_font_9x18r"); + +extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_SECTION(".progmem.u8g_font_cursor"); +extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_SECTION(".progmem.u8g_font_cursorr"); +extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_SECTION(".progmem.u8g_font_micro"); + +extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_SECTION(".progmem.u8g_font_cu12_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_SECTION(".progmem.u8g_font_cu12_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_SECTION(".progmem.u8g_font_cu12"); + +/* + Free-Universal Bold + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_SECTION(".progmem.u8g_font_fub11"); +extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_SECTION(".progmem.u8g_font_fub11r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_SECTION(".progmem.u8g_font_fub11n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_SECTION(".progmem.u8g_font_fub14"); +extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_SECTION(".progmem.u8g_font_fub14r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_SECTION(".progmem.u8g_font_fub14n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_SECTION(".progmem.u8g_font_fub17"); +extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_SECTION(".progmem.u8g_font_fub17r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_SECTION(".progmem.u8g_font_fub17n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_SECTION(".progmem.u8g_font_fub20"); +extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_SECTION(".progmem.u8g_font_fub20r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_SECTION(".progmem.u8g_font_fub20n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_SECTION(".progmem.u8g_font_fub25"); +extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_SECTION(".progmem.u8g_font_fub25r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_SECTION(".progmem.u8g_font_fub25n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_SECTION(".progmem.u8g_font_fub30"); +extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_SECTION(".progmem.u8g_font_fub30r"); +extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_SECTION(".progmem.u8g_font_fub30n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_SECTION(".progmem.u8g_font_fub35n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_SECTION(".progmem.u8g_font_fub42n"); +extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_SECTION(".progmem.u8g_font_fub49n"); + +/* + Free-Universal Regular + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_SECTION(".progmem.u8g_font_fur11"); +extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_SECTION(".progmem.u8g_font_fur11r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_SECTION(".progmem.u8g_font_fur11n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_SECTION(".progmem.u8g_font_fur14"); +extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_SECTION(".progmem.u8g_font_fur14r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_SECTION(".progmem.u8g_font_fur14n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_SECTION(".progmem.u8g_font_fur17"); +extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_SECTION(".progmem.u8g_font_fur17r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_SECTION(".progmem.u8g_font_fur17n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_SECTION(".progmem.u8g_font_fur20"); +extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_SECTION(".progmem.u8g_font_fur20r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_SECTION(".progmem.u8g_font_fur20n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_SECTION(".progmem.u8g_font_fur25"); +extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_SECTION(".progmem.u8g_font_fur25r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_SECTION(".progmem.u8g_font_fur25n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_SECTION(".progmem.u8g_font_fur30"); +extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_SECTION(".progmem.u8g_font_fur30r"); +extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_SECTION(".progmem.u8g_font_fur30n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_SECTION(".progmem.u8g_font_fur35n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_SECTION(".progmem.u8g_font_fur42n"); +extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_SECTION(".progmem.u8g_font_fur49n"); + +/* + Gentium Bold + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_SECTION(".progmem.u8g_font_gdb11"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_SECTION(".progmem.u8g_font_gdb12"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_SECTION(".progmem.u8g_font_gdb14"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_SECTION(".progmem.u8g_font_gdb17"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_SECTION(".progmem.u8g_font_gdb20"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_SECTION(".progmem.u8g_font_gdb25"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_SECTION(".progmem.u8g_font_gdb30"); + +extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_SECTION(".progmem.u8g_font_gdb11r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_SECTION(".progmem.u8g_font_gdb12r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_SECTION(".progmem.u8g_font_gdb14r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_SECTION(".progmem.u8g_font_gdb17r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_SECTION(".progmem.u8g_font_gdb20r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_SECTION(".progmem.u8g_font_gdb25r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_SECTION(".progmem.u8g_font_gdb30r"); + +extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_SECTION(".progmem.u8g_font_gdb11n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_SECTION(".progmem.u8g_font_gdb12n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_SECTION(".progmem.u8g_font_gdb14n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_SECTION(".progmem.u8g_font_gdb17n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_SECTION(".progmem.u8g_font_gdb20n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_SECTION(".progmem.u8g_font_gdb25n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_SECTION(".progmem.u8g_font_gdb30n"); + +/* + Gentium Regular + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_SECTION(".progmem.u8g_font_gdr9"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_SECTION(".progmem.u8g_font_gdr10"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_SECTION(".progmem.u8g_font_gdr11"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_SECTION(".progmem.u8g_font_gdr12"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_SECTION(".progmem.u8g_font_gdr14"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_SECTION(".progmem.u8g_font_gdr17"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_SECTION(".progmem.u8g_font_gdr20"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_SECTION(".progmem.u8g_font_gdr25"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_SECTION(".progmem.u8g_font_gdr30"); + +extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_SECTION(".progmem.u8g_font_gdr9r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_SECTION(".progmem.u8g_font_gdr10r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_SECTION(".progmem.u8g_font_gdr11r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_SECTION(".progmem.u8g_font_gdr12r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_SECTION(".progmem.u8g_font_gdr14r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_SECTION(".progmem.u8g_font_gdr17r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_SECTION(".progmem.u8g_font_gdr20r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_SECTION(".progmem.u8g_font_gdr25r"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_SECTION(".progmem.u8g_font_gdr30r"); + +extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_SECTION(".progmem.u8g_font_gdr9n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_SECTION(".progmem.u8g_font_gdr10n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_SECTION(".progmem.u8g_font_gdr11n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_SECTION(".progmem.u8g_font_gdr12n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_SECTION(".progmem.u8g_font_gdr14n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_SECTION(".progmem.u8g_font_gdr17n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_SECTION(".progmem.u8g_font_gdr20n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_SECTION(".progmem.u8g_font_gdr25n"); +extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_SECTION(".progmem.u8g_font_gdr30n"); + +/* + Old-Standard Bold + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_SECTION(".progmem.u8g_font_osb18"); +extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_SECTION(".progmem.u8g_font_osb21"); +extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_SECTION(".progmem.u8g_font_osb26"); +extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_SECTION(".progmem.u8g_font_osb29"); +extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_SECTION(".progmem.u8g_font_osb35"); + +extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_SECTION(".progmem.u8g_font_osb18r"); +extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_SECTION(".progmem.u8g_font_osb21r"); +extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_SECTION(".progmem.u8g_font_osb26r"); +extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_SECTION(".progmem.u8g_font_osb29r"); +extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_SECTION(".progmem.u8g_font_osb35r"); + +extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_SECTION(".progmem.u8g_font_osb18n"); +extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_SECTION(".progmem.u8g_font_osb21n"); +extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_SECTION(".progmem.u8g_font_osb26n"); +extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_SECTION(".progmem.u8g_font_osb29n"); +extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_SECTION(".progmem.u8g_font_osb35n"); + +/* + Old-Standard Regular + r: Reduced char set (codes 32 - 128) + n: Numbers (codes 42 - 57) + no char: Full set (codes 32 - 255) +*/ + +extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_SECTION(".progmem.u8g_font_osr18"); +extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_SECTION(".progmem.u8g_font_osr21"); +extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_SECTION(".progmem.u8g_font_osr26"); +extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_SECTION(".progmem.u8g_font_osr29"); +extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_SECTION(".progmem.u8g_font_osr35"); + +extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_SECTION(".progmem.u8g_font_osr18r"); +extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_SECTION(".progmem.u8g_font_osr21r"); +extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_SECTION(".progmem.u8g_font_osr26r"); +extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_SECTION(".progmem.u8g_font_osr29r"); +extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_SECTION(".progmem.u8g_font_osr35r"); + +extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_SECTION(".progmem.u8g_font_osr18n"); +extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_SECTION(".progmem.u8g_font_osr21n"); +extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_SECTION(".progmem.u8g_font_osr26n"); +extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_SECTION(".progmem.u8g_font_osr29n"); +extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_SECTION(".progmem.u8g_font_osr35n"); + +//extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_SECTION(".progmem.u8g_font_osr41"); + +/* GNU unifont */ + +extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_SECTION(".progmem.u8g_font_unifont_18_19"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_SECTION(".progmem.u8g_font_unifont_72_73"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_SECTION(".progmem.u8g_font_unifont_67_75"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_SECTION(".progmem.u8g_font_unifont_76"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_SECTION(".progmem.u8g_font_unifont_77"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_SECTION(".progmem.u8g_font_unifont_78_79"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_SECTION(".progmem.u8g_font_unifont_86"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_SECTION(".progmem.u8g_font_unifont"); +extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_SECTION(".progmem.u8g_font_unifontr"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_SECTION(".progmem.u8g_font_unifont_0_8"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_SECTION(".progmem.u8g_font_unifont_2_3"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_SECTION(".progmem.u8g_font_unifont_4_5"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_SECTION(".progmem.u8g_font_unifont_8_9"); +extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_SECTION(".progmem.u8g_font_unifont_12_13"); + + +/* 04b fonts */ + +extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_SECTION(".progmem.u8g_font_04b_03b"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_SECTION(".progmem.u8g_font_04b_03bn"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_SECTION(".progmem.u8g_font_04b_03br"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_SECTION(".progmem.u8g_font_04b_03"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_SECTION(".progmem.u8g_font_04b_03n"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_SECTION(".progmem.u8g_font_04b_03r"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_SECTION(".progmem.u8g_font_04b_24"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_SECTION(".progmem.u8g_font_04b_24n"); +extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_SECTION(".progmem.u8g_font_04b_24r"); + +/* orgdot fonts */ + +extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_SECTION(".progmem.u8g_font_orgv01"); +extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_SECTION(".progmem.u8g_font_orgv01r"); +extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_SECTION(".progmem.u8g_font_orgv01n"); + +extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_SECTION(".progmem.u8g_font_fixed_v0"); +extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_SECTION(".progmem.u8g_font_fixed_v0r"); +extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_SECTION(".progmem.u8g_font_fixed_v0n"); + +extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_SECTION(".progmem.u8g_font_tpssb"); +extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_SECTION(".progmem.u8g_font_tpssbr"); +extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_SECTION(".progmem.u8g_font_tpssbn"); + +extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_SECTION(".progmem.u8g_font_tpss"); +extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_SECTION(".progmem.u8g_font_tpssr"); +extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_SECTION(".progmem.u8g_font_tpssn"); + +/* contributed */ + +extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_SECTION(".progmem.u8g_font_freedoomr25n"); +extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_SECTION(".progmem.u8g_font_freedoomr10r"); + +/* adobe X11 */ +extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_SECTION(".progmem.u8g_font_courB08"); +extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_SECTION(".progmem.u8g_font_courB08r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_SECTION(".progmem.u8g_font_courB10"); +extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_SECTION(".progmem.u8g_font_courB10r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_SECTION(".progmem.u8g_font_courB12"); +extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_SECTION(".progmem.u8g_font_courB12r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_SECTION(".progmem.u8g_font_courB14"); +extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_SECTION(".progmem.u8g_font_courB14r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_SECTION(".progmem.u8g_font_courB18"); +extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_SECTION(".progmem.u8g_font_courB18r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_SECTION(".progmem.u8g_font_courB24"); +extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_SECTION(".progmem.u8g_font_courB24r"); +extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_SECTION(".progmem.u8g_font_courB24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_SECTION(".progmem.u8g_font_courR08"); +extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_SECTION(".progmem.u8g_font_courR08r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_SECTION(".progmem.u8g_font_courR10"); +extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_SECTION(".progmem.u8g_font_courR10r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_SECTION(".progmem.u8g_font_courR12"); +extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_SECTION(".progmem.u8g_font_courR12r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_SECTION(".progmem.u8g_font_courR14"); +extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_SECTION(".progmem.u8g_font_courR14r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_SECTION(".progmem.u8g_font_courR18"); +extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_SECTION(".progmem.u8g_font_courR18r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_SECTION(".progmem.u8g_font_courR24"); +extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_SECTION(".progmem.u8g_font_courR24r"); +extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_SECTION(".progmem.u8g_font_courR24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_SECTION(".progmem.u8g_font_helvB08"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_SECTION(".progmem.u8g_font_helvB08r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_SECTION(".progmem.u8g_font_helvB10"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_SECTION(".progmem.u8g_font_helvB10r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_SECTION(".progmem.u8g_font_helvB12"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_SECTION(".progmem.u8g_font_helvB12r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_SECTION(".progmem.u8g_font_helvB14"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_SECTION(".progmem.u8g_font_helvB14r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_SECTION(".progmem.u8g_font_helvB18"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_SECTION(".progmem.u8g_font_helvB18r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_SECTION(".progmem.u8g_font_helvB24"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_SECTION(".progmem.u8g_font_helvB24r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_SECTION(".progmem.u8g_font_helvB24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_SECTION(".progmem.u8g_font_helvR08"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_SECTION(".progmem.u8g_font_helvR08r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_SECTION(".progmem.u8g_font_helvR10"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_SECTION(".progmem.u8g_font_helvR10r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_SECTION(".progmem.u8g_font_helvR12"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_SECTION(".progmem.u8g_font_helvR12r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_SECTION(".progmem.u8g_font_helvR14"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_SECTION(".progmem.u8g_font_helvR14r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_SECTION(".progmem.u8g_font_helvR18"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_SECTION(".progmem.u8g_font_helvR18r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_SECTION(".progmem.u8g_font_helvR24"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_SECTION(".progmem.u8g_font_helvR24r"); +extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_SECTION(".progmem.u8g_font_helvR24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_SECTION(".progmem.u8g_font_ncenB08"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_SECTION(".progmem.u8g_font_ncenB08r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_SECTION(".progmem.u8g_font_ncenB10"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_SECTION(".progmem.u8g_font_ncenB10r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_SECTION(".progmem.u8g_font_ncenB12"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_SECTION(".progmem.u8g_font_ncenB12r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_SECTION(".progmem.u8g_font_ncenB14"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_SECTION(".progmem.u8g_font_ncenB14r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_SECTION(".progmem.u8g_font_ncenB18"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_SECTION(".progmem.u8g_font_ncenB18r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_SECTION(".progmem.u8g_font_ncenB24"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_SECTION(".progmem.u8g_font_ncenB24r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_SECTION(".progmem.u8g_font_ncenB24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_SECTION(".progmem.u8g_font_ncenR08"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_SECTION(".progmem.u8g_font_ncenR08r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_SECTION(".progmem.u8g_font_ncenR10"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_SECTION(".progmem.u8g_font_ncenR10r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_SECTION(".progmem.u8g_font_ncenR12"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_SECTION(".progmem.u8g_font_ncenR12r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_SECTION(".progmem.u8g_font_ncenR14"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_SECTION(".progmem.u8g_font_ncenR14r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_SECTION(".progmem.u8g_font_ncenR18"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_SECTION(".progmem.u8g_font_ncenR18r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_SECTION(".progmem.u8g_font_ncenR24"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_SECTION(".progmem.u8g_font_ncenR24r"); +extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_SECTION(".progmem.u8g_font_ncenR24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_SECTION(".progmem.u8g_font_symb08"); +extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_SECTION(".progmem.u8g_font_symb08r"); +extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_SECTION(".progmem.u8g_font_symb10"); +extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_SECTION(".progmem.u8g_font_symb10r"); +extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_SECTION(".progmem.u8g_font_symb12"); +extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_SECTION(".progmem.u8g_font_symb12r"); +extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_SECTION(".progmem.u8g_font_symb14"); +extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_SECTION(".progmem.u8g_font_symb14r"); +extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_SECTION(".progmem.u8g_font_symb18"); +extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_SECTION(".progmem.u8g_font_symb18r"); +extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_SECTION(".progmem.u8g_font_symb24"); +extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_SECTION(".progmem.u8g_font_symb24r"); + +extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_SECTION(".progmem.u8g_font_timB08"); +extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_SECTION(".progmem.u8g_font_timB08r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_SECTION(".progmem.u8g_font_timB10"); +extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_SECTION(".progmem.u8g_font_timB10r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_SECTION(".progmem.u8g_font_timB12"); +extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_SECTION(".progmem.u8g_font_timB12r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_SECTION(".progmem.u8g_font_timB14"); +extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_SECTION(".progmem.u8g_font_timB14r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_SECTION(".progmem.u8g_font_timB18"); +extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_SECTION(".progmem.u8g_font_timB18r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_SECTION(".progmem.u8g_font_timB24"); +extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_SECTION(".progmem.u8g_font_timB24r"); +extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_SECTION(".progmem.u8g_font_timB24n"); + +extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_SECTION(".progmem.u8g_font_timR08"); +extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_SECTION(".progmem.u8g_font_timR08r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_SECTION(".progmem.u8g_font_timR10"); +extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_SECTION(".progmem.u8g_font_timR10r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_SECTION(".progmem.u8g_font_timR12"); +extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_SECTION(".progmem.u8g_font_timR12r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_SECTION(".progmem.u8g_font_timR14"); +extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_SECTION(".progmem.u8g_font_timR14r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_SECTION(".progmem.u8g_font_timR18"); +extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_SECTION(".progmem.u8g_font_timR18r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_SECTION(".progmem.u8g_font_timR24"); +extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_SECTION(".progmem.u8g_font_timR24r"); +extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_SECTION(".progmem.u8g_font_timR24n"); + +/* fontstruct */ + +extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_SECTION(".progmem.u8g_font_p01type"); +extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_SECTION(".progmem.u8g_font_p01typer"); +extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_SECTION(".progmem.u8g_font_p01typen"); + +extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternate"); +extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternater"); +extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternaten"); + +//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfont[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfont"); +//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfontr[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfontr"); +//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfontn[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfontn"); + +extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_SECTION(".progmem.u8g_font_chikita"); +extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_SECTION(".progmem.u8g_font_chikitar"); +extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_SECTION(".progmem.u8g_font_chikitan"); + +extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_SECTION(".progmem.u8g_font_pixelle_micro"); +extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_SECTION(".progmem.u8g_font_pixelle_micror"); +extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_SECTION(".progmem.u8g_font_pixelle_micron"); + +extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_SECTION(".progmem.u8g_font_trixel_square"); +extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_SECTION(".progmem.u8g_font_trixel_squarer"); +extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_SECTION(".progmem.u8g_font_trixel_squaren"); + +extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_SECTION(".progmem.u8g_font_robot_de_niro"); +extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_SECTION(".progmem.u8g_font_robot_de_niror"); +extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_SECTION(".progmem.u8g_font_robot_de_niron"); + +extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_SECTION(".progmem.u8g_font_baby"); +extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_SECTION(".progmem.u8g_font_babyr"); +extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_SECTION(".progmem.u8g_font_babyn"); + +extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_SECTION(".progmem.u8g_font_blipfest_07"); +extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_SECTION(".progmem.u8g_font_blipfest_07r"); +extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_SECTION(".progmem.u8g_font_blipfest_07n"); + +extern const u8g_fntpgm_uint8_t u8g_font_6x10_marlin[] U8G_SECTION(".progmem.u8g_font_6x10_marlin"); +extern const u8g_fntpgm_uint8_t u8g_font_6x9[] U8G_SECTION(".progmem.u8g_font_6x9"); + +#ifdef __cplusplus +} +#endif + +#endif /* _U8G_H */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c new file mode 100644 index 000000000..dc742d1d7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c @@ -0,0 +1,177 @@ +/* + + u8g_bitmap.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap) +{ + while( cnt > 0 ) + { + u8g_Draw8Pixel(u8g, x, y, 0, *bitmap); + bitmap++; + cnt--; + x+=8; + } +} + +void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) +{ + if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) + return; + while( h > 0 ) + { + u8g_DrawHBitmap(u8g, x, y, cnt, bitmap); + bitmap += cnt; + y++; + h--; + } +} + + +void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap) +{ + while( cnt > 0 ) + { + u8g_Draw8Pixel(u8g, x, y, 0, u8g_pgm_read(bitmap)); + bitmap++; + cnt--; + x+=8; + } +} + +void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) +{ + if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) + return; + while( h > 0 ) + { + u8g_DrawHBitmapP(u8g, x, y, cnt, bitmap); + bitmap += cnt; + y++; + h--; + } +} + +/*=========================================================================*/ + +static void u8g_DrawHXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const uint8_t *bitmap) +{ + uint8_t d; + x+=7; + while( w >= 8 ) + { + u8g_Draw8Pixel(u8g, x, y, 2, *bitmap); + bitmap++; + w-= 8; + x+=8; + } + if ( w > 0 ) + { + d = *bitmap; + x -= 7; + do + { + if ( d & 1 ) + u8g_DrawPixel(u8g, x, y); + x++; + w--; + d >>= 1; + } while ( w > 0 ); + } +} + +void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) +{ + u8g_uint_t b; + b = w; + b += 7; + b >>= 3; + + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + + while( h > 0 ) + { + u8g_DrawHXBM(u8g, x, y, w, bitmap); + bitmap += b; + y++; + h--; + } +} + +static void u8g_DrawHXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const u8g_pgm_uint8_t *bitmap) +{ + uint8_t d; + x+=7; + while( w >= 8 ) + { + u8g_Draw8Pixel(u8g, x, y, 2, u8g_pgm_read(bitmap)); + bitmap++; + w-= 8; + x+=8; + } + if ( w > 0 ) + { + d = u8g_pgm_read(bitmap); + x -= 7; + do + { + if ( d & 1 ) + u8g_DrawPixel(u8g, x, y); + x++; + w--; + d >>= 1; + } while ( w > 0 ); + } +} + +void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) +{ + u8g_uint_t b; + b = w; + b += 7; + b >>= 3; + + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + while( h > 0 ) + { + u8g_DrawHXBMP(u8g, x, y, w, bitmap); + bitmap += b; + y++; + h--; + } +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c new file mode 100644 index 000000000..8f4a0525d --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c @@ -0,0 +1,382 @@ +/* + + u8g_circle.c + + Utility to draw empty and filled circles. + + Universal 8bit Graphics Library + + Copyright (c) 2011, bjthom@gmail.com + u8g_DrawCircle & u8g_DrawDisc by olikraus@gmail.com + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Addition to the U8G Library 02/25/12 + + +*/ + +#include "u8g.h" + +#ifdef OLD_CODE + +void circ_upperRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { + u8g_DrawPixel(u8g, x0 + x, y0 - y); + u8g_DrawPixel(u8g, x0 + y, y0 - x); +} + +void circ_upperLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { + u8g_DrawPixel(u8g, x0 - x, y0 - y); + u8g_DrawPixel(u8g, x0 - y, y0 - x); +} + +void circ_lowerRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { + u8g_DrawPixel(u8g, x0 + x, y0 + y); + u8g_DrawPixel(u8g, x0 + y, y0 + x); +} + +void circ_lowerLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { + u8g_DrawPixel(u8g, x0 - x, y0 + y); + u8g_DrawPixel(u8g, x0 - y, y0 + x); +} + +void circ_all(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { + circ_upperRight(u8g, x, y, x0, y0); + circ_upperLeft(u8g, x, y, x0, y0); + circ_lowerRight(u8g, x, y, x0, y0); + circ_lowerLeft(u8g, x, y, x0, y0); +} + +void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) + return; + + int f = 1 - rad; + int ddF_x = 1; + int ddF_y = -2*rad; + uint8_t x = 0; + uint8_t y = rad; + + void ( *circ_util )(u8g_t *, u8g_uint_t, u8g_uint_t, u8g_uint_t, u8g_uint_t); + + switch (option) + { + case U8G_CIRC_UPPER_RIGHT: + u8g_DrawPixel(u8g, x0, y0 - rad); + u8g_DrawPixel(u8g, x0 + rad, y0); + circ_util = circ_upperRight; + break; + case U8G_CIRC_UPPER_LEFT: + u8g_DrawPixel(u8g, x0, y0 - rad); + u8g_DrawPixel(u8g, x0 - rad, y0); + circ_util = circ_upperLeft; + break; + case U8G_CIRC_LOWER_RIGHT: + u8g_DrawPixel(u8g, x0, y0 + rad); + u8g_DrawPixel(u8g, x0 + rad, y0); + circ_util = circ_lowerRight; + break; + case U8G_CIRC_LOWER_LEFT: + u8g_DrawPixel(u8g, x0, y0 + rad); + u8g_DrawPixel(u8g, x0 - rad, y0); + circ_util = circ_lowerLeft; + break; + default: + case U8G_CIRC_ALL: + u8g_DrawPixel(u8g, x0, y0 + rad); + u8g_DrawPixel(u8g, x0, y0 - rad); + u8g_DrawPixel(u8g, x0 + rad, y0); + u8g_DrawPixel(u8g, x0 - rad, y0); + circ_util = circ_all; + break; + } + + while( x < y ) + { + if(f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + circ_util(u8g, x, y, x0, y0); + } +} + + +void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) + return; + + int f = 1 - rad; + int ddF_x = 1; + int ddF_y = -2*rad; + uint8_t x = 0; + uint8_t y = rad; + + // Draw vertical diameter at the horiz. center + // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); + + if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { + u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); + } + else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { + u8g_DrawVLine(u8g, x0, y0, rad+1); + } + else { + u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); + } + + while( x < y ) + { + if(f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + //Draw vertical lines from one point to another + + switch (option) + { + case U8G_CIRC_UPPER_RIGHT: + u8g_DrawVLine(u8g, x0+x, y0-y, y+1); + u8g_DrawVLine(u8g, x0+y, y0-x, x+1); + break; + case U8G_CIRC_UPPER_LEFT: + u8g_DrawVLine(u8g, x0-x, y0-y, y+1); + u8g_DrawVLine(u8g, x0-y, y0-x, x+1); + break; + case U8G_CIRC_LOWER_RIGHT: + u8g_DrawVLine(u8g, x0+x, y0, y+1); + u8g_DrawVLine(u8g, x0+y, y0, x+1); + break; + case U8G_CIRC_LOWER_LEFT: + u8g_DrawVLine(u8g, x0-x, y0, y+1); + u8g_DrawVLine(u8g, x0-y, y0, x+1); + break; + case U8G_CIRC_ALL: + u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); + u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); + u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); + u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); + break; + } + } +} + +#endif + +/*=========================================================================*/ + +static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; + +static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) +{ + /* upper right */ + if ( option & U8G_DRAW_UPPER_RIGHT ) + { + u8g_DrawPixel(u8g, x0 + x, y0 - y); + u8g_DrawPixel(u8g, x0 + y, y0 - x); + } + + /* upper left */ + if ( option & U8G_DRAW_UPPER_LEFT ) + { + u8g_DrawPixel(u8g, x0 - x, y0 - y); + u8g_DrawPixel(u8g, x0 - y, y0 - x); + } + + /* lower right */ + if ( option & U8G_DRAW_LOWER_RIGHT ) + { + u8g_DrawPixel(u8g, x0 + x, y0 + y); + u8g_DrawPixel(u8g, x0 + y, y0 + x); + } + + /* lower left */ + if ( option & U8G_DRAW_LOWER_LEFT ) + { + u8g_DrawPixel(u8g, x0 - x, y0 + y); + u8g_DrawPixel(u8g, x0 - y, y0 + x); + } +} + +void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + u8g_int_t f; + u8g_int_t ddF_x; + u8g_int_t ddF_y; + u8g_uint_t x; + u8g_uint_t y; + + f = 1; + f -= rad; + ddF_x = 1; + ddF_y = 0; + ddF_y -= rad; + ddF_y *= 2; + x = 0; + y = rad; + + u8g_draw_circle_section(u8g, x, y, x0, y0, option); + + while ( x < y ) + { + if (f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + u8g_draw_circle_section(u8g, x, y, x0, y0, option); + } +} + +void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + /* check for bounding box */ + { + u8g_uint_t radp, radp2; + + radp = rad; + radp++; + radp2 = radp; + radp2 *= 2; + + if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) + return; + } + + /* draw circle */ + u8g_draw_circle(u8g, x0, y0, rad, option); +} + +static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; + +static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) +{ + /* upper right */ + if ( option & U8G_DRAW_UPPER_RIGHT ) + { + u8g_DrawVLine(u8g, x0+x, y0-y, y+1); + u8g_DrawVLine(u8g, x0+y, y0-x, x+1); + } + + /* upper left */ + if ( option & U8G_DRAW_UPPER_LEFT ) + { + u8g_DrawVLine(u8g, x0-x, y0-y, y+1); + u8g_DrawVLine(u8g, x0-y, y0-x, x+1); + } + + /* lower right */ + if ( option & U8G_DRAW_LOWER_RIGHT ) + { + u8g_DrawVLine(u8g, x0+x, y0, y+1); + u8g_DrawVLine(u8g, x0+y, y0, x+1); + } + + /* lower left */ + if ( option & U8G_DRAW_LOWER_LEFT ) + { + u8g_DrawVLine(u8g, x0-x, y0, y+1); + u8g_DrawVLine(u8g, x0-y, y0, x+1); + } +} + +void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + u8g_int_t f; + u8g_int_t ddF_x; + u8g_int_t ddF_y; + u8g_uint_t x; + u8g_uint_t y; + + f = 1; + f -= rad; + ddF_x = 1; + ddF_y = 0; + ddF_y -= rad; + ddF_y *= 2; + x = 0; + y = rad; + + u8g_draw_disc_section(u8g, x, y, x0, y0, option); + + while ( x < y ) + { + if (f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + u8g_draw_disc_section(u8g, x, y, x0, y0, option); + } +} + +void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) +{ + /* check for bounding box */ + { + u8g_uint_t radp, radp2; + + radp = rad; + radp++; + radp2 = radp; + radp2 *= 2; + + if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) + return; + } + + /* draw disc */ + u8g_draw_disc(u8g, x0, y0, rad, option); +} + + + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c new file mode 100644 index 000000000..71abef2e7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c @@ -0,0 +1,156 @@ +/* + + u8g_clip.c + + procedures for clipping + taken over from procs in u8g_pb.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Notes + + This is one of the most critical parts of u8glib. It must be fast, but still reliable. + Based on the intersection program (see tools folder), there is minimized version of + the condition for the intersaction test: + minimized version + ---1----0 1 b1 <= a2 && b1 > b2 + -----1--0 1 b2 >= a1 && b1 > b2 + ---1-1--- 1 b1 <= a2 && b2 >= a1 + It includes the assumption, that a1 <= a2 is always true (correct, because + a1, a2 are the page dimensions. + + The direct implementation of the above result is done in: + uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) + However, this is slower than a decision tree version: + static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) + Also suprising is, that he the macro implementation is slower than the inlined version. + + The decision tree is based on the expansion of the truth table. + +*/ + +#include "u8g.h" + +#ifdef __GNUC__ +#define U8G_ALWAYS_INLINE __attribute__((always_inline)) +#else +#define U8G_ALWAYS_INLINE + #endif + +/* + intersection assumptions: + a1 <= a2 is always true + + minimized version + ---1----0 1 b1 <= a2 && b1 > b2 + -----1--0 1 b2 >= a1 && b1 > b2 + ---1-1--- 1 b1 <= a2 && b2 >= a1 + */ + +#ifdef OLD_CODE_WHICH_IS_TOO_SLOW +static uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) +{ + uint8_t c1, c2, c3, tmp; + c1 = v0 <= a1; + c2 = v1 >= a0; + c3 = v0 > v1; + + tmp = c1; + c1 &= c2; + c2 &= c3; + c3 &= tmp; + c1 |= c2; + c1 |= c3; + return c1 & 1; +} +#endif + +#define U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1) ((uint8_t)( (v0) <= (a1) ) ? ( ( (v1) >= (a0) ) ? ( 1 ) : ( (v0) > (v1) ) ) : ( ( (v1) >= (a0) ) ? ( (v0) > (v1) ) : ( 0 ) )) + +static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) U8G_ALWAYS_INLINE; +static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) +{ + /* surprisingly the macro leads to larger code */ + /* return U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1); */ + if ( v0 <= a1 ) + { + if ( v1 >= a0 ) + { + return 1; + } + else + { + if ( v0 > v1 ) + { + return 1; + } + else + { + return 0; + } + } + } + else + { + if ( v1 >= a0 ) + { + if ( v0 > v1 ) + { + return 1; + } + else + { + return 0; + } + } + else + { + return 0; + } + } +} + + +uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + register u8g_uint_t tmp; + tmp = y; + tmp += h; + tmp--; + if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) + return 0; + + tmp = x; + tmp += w; + tmp--; + return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c new file mode 100644 index 000000000..2dd49b126 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c @@ -0,0 +1,173 @@ +/* + + u8g_com_api.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev) +{ + return dev->com_fn(u8g, U8G_COM_MSG_INIT, 0, NULL); +} + +void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev) +{ + dev->com_fn(u8g, U8G_COM_MSG_STOP, 0, NULL); +} + +/* cs contains the chip number, which should be enabled */ +void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs) +{ + dev->com_fn(u8g, U8G_COM_MSG_CHIP_SELECT, cs, NULL); +} + +void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev) +{ + dev->com_fn(u8g, U8G_COM_MSG_RESET, 0, NULL); +} + +void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev) +{ + dev->com_fn(u8g, U8G_COM_MSG_RESET, 1, NULL); +} + + +void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address) +{ + dev->com_fn(u8g, U8G_COM_MSG_ADDRESS, address, NULL); +} + +uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val) +{ + return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, val, NULL); +} + +uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq) +{ + return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, cnt, seq); +} + +uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq) +{ + return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ_P, cnt, (void *)seq); +} + +/* + sequence := { direct_value | escape_sequence } + direct_value := 0..254 + escape_sequence := value_255 | sequence_end | delay | adr | cs | not_used + value_255 := 255 255 + sequence_end = 255 254 + delay := 255 0..127 + adr := 255 0x0e0 .. 0x0ef + cs := 255 0x0d0 .. 0x0df + not_used := 255 101..254 + +#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) +#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) +#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) +#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) +#define U8G_ESC_END 255, 254 +#define U8G_ESC_255 255, 255 +#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) + +*/ +uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) +{ + uint8_t is_escape = 0; + uint8_t value; + for(;;) + { + value = u8g_pgm_read(esc_seq); + if ( is_escape == 0 ) + { + if ( value != 255 ) + { + if ( u8g_WriteByte(u8g, dev, value) == 0 ) + return 0; + } + else + { + is_escape = 1; + } + } + else + { + if ( value == 255 ) + { + if ( u8g_WriteByte(u8g, dev, value) == 0 ) + return 0; + } + else if ( value == 254 ) + { + break; + } + else if ( value >= 0x0f0 ) + { + /* not yet used, do nothing */ + } + else if ( value >= 0xe0 ) + { + u8g_SetAddress(u8g, dev, value & 0x0f); + } + else if ( value >= 0xd0 ) + { + u8g_SetChipSelect(u8g, dev, value & 0x0f); + } + else if ( value >= 0xc0 ) + { + u8g_SetResetLow(u8g, dev); + value &= 0x0f; + value <<= 4; + value+=2; + u8g_Delay(value); + u8g_SetResetHigh(u8g, dev); + u8g_Delay(value); + } + else if ( value >= 0xbe ) + { + /* not yet implemented */ + /* u8g_SetVCC(u8g, dev, value & 0x01); */ + } + else if ( value <= 127 ) + { + u8g_Delay(value); + } + is_escape = 0; + } + esc_seq++; + } + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c new file mode 100644 index 000000000..7ff03d865 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c @@ -0,0 +1,94 @@ +/* + + u8g_com_api_16gr.c + + Extension of the com api for devices with 16 graylevels (4 bit per pixel). + This should fit to the 8h and 16h architectures (pb8v1, pb8v2, pb16v1, pb16v2), + mainly intended for SSD OLEDs + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +/* interpret b as a monochrome bit pattern, write value 15 for high bit and value 0 for a low bit */ +/* topbit (msb) is sent last */ +/* example: b = 0x083 will send 0xff, 0x00, 0x00, 0xf0 */ +uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) +{ + static uint8_t buf[4]; + static uint8_t map[4] = { 0, 0x00f, 0x0f0, 0x0ff }; + buf [3] = map[b & 3]; + b>>=2; + buf [2] = map[b & 3]; + b>>=2; + buf [1] = map[b & 3]; + b>>=2; + buf [0] = map[b & 3]; + return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, 4, buf); +} + +uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) +{ + do + { + if ( u8g_WriteByteBWTo16GrDevice(u8g, dev, *ptr++) == 0 ) + return 0; + cnt--; + } while( cnt != 0 ); + return 1; +} + +/* interpret b as a 4L bit pattern, write values 0x000, 0x004, 0x008, 0x00c */ +uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) +{ + //static uint8_t map[16] = { 0x000, 0x004, 0x008, 0x00c, 0x040, 0x044, 0x048, 0x04c, 0x080, 0x084, 0x088, 0x08c, 0x0c0, 0x0c4, 0x0c8, 0x0cc}; + //static uint8_t map[16] = { 0x000, 0x004, 0x00a, 0x00f, 0x040, 0x044, 0x04a, 0x04f, 0x0a0, 0x0a4, 0x0aa, 0x0af, 0x0f0, 0x0f4, 0x0fa, 0x0ff}; + static uint8_t map[16] = { 0x000, 0x040, 0x0a0, 0x0f0, 0x004, 0x044, 0x0a4, 0x0f4, 0x00a, 0x04a, 0x0aa, 0x0fa, 0x00f, 0x04f, 0x0af, 0x0ff}; + uint8_t bb; + bb = b; + bb &= 15; + b>>=4; + dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[bb], NULL); + return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[b], NULL); +} + +uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) +{ + do + { + if ( u8g_WriteByte4LTo16GrDevice(u8g, dev, *ptr++) == 0 ) + return 0; + cnt--; + } while( cnt != 0 ); + return 1; +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c new file mode 100644 index 000000000..ef0b2366e --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c @@ -0,0 +1,75 @@ +/* + + u8g_com_arduino_common.c + + shared procedures for the arduino communication procedures + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#else +#include +#endif + +void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value) +{ + uint8_t pin; + pin = u8g->pin_list[pin_index]; + if ( pin != U8G_PIN_NONE ) + digitalWrite(pin, value); +} + +/* this procedure does not set the RW pin */ +void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g) +{ + uint8_t i; + /* skip the RW pin, which is the last pin in the list */ + for( i = 0; i < U8G_PIN_LIST_LEN-1; i++ ) + { + if ( u8g->pin_list[i] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[i], OUTPUT); + digitalWrite(u8g->pin_list[i], HIGH); + } + } +} + + +#endif + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c new file mode 100644 index 000000000..91a32e6f0 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c @@ -0,0 +1,245 @@ +/* + + u8g_arduino_fast_parallel.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS1 14 + PIN_CS2 15 + PIN_RW 16 + PIN_DI 17 + PIN_EN 18 + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +//#include +#include +#include +#else +#include +#endif + + +#define PIN_D0 8 +#define PIN_D1 9 +#define PIN_D2 10 +#define PIN_D3 11 +#define PIN_D4 4 +#define PIN_D5 5 +#define PIN_D6 6 +#define PIN_D7 7 + +#define PIN_CS1 14 +#define PIN_CS2 15 +#define PIN_RW 16 +#define PIN_DI 17 +#define PIN_EN 18 + +//#define PIN_RESET + + +#if defined(__PIC32MX) +/* CHIPKIT PIC32 */ +static volatile uint32_t *u8g_data_port[8]; +static uint32_t u8g_data_mask[8]; +#else +static volatile uint8_t *u8g_data_port[8]; +static uint8_t u8g_data_mask[8]; +#endif + + + +static void u8g_com_arduino_fast_parallel_init(u8g_t *u8g) +{ + u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); + u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); + u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); + u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); + u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); + u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); + u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); + u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); + + u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); + u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); + u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); + u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); + u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); + u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); + u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); + u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); +} + +void u8g_com_arduino_fast_write_data_pin(uint8_t pin, uint8_t val) +{ + if ( val != 0 ) + *u8g_data_port[pin] |= u8g_data_mask[pin]; + else + *u8g_data_port[pin] &= ~u8g_data_mask[pin]; +} + + +void u8g_com_arduino_fast_parallel_write(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_fast_write_data_pin( 0, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 1, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 2, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 3, val&1 ); + val >>= 1; + + u8g_com_arduino_fast_write_data_pin( 4, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 5, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 6, val&1 ); + val >>= 1; + u8g_com_arduino_fast_write_data_pin( 7, val&1 ); + val >>= 1; + + /* EN cycle time must be 1 micro second */ + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); + u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); + u8g_10MicroDelay(); /* ST7920 commands: 72us */ + u8g_10MicroDelay(); /* ST7920 commands: 72us */ +} + + +uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_com_arduino_fast_parallel_init(u8g); + /* setup the RW pin as output and force it to low */ + if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); + u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); + } + /* set all pins (except RW pin) */ + u8g_com_arduino_assign_pin_output_high(u8g); + break; + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 1 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 2 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + break; + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_fast_parallel_write(u8g, arg_val); + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_fast_parallel_write(u8g, *ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_fast_parallel_write(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + } + return 1; +} + +#else + + +uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c new file mode 100644 index 000000000..7d7f91000 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c @@ -0,0 +1,191 @@ +/* + + u8g_com_arduino_hw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if defined(__AVR__) + +#include +#include + +#if ARDUINO < 100 +#include + +/* fixed pins */ +#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board +#define PIN_SCK 7 +#define PIN_MISO 6 +#define PIN_MOSI 5 +#define PIN_CS 4 +#else // Arduino Board +#define PIN_SCK 13 +#define PIN_MISO 12 +#define PIN_MOSI 11 +#define PIN_CS 10 +#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) + +#else + +#include + +/* use Arduino pin definitions */ +#define PIN_SCK SCK +#define PIN_MISO MISO +#define PIN_MOSI MOSI +#define PIN_CS SS + +#endif + + + +//static uint8_t u8g_spi_out(uint8_t data) U8G_NOINLINE; +static uint8_t u8g_spi_out(uint8_t data) +{ + /* unsigned char x = 100; */ + /* send data */ + SPDR = data; + /* wait for transmission */ + while (!(SPSR & (1<pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_WRITE_BYTE: + u8g_spi_out(arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_spi_out(*ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_spi_out(u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + } + return 1; +} + +/* #elif defined(__18CXX) || defined(__PIC32MX) */ + +#else /* __AVR__ */ + +#endif /* __AVR__ */ + +#else /* ARDUINO */ + +uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c new file mode 100644 index 000000000..49038c36c --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c @@ -0,0 +1,221 @@ +/* + + u8g_arduino_no_en_parallel.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS1 14 + PIN_CS2 15 + PIN_RW 16 + PIN_DI 17 + PIN_EN 18 + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +//#include +#include +#include +#else +#include +#endif + +//#define PIN_RESET + +#if defined(__PIC32MX) +/* CHIPKIT PIC32 */ +static volatile uint32_t *u8g_data_port[8]; +static uint32_t u8g_data_mask[8]; +#else +static volatile uint8_t *u8g_data_port[8]; +static uint8_t u8g_data_mask[8]; +#endif + + + +static void u8g_com_arduino_no_en_parallel_init(u8g_t *u8g) +{ + u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); + u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); + u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); + u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); + u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); + u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); + u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); + u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); + + u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); + u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); + u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); + u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); + u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); + u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); + u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); + u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); +} + +void u8g_com_arduino_no_en_write_data_pin(uint8_t pin, uint8_t val) +{ + if ( val != 0 ) + *u8g_data_port[pin] |= u8g_data_mask[pin]; + else + *u8g_data_port[pin] &= ~u8g_data_mask[pin]; +} + + +void u8g_com_arduino_no_en_parallel_write(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_no_en_write_data_pin( 0, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 1, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 2, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 3, val&1 ); + val >>= 1; + + u8g_com_arduino_no_en_write_data_pin( 4, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 5, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 6, val&1 ); + val >>= 1; + u8g_com_arduino_no_en_write_data_pin( 7, val&1 ); + val >>= 1; + + /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ + if ( u8g->pin_list[U8G_PI_CS_STATE] == 1 ) + { + u8g_MicroDelay(); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_MicroDelay(); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_MicroDelay(); + } + else if ( u8g->pin_list[U8G_PI_CS_STATE] == 2 ) + { + u8g_MicroDelay(); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + u8g_MicroDelay(); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + u8g_MicroDelay(); + } +} + + +uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_com_arduino_no_en_parallel_init(u8g); + /* setup the RW pin as output and force it to low */ + if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); + u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); + } + /* set all pins (except RW pin) */ + u8g_com_arduino_assign_pin_output_high(u8g); + break; + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_CHIP_SELECT: + /* + 0: nothing selected + 1: CS1 will be used as enable line + 2: CS2 will be used as enable line + this will be used in the u8g_com_arduino_no_en_parallel_write() procedure + */ + u8g->pin_list[U8G_PI_CS_STATE] = arg_val; + break; + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_no_en_parallel_write(u8g, arg_val); + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_no_en_parallel_write(u8g, *ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_no_en_parallel_write(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + } + return 1; +} + +#else + + +uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c new file mode 100644 index 000000000..a73bc0dbe --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c @@ -0,0 +1,187 @@ +/* + + u8g_arduino_parallel.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS1 14 + PIN_CS2 15 + PIN_RW 16 + PIN_DI 17 + PIN_EN 18 + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#else +#include +#endif + + + + + + +void u8g_com_arduino_parallel_write(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_digital_write(u8g, U8G_PI_D0, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D1, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D2, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D3, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D4, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D5, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D6, val&1); + val >>= 1; + u8g_com_arduino_digital_write(u8g, U8G_PI_D7, val&1); + + /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ + //u8g_Delay(1); + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); + //u8g_Delay(1); + u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); + u8g_10MicroDelay(); /* ST7920 commands: 72us */ + //u8g_Delay(2); +} + + +uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + /* setup the RW pin as output and force it to low */ + if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); + u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); + } + /* set all pins (except RW pin) */ + u8g_com_arduino_assign_pin_output_high(u8g); + break; + case U8G_COM_MSG_STOP: + break; + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 1 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 2 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + break; + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_parallel_write(u8g, arg_val); + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_parallel_write(u8g, *ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_parallel_write(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + } + return 1; +} + +#else + + +uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c new file mode 100644 index 000000000..cfaf71f9f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c @@ -0,0 +1,168 @@ +/* + + u8g_arduino_port_d_wr.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Assumes PORTD for 8 bit data transfer. + EN is assumed to be a low active write signal (WR) + + ILI9325D_320x240 from iteadstudio.com + RS=19, WR=18, CS=17, RST=16 + + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + + +#if defined(ARDUINO) && defined(PORTD) + +#if ARDUINO < 100 +#include +#else +#include +#endif + + + + + + +static void u8g_com_arduino_port_d_8bit_wr(u8g_t *u8g, uint8_t val) +{ + PORTD = val; + + /* WR cycle time must be 1 micro second, digitalWrite is slow enough to do this */ + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); +} + + +uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + + switch(msg) + { + case U8G_COM_MSG_INIT: + +#ifdef UCSR0B + UCSR0B = 0; // disable USART 0 +#endif + DDRD = 0x0ff; + PORTD = 0x0ff; + + /* setup the RW pin as output and force it to low */ + if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); + u8g_com_arduino_digital_write(u8g, U8G_PI_RW, HIGH); + } + /* set all pins (except RW pin) */ + u8g_com_arduino_assign_pin_output_high(u8g); + u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); + break; + case U8G_COM_MSG_STOP: + break; + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 1 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); + } + else if ( arg_val == 2 ) + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); + } + break; + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_port_d_8bit_wr(u8g, arg_val); + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_port_d_8bit_wr(u8g, *ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_port_d_8bit_wr(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + } + return 1; +} + +#else + + +uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO && PORTD */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c new file mode 100644 index 000000000..afcb4088a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c @@ -0,0 +1,201 @@ +/* + + u8g_com_arduino_ssd_i2c.c + + com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant + I2C protocol + + ToDo: Rename this to u8g_com_avr_ssd_i2c.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Special pin usage: + U8G_PI_I2C_OPTION additional options + U8G_PI_A0_STATE used to store the last value of the command/data register selection + U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device + U8G_PI_SCL clock line (NOT USED) + U8G_PI_SDA data line (NOT USED) + + U8G_PI_RESET reset line (currently disabled, see below) + + Protocol: + SLA, Cmd/Data Selection, Arguments + The command/data register is selected by a special instruction byte, which is sent after SLA + + The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode +*/ + +#include "u8g.h" + +#define I2C_SLA (0x3c*2) +//#define I2C_CMD_MODE 0x080 +#define I2C_CMD_MODE 0x000 +#define I2C_DATA_MODE 0x040 + + +uint8_t u8g_com_arduino_ssd_start_sequence(u8g_t *u8g) +{ + /* are we requested to set the a0 state? */ + if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) + return 1; + + /* setup bus, might be a repeated start */ + if ( u8g_i2c_start(I2C_SLA) == 0 ) + return 0; + if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) + { + if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) + return 0; + } + else + { + if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) + return 0; + } + + + u8g->pin_list[U8G_PI_SET_A0] = 0; + return 1; +} + +uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); + //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); + //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ + + u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); + + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + /* Currently disabled, but it could be enable. Previous restrictions have been removed */ + /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ + break; + + case U8G_COM_MSG_CHIP_SELECT: + u8g->pin_list[U8G_PI_A0_STATE] = 0; + u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ + if ( arg_val == 0 ) + { + /* disable chip, send stop condition */ + u8g_i2c_stop(); + } + else + { + /* enable, do nothing: any byte writing will trigger the i2c start */ + } + break; + + case U8G_COM_MSG_WRITE_BYTE: + //u8g->pin_list[U8G_PI_SET_A0] = 1; + if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) + return u8g_i2c_stop(), 0; + if ( u8g_i2c_send_byte(arg_val) == 0 ) + return u8g_i2c_stop(), 0; + // u8g_i2c_stop(); + break; + + case U8G_COM_MSG_WRITE_SEQ: + //u8g->pin_list[U8G_PI_SET_A0] = 1; + if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) + return u8g_i2c_stop(), 0; + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + if ( u8g_i2c_send_byte(*ptr++) == 0 ) + return u8g_i2c_stop(), 0; + arg_val--; + } + } + // u8g_i2c_stop(); + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + //u8g->pin_list[U8G_PI_SET_A0] = 1; + if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) + return u8g_i2c_stop(), 0; + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) + return 0; + ptr++; + arg_val--; + } + } + // u8g_i2c_stop(); + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ + +#ifdef OLD_CODE + if ( i2c_state != 0 ) + { + u8g_i2c_stop(); + i2c_state = 0; + } + + if ( u8g_com_arduino_ssd_start_sequence(arg_val) == 0 ) + return 0; + + /* setup bus, might be a repeated start */ + /* + if ( u8g_i2c_start(I2C_SLA) == 0 ) + return 0; + if ( arg_val == 0 ) + { + i2c_state = 1; + + if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) + return 0; + } + else + { + i2c_state = 2; + if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) + return 0; + } + */ +#endif + break; + } + return 1; +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c new file mode 100644 index 000000000..d5a041386 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c @@ -0,0 +1,220 @@ +/* + + u8g_com_arduino_st7920_hw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + A special HW SPI interface for ST7920 controller + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#include "wiring_private.h" +#include "pins_arduino.h" + +#else +#include +#include "wiring_private.h" +#endif + +#if defined(__AVR__) +#define U8G_ARDUINO_ATMEGA_HW_SPI + +/* remove the definition for attiny */ +#if __AVR_ARCH__ == 2 +#undef U8G_ATMEGA_HW_SPI +#endif +#if __AVR_ARCH__ == 25 +#undef U8G_ATMEGA_HW_SPI +#endif + +#endif + + +#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) + +#include +#include + +static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; +static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) +{ + /* send data */ + SPDR = val; + /* wait for transmission */ + while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable, note: the st7920 has an active high chip select */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + } + else + { + /* enable */ + //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); + } + break; + + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); + // u8g->pin_list[U8G_PI_A0_STATE] = 2; + //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); + // u8g->pin_list[U8G_PI_A0_STATE] = 2; + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); + // u8g->pin_list[U8G_PI_A0_STATE] = 2; + ptr++; + arg_val--; + } + } + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + break; + } + return 1; +} + +#else + +uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} +#endif + +#else /* ARDUINO */ + +uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c new file mode 100644 index 000000000..a73398868 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c @@ -0,0 +1,295 @@ +/* + + u8g_com_arduino_st7920_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + A special SPI interface for ST7920 controller + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#include "wiring_private.h" +#include "pins_arduino.h" + +#else +#include +#include "wiring_private.h" +#endif + +#if defined(__AVR__) + +uint8_t u8g_bitData, u8g_bitNotData; +uint8_t u8g_bitClock, u8g_bitNotClock; +volatile uint8_t *u8g_outData; +volatile uint8_t *u8g_outClock; + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ + u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); + u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); + u8g_bitData = digitalPinToBitMask(dataPin); + u8g_bitClock = digitalPinToBitMask(clockPin); + + u8g_bitNotClock = u8g_bitClock; + u8g_bitNotClock ^= 0x0ff; + + u8g_bitNotData = u8g_bitData; + u8g_bitNotData ^= 0x0ff; +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ + uint8_t cnt = 8; + uint8_t bitData = u8g_bitData; + uint8_t bitNotData = u8g_bitNotData; + uint8_t bitClock = u8g_bitClock; + uint8_t bitNotClock = u8g_bitNotClock; + volatile uint8_t *outData = u8g_outData; + volatile uint8_t *outClock = u8g_outClock; + do + { + if ( val & 128 ) + *outData |= bitData; + else + *outData &= bitNotData; + + /* + *outClock |= bitClock; + val <<= 1; + cnt--; + *outClock &= bitNotClock; + */ + + val <<= 1; + *outClock &= bitNotClock; + cnt--; + // removed micro delays, because AVRs are too slow and the delay is not required + //u8g_MicroDelay(); + *outClock |= bitClock; + //u8g_MicroDelay(); + } while( cnt != 0 ); +} + +#elif defined(__18CXX) || defined(__PIC32MX) + +uint16_t dog_bitData, dog_bitNotData; +uint16_t dog_bitClock, dog_bitNotClock; +volatile uint32_t *dog_outData; +volatile uint32_t *dog_outClock; +volatile uint32_t dog_pic32_spi_tmp; + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ + dog_outData = portOutputRegister(digitalPinToPort(dataPin)); + dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); + dog_bitData = digitalPinToBitMask(dataPin); + dog_bitClock = digitalPinToBitMask(clockPin); + + dog_bitNotClock = dog_bitClock; + dog_bitNotClock ^= 0x0ffff; + + dog_bitNotData = dog_bitData; + dog_bitNotData ^= 0x0ffff; +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ + uint8_t cnt = 8; + do + { + if ( val & 128 ) + *dog_outData |= dog_bitData; + else + *dog_outData &= dog_bitNotData; + val <<= 1; + //u8g_MicroDelay(); + //*dog_outClock |= dog_bitClock; + *dog_outClock &= dog_bitNotClock; + cnt--; + u8g_MicroDelay(); + //*dog_outClock &= dog_bitNotClock; + *dog_outClock |= dog_bitClock; + u8g_MicroDelay(); + + } while( cnt != 0 ); +} + +#else + +/* default interface, Arduino DUE (__arm__) */ + +uint8_t u8g_data_pin; +uint8_t u8g_clock_pin; + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ + u8g_data_pin = dataPin; + u8g_clock_pin = clockPin; +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ + uint8_t cnt = 8; + do + { + if ( val & 128 ) + digitalWrite(u8g_data_pin, HIGH); + else + digitalWrite(u8g_data_pin, LOW); + val <<= 1; + //u8g_MicroDelay(); + digitalWrite(u8g_clock_pin, LOW); + cnt--; + u8g_MicroDelay(); + digitalWrite(u8g_clock_pin, HIGH); + u8g_MicroDelay(); + } while( cnt != 0 ); +} + +#endif + + + + +static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) +{ + uint8_t i; + + if ( rs == 0 ) + { + /* command */ + u8g_com_arduino_do_shift_out_msb_first(0x0f8); + } + else if ( rs == 1 ) + { + /* data */ + u8g_com_arduino_do_shift_out_msb_first(0x0fa); + } + + u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); + u8g_com_arduino_do_shift_out_msb_first(val << 4); + + for( i = 0; i < 4; i++ ) + u8g_10MicroDelay(); + +} + + + +uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_com_arduino_assign_pin_output_high(u8g); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); + u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); + u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable, note: the st7920 has an active high chip select */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + } + else + { + /* enable */ + //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); + } + break; + + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], *ptr++); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + ptr++; + arg_val--; + } + } + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + break; + } + return 1; +} + +#else /* ARDUINO */ + +uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c new file mode 100644 index 000000000..1251ef2e5 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c @@ -0,0 +1,144 @@ +/* + + u8g_arduino_std_sw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#else +#include +#endif + +void u8g_arduino_sw_spi_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) +{ + uint8_t i = 8; + do + { + if ( val & 128 ) + digitalWrite(dataPin, HIGH); + else + digitalWrite(dataPin, LOW); + val <<= 1; + u8g_MicroDelay(); /* 23 Sep 2012 */ + //delay(1); + digitalWrite(clockPin, HIGH); + u8g_MicroDelay(); /* 23 Sep 2012 */ + //delay(1); + digitalWrite(clockPin, LOW); + u8g_MicroDelay(); /* 23 Sep 2012 */ + //delay(1); + i--; + } while( i != 0 ); +} + +uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_com_arduino_assign_pin_output_high(u8g); + u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + } + break; + + case U8G_COM_MSG_WRITE_BYTE: + u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); + break; + } + return 1; +} + +#else /* ARDUINO */ + +uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c new file mode 100644 index 000000000..846baeb90 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c @@ -0,0 +1,239 @@ +/* + + u8g_arduino_sw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +#include +#include "wiring_private.h" +#include "pins_arduino.h" + +#else +#include +#include "wiring_private.h" +#endif + +#if defined(__AVR__) + +uint8_t u8g_bitData, u8g_bitNotData; +uint8_t u8g_bitClock, u8g_bitNotClock; +volatile uint8_t *u8g_outData; +volatile uint8_t *u8g_outClock; + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ + u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); + u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); + u8g_bitData = digitalPinToBitMask(dataPin); + u8g_bitClock = digitalPinToBitMask(clockPin); + + u8g_bitNotClock = u8g_bitClock; + u8g_bitNotClock ^= 0x0ff; + + u8g_bitNotData = u8g_bitData; + u8g_bitNotData ^= 0x0ff; +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ + uint8_t cnt = 8; + uint8_t bitData = u8g_bitData; + uint8_t bitNotData = u8g_bitNotData; + uint8_t bitClock = u8g_bitClock; + uint8_t bitNotClock = u8g_bitNotClock; + volatile uint8_t *outData = u8g_outData; + volatile uint8_t *outClock = u8g_outClock; + do + { + if ( val & 128 ) + *outData |= bitData; + else + *outData &= bitNotData; + + *outClock |= bitClock; + val <<= 1; + cnt--; + *outClock &= bitNotClock; + } while( cnt != 0 ); +} + +#elif defined(__18CXX) || defined(__PIC32MX) + +uint16_t dog_bitData, dog_bitNotData; +uint16_t dog_bitClock, dog_bitNotClock; +volatile uint32_t *dog_outData; +volatile uint32_t *dog_outClock; +volatile uint32_t dog_pic32_spi_tmp; + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ + dog_outData = portOutputRegister(digitalPinToPort(dataPin)); + dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); + dog_bitData = digitalPinToBitMask(dataPin); + dog_bitClock = digitalPinToBitMask(clockPin); + + dog_bitNotClock = dog_bitClock; + dog_bitNotClock ^= 0x0ffff; + + dog_bitNotData = dog_bitData; + dog_bitNotData ^= 0x0ffff; +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ + uint8_t cnt = 8; + do + { + if ( val & 128 ) + *dog_outData |= dog_bitData; + else + *dog_outData &= dog_bitNotData; + val <<= 1; + /* + There must be some delay here. However + fetching the adress dog_outClock is enough delay, so + do not place dog_outClock in a local variable. This will + break the procedure + */ + *dog_outClock |= dog_bitClock; + cnt--; + *dog_outClock &= dog_bitNotClock; + /* + little additional delay after clk pulse, done by 3x32bit reads + from I/O. Optimized for PIC32 with 80 MHz. + */ + dog_pic32_spi_tmp = *dog_outClock; + dog_pic32_spi_tmp = *dog_outClock; + dog_pic32_spi_tmp = *dog_outClock; + } while( cnt != 0 ); +} + +#else +/* empty interface */ + +static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) +{ +} + +static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) +{ +} + +#endif + + +uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_com_arduino_assign_pin_output_high(u8g); + u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); + u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + } + break; + + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_arduino_do_shift_out_msb_first( arg_val ); + //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_do_shift_out_msb_first(*ptr++); + // u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_arduino_do_shift_out_msb_first( u8g_pgm_read(ptr) ); + //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); + break; + } + return 1; +} + +#else /* ARDUINO */ + +uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c new file mode 100644 index 000000000..d6a817867 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c @@ -0,0 +1,385 @@ +/* + + u8g_com_arduino_t6963.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS 14 + PIN_A0 15 + PIN_RESET 16 + PIN_WR 17 + PIN_RD 18 + + u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) + u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) + +*/ + +#include "u8g.h" + +#if defined(ARDUINO) + +#if ARDUINO < 100 +//#include +#include +#include +#else +#include +#endif + + +#if defined(__PIC32MX) +/* CHIPKIT PIC32 */ +static volatile uint32_t *u8g_output_data_port[8]; +static volatile uint32_t *u8g_input_data_port[8]; +static volatile uint32_t *u8g_mode_port[8]; +static uint32_t u8g_data_mask[8]; +#else +static volatile uint8_t *u8g_output_data_port[8]; +static volatile uint8_t *u8g_input_data_port[8]; +static volatile uint8_t *u8g_mode_port[8]; +static uint8_t u8g_data_mask[8]; +#endif + + + +static void u8g_com_arduino_t6963_init(u8g_t *u8g) +{ + u8g_output_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); + u8g_input_data_port[0] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); + u8g_mode_port[0] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); + u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); + + u8g_output_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); + u8g_input_data_port[1] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); + u8g_mode_port[1] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); + u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); + + u8g_output_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); + u8g_input_data_port[2] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); + u8g_mode_port[2] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); + u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); + + u8g_output_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); + u8g_input_data_port[3] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); + u8g_mode_port[3] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); + u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); + + u8g_output_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); + u8g_input_data_port[4] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); + u8g_mode_port[4] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); + u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); + + u8g_output_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); + u8g_input_data_port[5] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); + u8g_mode_port[5] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); + u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); + + u8g_output_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); + u8g_input_data_port[6] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); + u8g_mode_port[6] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); + u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); + + u8g_output_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); + u8g_input_data_port[7] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); + u8g_mode_port[7] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); + u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); +} + +static void u8g_com_arduino_t6963_write_data_pin(uint8_t pin, uint8_t val) +{ + if ( val != 0 ) + *u8g_output_data_port[pin] |= u8g_data_mask[pin]; + else + *u8g_output_data_port[pin] &= ~u8g_data_mask[pin]; +} + +static void u8g_com_arduino_t6963_set_port_output(void) +{ + uint8_t i; + for( i = 0; i < 8; i++ ) + { +#if defined(__PIC32MX) +/* CHIPKIT PIC32 */ + *u8g_mode_port[i] |= u8g_data_mask[i]; +#elif defined(__AVR__) + *u8g_mode_port[i] |= u8g_data_mask[i]; +#else + /* TODO: use generic Arduino API */ + *u8g_mode_port[i] |= u8g_data_mask[i]; +#endif + + } +} + +static void u8g_com_arduino_t6963_set_port_input(void) +{ + uint8_t i; + for( i = 0; i < 8; i++ ) + { +#if defined(__PIC32MX) +/* CHIPKIT PIC32 */ + *u8g_mode_port[i] &= ~u8g_data_mask[i]; +#elif defined(__AVR__) +/* avr */ + *u8g_mode_port[i] &= ~u8g_data_mask[i]; + *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup +#else + /* TODO: use generic Arduino API */ + *u8g_mode_port[i] &= ~u8g_data_mask[i]; + *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup +#endif + } +} + + +static void u8g_com_arduino_t6963_write(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_t6963_write_data_pin( 0, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 1, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 2, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 3, val&1 ); + val >>= 1; + + u8g_com_arduino_t6963_write_data_pin( 4, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 5, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 6, val&1 ); + val >>= 1; + u8g_com_arduino_t6963_write_data_pin( 7, val&1 ); + val >>= 1; + + u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 0); + u8g_MicroDelay(); /* 80ns, reference: t6963 datasheet */ + u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 1); + u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ +} + +static uint8_t u8g_com_arduino_t6963_read(u8g_t *u8g) +{ + uint8_t val = 0; + + u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 0); + u8g_MicroDelay(); /* 150ns, reference: t6963 datasheet */ + + /* only read bits 0, 1 and 3 */ + if ( (*u8g_input_data_port[3] & u8g_data_mask[3]) != 0 ) + val++; + val <<= 1; + val <<= 1; + if ( (*u8g_input_data_port[1] & u8g_data_mask[1]) != 0 ) + val++; + val <<= 1; + if ( (*u8g_input_data_port[0] & u8g_data_mask[0]) != 0 ) + val++; + + u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 1); + u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ + + return val; +} + +#define U8G_STATUS_TIMEOUT 50 + +static uint8_t u8g_com_arduino_t6963_until_01_ok(u8g_t *u8g) +{ + long x; + + u8g_com_arduino_t6963_set_port_input(); + x = millis(); + x += U8G_STATUS_TIMEOUT; + + for(;;) + { + if ( (u8g_com_arduino_t6963_read(u8g) & 3) == 3 ) + break; + if ( x < millis() ) + return 0; + } + u8g_com_arduino_t6963_set_port_output(); + return 1; +} + +static uint8_t u8g_com_arduino_t6963_until_3_ok(u8g_t *u8g) +{ + long x; + + u8g_com_arduino_t6963_set_port_input(); + x = millis(); + x += U8G_STATUS_TIMEOUT; + + for(;;) + { + if ( (u8g_com_arduino_t6963_read(u8g) & 8) == 8 ) + break; + if ( x < millis() ) + return 0; + } + u8g_com_arduino_t6963_set_port_output(); + return 1; +} + +static uint8_t u8g_com_arduino_t6963_write_cmd(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); + if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) + return 0; + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); + u8g_com_arduino_t6963_write(u8g, val); + return 1; +} + +static uint8_t u8g_com_arduino_t6963_write_data(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); + if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) + return 0; + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); + u8g_com_arduino_t6963_write(u8g, val); + return 1; +} + +static uint8_t u8g_com_arduino_t6963_write_auto_data(u8g_t *u8g, uint8_t val) +{ + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); + if ( u8g_com_arduino_t6963_until_3_ok(u8g) == 0 ) + return 0; + u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); + u8g_com_arduino_t6963_write(u8g, val); + return 1; +} + + +uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g->pin_list[U8G_PI_A0_STATE] = 0; + u8g_com_arduino_t6963_init(u8g); + /* setup the RW (equal to WR) pin as output and force it to high */ + if ( u8g->pin_list[U8G_PI_WR] != U8G_PIN_NONE ) + { + pinMode(u8g->pin_list[U8G_PI_WR], OUTPUT); + u8g_com_arduino_digital_write(u8g, U8G_PI_WR, HIGH); + } + /* set all pins (except WR pin) */ + u8g_com_arduino_assign_pin_output_high(u8g); + break; + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable, active low chip select */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); + } + else + { + /* enable */ + u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); + } + break; + case U8G_COM_MSG_WRITE_BYTE: + if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) + { + u8g_com_arduino_t6963_write_data(u8g, arg_val); + } + else + { + u8g_com_arduino_t6963_write_cmd(u8g, arg_val); + } + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ + while( arg_val > 0 ) + { + if ( u8g_com_arduino_t6963_write_auto_data(u8g, *ptr++) == 0 ) + break; + arg_val--; + } + u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ + while( arg_val > 0 ) + { + if ( u8g_com_arduino_t6963_write_auto_data(u8g, u8g_pgm_read(ptr)) == 0 ) + break; + ptr++; + arg_val--; + } + u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 1) or data mode (arg_val = 0) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + //u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) + u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); + break; + + } + return 1; +} + +#else + + +uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c new file mode 100644 index 000000000..30ee808ea --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c @@ -0,0 +1,174 @@ +/* + + u8g_com_atmega_hw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Assumes, that + MOSI is at PORTB, Pin 3 + and + SCK is at PORTB, Pin 5 + +*/ + +#include "u8g.h" + + +#if defined(__AVR__) +#define U8G_ATMEGA_HW_SPI + +/* remove the definition for attiny */ +#if __AVR_ARCH__ == 2 +#undef U8G_ATMEGA_HW_SPI +#endif +#if __AVR_ARCH__ == 25 +#undef U8G_ATMEGA_HW_SPI +#endif +#endif + + +#if defined(U8G_ATMEGA_HW_SPI) + +#include +#include + + +static uint8_t u8g_atmega_spi_out(uint8_t data) +{ + /* unsigned char x = 100; */ + /* send data */ + SPDR = data; + /* wait for transmission */ + while (!(SPSR & (1< 0 ) + { + u8g_atmega_spi_out(*ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_atmega_spi_out(u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + } + return 1; +} + +#else + +uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c new file mode 100644 index 000000000..603082da2 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c @@ -0,0 +1,183 @@ +/* + + u8g_atmega_parallel.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS1 14 + PIN_CS2 15 + PIN_RW 16 + PIN_DI 17 + PIN_EN 18 + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + +#if defined(__AVR__) + +static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) U8G_NOINLINE; +static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) +{ + + u8g_SetPILevel(u8g, U8G_PI_D0, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D1, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D2, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D3, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D4, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D5, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D6, val&1); + val >>= 1; + u8g_SetPILevel(u8g, U8G_PI_D7, val&1); + + /* EN cycle time must be 1 micro second */ + u8g_SetPILevel(u8g, U8G_PI_EN, 1); + u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ + u8g_SetPILevel(u8g, U8G_PI_EN, 0); + u8g_10MicroDelay(); /* ST7920 commands: 72us */ + u8g_10MicroDelay(); /* ST7920 commands: 72us */ +} + + +uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + /* setup the RW pin as output and force it to low */ + u8g_SetPIOutput(u8g, U8G_PI_RW); + u8g_SetPILevel(u8g, U8G_PI_RW, 0); + + u8g_SetPIOutput(u8g, U8G_PI_D0); + u8g_SetPIOutput(u8g, U8G_PI_D1); + u8g_SetPIOutput(u8g, U8G_PI_D2); + u8g_SetPIOutput(u8g, U8G_PI_D3); + u8g_SetPIOutput(u8g, U8G_PI_D4); + u8g_SetPIOutput(u8g, U8G_PI_D5); + u8g_SetPIOutput(u8g, U8G_PI_D6); + u8g_SetPIOutput(u8g, U8G_PI_D7); + u8g_SetPIOutput(u8g, U8G_PI_EN); + u8g_SetPIOutput(u8g, U8G_PI_CS1); + u8g_SetPIOutput(u8g, U8G_PI_CS2); + u8g_SetPIOutput(u8g, U8G_PI_DI); + u8g_SetPILevel(u8g, U8G_PI_CS1, 1); + u8g_SetPILevel(u8g, U8G_PI_CS2, 1); + + break; + case U8G_COM_MSG_STOP: + break; + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable */ + u8g_SetPILevel(u8g, U8G_PI_CS1, 1); + u8g_SetPILevel(u8g, U8G_PI_CS2, 1); + } + else if ( arg_val == 1 ) + { + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS1, 0); + u8g_SetPILevel(u8g, U8G_PI_CS2, 1); + } + else if ( arg_val == 2 ) + { + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS1, 1); + u8g_SetPILevel(u8g, U8G_PI_CS2, 0); + } + else + { + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS1, 0); + u8g_SetPILevel(u8g, U8G_PI_CS2, 0); + } + break; + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_atmega_parallel_write(u8g, arg_val); + break; + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_parallel_write(u8g, *ptr++); + arg_val--; + } + } + break; + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_parallel_write(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_SetPILevel(u8g, U8G_PI_DI, arg_val); + break; + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + } + return 1; +} + +#else + +uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + +#endif /* ARDUINO */ + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c new file mode 100644 index 000000000..52858a61e --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c @@ -0,0 +1,205 @@ +/* + + u8g_com_atmega_st7920_hw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + A special SPI interface for ST7920 controller with HW SPI Support + + Assumes, that + MOSI is at PORTB, Pin 3 + and + SCK is at PORTB, Pin 5 + + +*/ + +#include "u8g.h" + +#if defined(__AVR__) +#define U8G_ATMEGA_HW_SPI + +/* remove the definition for attiny */ +#if __AVR_ARCH__ == 2 +#undef U8G_ATMEGA_HW_SPI +#endif +#if __AVR_ARCH__ == 25 +#undef U8G_ATMEGA_HW_SPI +#endif + +#endif + +#if defined(U8G_ATMEGA_HW_SPI) + +#include +#include + +static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; +static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) +{ + /* send data */ + SPDR = val; + /* wait for transmission */ + while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable, note: the st7920 has an active high chip select */ + u8g_SetPILevel(u8g, U8G_PI_CS, 0); + } + else + { + /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ + } + break; + + + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); + //u8g->pin_list[U8G_PI_A0_STATE] = 2; + ptr++; + arg_val--; + } + } + break; + } + return 1; +} + +#else + + +uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif + + \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c new file mode 100644 index 000000000..24e06028a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c @@ -0,0 +1,170 @@ +/* + + u8g_com_atmega_st7920_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + A special SPI interface for ST7920 controller + +*/ + +#include "u8g.h" + +#if defined(__AVR__) + +static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; +static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) +{ + uint8_t i = 8; + do + { + u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); + val <<= 1; + u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); + u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ + u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); + u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ + i--; + } while( i != 0 ); +} + +static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; +static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) +{ + uint8_t i; + + if ( rs == 0 ) + { + /* command */ + u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0f8); + } + else if ( rs == 1 ) + { + /* data */ + u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0fa); + } + + u8g_atmega_st7920_sw_spi_shift_out(u8g, val & 0x0f0); + u8g_atmega_st7920_sw_spi_shift_out(u8g, val << 4); + + for( i = 0; i < 4; i++ ) + u8g_10MicroDelay(); +} + + +uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_SetPIOutput(u8g, U8G_PI_SCK); + u8g_SetPIOutput(u8g, U8G_PI_MOSI); + /* u8g_SetPIOutput(u8g, U8G_PI_A0); */ + u8g_SetPIOutput(u8g, U8G_PI_CS); + u8g_SetPIOutput(u8g, U8G_PI_RESET); + + u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); + u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); + u8g_SetPILevel(u8g, U8G_PI_CS, 0 ); + /* u8g_SetPILevel(u8g, U8G_PI_A0, 0); */ + + u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g->pin_list[U8G_PI_A0_STATE] = arg_val; + break; + + case U8G_COM_MSG_CHIP_SELECT: + if ( arg_val == 0 ) + { + /* disable, note: the st7920 has an active high chip select */ + u8g_SetPILevel(u8g, U8G_PI_CS, 0); + } + else + { + /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ + } + break; + + + case U8G_COM_MSG_WRITE_BYTE: + u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); + u8g->pin_list[U8G_PI_A0_STATE] = 2; + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); + u8g->pin_list[U8G_PI_A0_STATE] = 2; + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); + u8g->pin_list[U8G_PI_A0_STATE] = 2; + ptr++; + arg_val--; + } + } + break; + } + return 1; +} + +#else + + +uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c new file mode 100644 index 000000000..fde3153a5 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c @@ -0,0 +1,141 @@ +/* + + u8g_com_atmega_sw_spi.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#if defined(__AVR__) + +static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; +static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) +{ + uint8_t i = 8; + do + { + u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); + val <<= 1; + u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); + u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ + u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); + u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ + i--; + } while( i != 0 ); +} + +uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + u8g_SetPIOutput(u8g, U8G_PI_SCK); + u8g_SetPIOutput(u8g, U8G_PI_MOSI); + u8g_SetPIOutput(u8g, U8G_PI_A0); + u8g_SetPIOutput(u8g, U8G_PI_CS); + u8g_SetPIOutput(u8g, U8G_PI_RESET); + + u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); + u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); + u8g_SetPILevel(u8g, U8G_PI_CS, 1 ); + u8g_SetPILevel(u8g, U8G_PI_A0, 0); + break; + + case U8G_COM_MSG_STOP: + break; + + case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ + u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); + break; + + case U8G_COM_MSG_CHIP_SELECT: + + if ( arg_val == 0 ) + { + /* disable */ + u8g_SetPILevel(u8g, U8G_PI_CS, 1); + } + else + { + u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); + /* enable */ + u8g_SetPILevel(u8g, U8G_PI_CS, 0); /* CS = 0 (low active) */ + } + break; + + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + + + case U8G_COM_MSG_WRITE_BYTE: + u8g_atmega_sw_spi_shift_out(u8g, arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_atmega_sw_spi_shift_out(u8g, *ptr++); + arg_val--; + } + } + break; + + case U8G_COM_MSG_WRITE_SEQ_P: + { + register uint8_t *ptr = arg_ptr; + while( arg_val > 0 ) + { + u8g_atmega_sw_spi_shift_out(u8g, u8g_pgm_read(ptr)); + ptr++; + arg_val--; + } + } + break; + } + return 1; +} + +#else + + +uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + return 1; +} + + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c new file mode 100644 index 000000000..144c7d720 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c @@ -0,0 +1,249 @@ +/* + + u8g_com_i2c.c + + generic i2c interface + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#include "u8g.h" + +static uint8_t u8g_i2c_err_code; + +/* + position values + 1: start condition + 2: sla transfer +*/ +static uint8_t u8g_i2c_err_pos; + + +void u8g_i2c_clear_error(void) +{ + u8g_i2c_err_code = U8G_I2C_ERR_NONE; + u8g_i2c_err_pos = 0; +} + +uint8_t u8g_i2c_get_error(void) +{ + return u8g_i2c_err_code; +} + +uint8_t u8g_i2c_get_err_pos(void) +{ + return u8g_i2c_err_pos; +} + +static void u8g_i2c_set_error(uint8_t code, uint8_t pos) +{ + if ( u8g_i2c_err_code > 0 ) + return; + u8g_i2c_err_code |= code; + u8g_i2c_err_pos = pos; +} + + + +#if defined(__AVR__) +#define U8G_ATMEGA_HW_TWI + +/* remove the definition for attiny */ +#if __AVR_ARCH__ == 2 +#undef U8G_ATMEGA_HW_TWI +#endif +#if __AVR_ARCH__ == 25 +#undef U8G_ATMEGA_HW_TWI +#endif +#endif + +#if defined(U8G_ATMEGA_HW_TWI) + +#include +#include + + + +void u8g_i2c_init(uint8_t options) +{ + /* + TWBR: bit rate register + TWSR: status register (contains preselector bits) + + prescalar + 0 1 + 1 4 + 2 16 + 3 64 + + f = F_CPU/(16+2*TWBR*prescalar) + + F_CPU = 16MHz + TWBR = 152; + TWSR = 0; + --> 50KHz + + TWBR = 72; + TWSR = 0; + --> 100KHz + + F_CPU/(2*100000)-8 --> calculate TWBR value for 100KHz +*/ + TWSR = 0; + TWBR = F_CPU/(2*100000)-8; + u8g_i2c_clear_error(); +} + +uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) +{ + volatile uint16_t cnt = 2000; /* timout value should be > 280 for 50KHz Bus and 16 Mhz CPU, however the start condition might need longer */ + while( !(TWCR & mask) ) + { + if ( cnt == 0 ) + { + u8g_i2c_set_error(U8G_I2C_ERR_TIMEOUT, pos); + return 0; /* error */ + } + cnt--; + } + return 1; /* all ok */ +} + +/* sla includes all 8 bits (with r/w bit), assums master transmit */ +uint8_t u8g_i2c_start(uint8_t sla) +{ + register uint8_t status; + + /* send start */ + TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN); + + /* wait */ + if ( u8g_i2c_wait(_BV(TWINT), 1) == 0 ) + return 0; + + status = TW_STATUS; + + /* check status after start */ + if ( status != TW_START && status != TW_REP_START ) + { + u8g_i2c_set_error(U8G_I2C_ERR_BUS, 1); + return 0; + } + + /* set slave address */ + TWDR = sla; + + /* enable sla transfer */ + TWCR = _BV(TWINT) | _BV(TWEN); + + /* wait */ + if ( u8g_i2c_wait(_BV(TWINT), 2) == 0 ) + return 0; + status = TW_STATUS; + + /* check status after sla */ + if ( status != TW_MT_SLA_ACK ) + { + u8g_i2c_set_error(U8G_I2C_ERR_BUS, 2); + return 0; + } + + return 1; +} + +uint8_t u8g_i2c_send_byte(uint8_t data) +{ + register uint8_t status; + TWDR = data; + TWCR = _BV(TWINT) | _BV(TWEN); + if ( u8g_i2c_wait(_BV(TWINT), 3) == 0 ) + return 0; + status = TW_STATUS; + + if ( status != TW_MT_DATA_ACK ) + { + u8g_i2c_set_error(U8G_I2C_ERR_BUS, 3); + return 0; + } + + return 1; +} + +void u8g_i2c_stop(void) +{ + /* write stop */ + TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO); + + /* no error is checked for the stop condition */ + u8g_i2c_wait(_BV(TWSTO), 4); + +} + +/* +void twi_send(uint8_t adr, uint8_t data1, uint8_t data2) +{ + u8g_i2c_start(adr<<1); + u8g_i2c_send_byte(data1); + u8g_i2c_send_byte(data2); + u8g_i2c_stop(); +} +*/ + +#else + +/* empty interface */ + +void u8g_i2c_init(uint8_t options) +{ + u8g_i2c_clear_error(); +} + +uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) +{ + return 1; +} + +uint8_t u8g_i2c_start(uint8_t sla) +{ + return 1; +} +uint8_t u8g_i2c_send_byte(uint8_t data) +{ + return 1; +} + +void u8g_i2c_stop(void) +{ +} + + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c new file mode 100644 index 000000000..50d26c93d --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c @@ -0,0 +1,218 @@ +/* + + u8g_com_io.c + + abstraction layer for low level i/o + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#if defined(__AVR__) + +#include +#include + +typedef volatile uint8_t * IO_PTR; + +/* create internal pin number */ +uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) +{ + port <<= 3; + port += bitpos; + return port; +} + +const IO_PTR u8g_avr_ddr_P[] PROGMEM = { +#ifdef DDRA + &DDRA, +#else + 0, +#endif + &DDRB, +#ifdef DDRC + &DDRC, +#ifdef DDRD + &DDRD, +#ifdef DDRE + &DDRE, +#ifdef DDRF + &DDRF, +#ifdef DDRG + &DDRG, +#ifdef DDRH + &DDRH, +#endif +#endif +#endif +#endif +#endif +#endif +}; + + +const IO_PTR u8g_avr_port_P[] PROGMEM = { +#ifdef PORTA + &PORTA, +#else + 0, +#endif + &PORTB, +#ifdef PORTC + &PORTC, +#ifdef PORTD + &PORTD, +#ifdef PORTE + &PORTE, +#ifdef PORTF + &PORTF, +#ifdef PORTG + &PORTG, +#ifdef PORTH + &PORTH, +#endif +#endif +#endif +#endif +#endif +#endif +}; + +const IO_PTR u8g_avr_pin_P[] PROGMEM = { +#ifdef PINA + &PINA, +#else + 0, +#endif + &PINB, +#ifdef PINC + &PINC, +#ifdef PIND + &PIND, +#ifdef PINE + &PINE, +#ifdef PINF + &PINF, +#ifdef PING + &PING, +#ifdef PINH + &PINH, +#endif +#endif +#endif +#endif +#endif +#endif +}; + +static volatile uint8_t *u8g_get_avr_io_ptr(const IO_PTR *base, uint8_t offset) +{ + volatile uint8_t * tmp; + base += offset; + memcpy_P(&tmp, base, sizeof(volatile uint8_t * PROGMEM)); + return tmp; +} + +/* set direction to output of the specified pin (internal pin number) */ +void u8g_SetPinOutput(uint8_t internal_pin_number) +{ + *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) |= _BV(internal_pin_number&7); +} + +void u8g_SetPinInput(uint8_t internal_pin_number) +{ + *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) &= ~_BV(internal_pin_number&7); +} + +void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) +{ + volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_port_P, internal_pin_number>>3); + + if ( level == 0 ) + *tmp &= ~_BV(internal_pin_number&7); + else + *tmp |= _BV(internal_pin_number&7); +} + +uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) +{ + volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_pin_P, internal_pin_number>>3); + if ( ((*tmp) & _BV(internal_pin_number&7)) != 0 ) + return 1; + return 0; +} + +#else + +uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) +{ + port <<= 3; + port += bitpos; + return port; +} + +void u8g_SetPinOutput(uint8_t internal_pin_number) +{ +} + +void u8g_SetPinInput(uint8_t internal_pin_number) +{ +} + +void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) +{ +} + +uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) +{ + return 0; +} + +#endif + + +void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) +{ + uint8_t pin; + pin = u8g->pin_list[pi]; + if ( pin != U8G_PIN_NONE ) + u8g_SetPinOutput(pin); +} + +void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) +{ + uint8_t pin; + pin = u8g->pin_list[pi]; + if ( pin != U8G_PIN_NONE ) + u8g_SetPinLevel(pin, level); +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c new file mode 100644 index 000000000..1d9deebff --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c @@ -0,0 +1,63 @@ +/* + + u8g_com_null.c + + communication null device + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) +{ + switch(msg) + { + case U8G_COM_MSG_INIT: + break; + case U8G_COM_MSG_STOP: + break; + + + case U8G_COM_MSG_CHIP_SELECT: + /* arg_val contains the chip number, which should be enabled */ + break; + + + case U8G_COM_MSG_WRITE_BYTE: + break; + case U8G_COM_MSG_WRITE_SEQ: + break; + } + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c new file mode 100644 index 000000000..62075ba6e --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c @@ -0,0 +1,99 @@ +/* + + u8g_cursor.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font) +{ + u8g->cursor_font = cursor_font; +} + +void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding) +{ + u8g->cursor_encoding = encoding; +} + +void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg) +{ + u8g->cursor_bg_color = bg; + u8g->cursor_fg_color = fg; +} + +void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y) +{ + u8g->cursor_x = cursor_x; + u8g->cursor_y = cursor_y; +} + +void u8g_EnableCursor(u8g_t *u8g) +{ + u8g->cursor_fn = u8g_DrawCursor; +} + +void u8g_DisableCursor(u8g_t *u8g) +{ + u8g->cursor_fn = (u8g_draw_cursor_fn)0; +} + +void u8g_DrawCursor(u8g_t *u8g) +{ + const u8g_pgm_uint8_t *font; + uint8_t color; + uint8_t encoding = u8g->cursor_encoding; + + /* get current values */ + color = u8g_GetColorIndex(u8g); + font = u8g->font; + + /* draw cursor */ + u8g->font = u8g->cursor_font; + encoding++; + u8g_SetColorIndex(u8g, u8g->cursor_bg_color); + /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ + /* required, because y adjustment should not happen to the cursor fonts */ + u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); + encoding--; + u8g_SetColorIndex(u8g, u8g->cursor_fg_color); + /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ + /* required, because y adjustment should not happen to the cursor fonts */ + /* u8g_DrawGlyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); */ + u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); + + /* restore previous values */ + u8g->font = font; + u8g_SetColorIndex(u8g, color); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c new file mode 100644 index 000000000..e6a0661b3 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c @@ -0,0 +1,215 @@ +/* + + u8g_delay.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +#include "u8g.h" + +/*==== Part 1: Derive suitable delay procedure ====*/ + +#if defined(ARDUINO) +# if defined(__AVR__) +# define USE_AVR_DELAY +# elif defined(__PIC32MX) +# define USE_PIC32_DELAY +# elif defined(__arm__) /* Arduino Due */ +# define USE_ARDUINO_DELAY +# else +# define USE_ARDUINO_DELAY +# endif +#elif defined(__AVR__) +# define USE_AVR_DELAY +#elif defined(__18CXX) +# define USE_PIC18_DELAY +#else +# define USE_DUMMY_DELAY +#endif + + + +/*==== Part 2: Definition of the delay procedures ====*/ + +/*== AVR Delay ==*/ + +#if defined(USE_AVR_DELAY) +#include +#include +#include + +/* + Delay by the provided number of milliseconds. + Thus, a 16 bit value will allow a delay of 0..65 seconds + Makes use of the _delay_loop_2 + + _delay_loop_2 will do a delay of n * 4 prozessor cycles. + with f = F_CPU cycles per second, + n = f / (1000 * 4 ) + with f = 16000000 the result is 4000 + with f = 1000000 the result is 250 + + the millisec loop, gcc requires the following overhead: + - movev 1 + - subwi 2x2 + - bne i 2 + ==> 7 cycles + ==> must be devided by 4, rounded up 7/4 = 2 +*/ +void u8g_Delay(uint16_t val) +{ + /* old version did a call to the arduino lib: delay(val); */ + while( val != 0 ) + { + _delay_loop_2( (F_CPU / 4000 ) -2); + val--; + } +} + +/* delay by one micro second */ +void u8g_MicroDelay(void) +{ +#if (F_CPU / 4000000 ) > 0 + _delay_loop_2( (F_CPU / 4000000 ) ); +#endif +} + +/* delay by 10 micro seconds */ +void u8g_10MicroDelay(void) +{ +#if (F_CPU / 400000 ) > 0 + _delay_loop_2( (F_CPU / 400000 ) ); +#endif +} + +#endif + + +/*== Delay for PIC18 (not tested) ==*/ + +#if defined(USE_PIC18_DELAY) +#include +#define GetSystemClock() (64000000ul) // Hz +#define GetInstructionClock() (GetSystemClock()/4) + +void u8g_Delay(uint16_t val) +{/* + unsigned int _iTemp = (val); + while(_iTemp--) + Delay1KTCYx((GetInstructionClock()+999999)/1000000); + */ +} +void u8g_MicroDelay(void) +{ + /* not implemented */ +} +void u8g_10MicroDelay(void) +{ + /* not implemented */ +} +#endif + + +/*== Arduino Delay ==*/ +#if defined(USE_ARDUINO_DELAY) +void u8g_Delay(uint16_t val) +{ + delay(val); +} +void u8g_MicroDelay(void) +{ + delayMicroseconds(1); +} +void u8g_10MicroDelay(void) +{ + delayMicroseconds(10); +} +#endif + +#if defined(USE_PIC32_DELAY) +/* + Assume chipkit here with F_CPU correctly defined + The problem was, that u8g_Delay() is called within the constructor. + It seems that the chipkit is not fully setup at this time, so a + call to delay() will not work. So here is my own implementation. + +*/ +#define CPU_COUNTS_PER_SECOND (F_CPU/2UL) +#define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL) +#include "plib.h" +void u8g_Delay(uint16_t val) +{ + uint32_t d; + uint32_t s; + d = val; + d *= TICKS_PER_MILLISECOND; + s = ReadCoreTimer(); + while ( (uint32_t)(ReadCoreTimer() - s) < d ) + ; +} + +void u8g_MicroDelay(void) +{ + uint32_t d; + uint32_t s; + d = TICKS_PER_MILLISECOND/1000; + s = ReadCoreTimer(); + while ( (uint32_t)(ReadCoreTimer() - s) < d ) + ; +} + +void u8g_10MicroDelay(void) +{ + uint32_t d; + uint32_t s; + d = TICKS_PER_MILLISECOND/100; + s = ReadCoreTimer(); + while ( (uint32_t)(ReadCoreTimer() - s) < d ) + ; +} + +#endif + +/*== Any other systems: Dummy Delay ==*/ +#if defined(USE_DUMMY_DELAY) +void u8g_Delay(uint16_t val) +{ + /* do not know how to delay... */ +} +void u8g_MicroDelay(void) +{ +} +void u8g_10MicroDelay(void) +{ +} +#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c new file mode 100644 index 000000000..bb368de43 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c @@ -0,0 +1,92 @@ +/* + + u8g_dev_flipdisc.c + + 1-Bit (BW) Driver for flip disc matrix + 2x 7 pixel height + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#include "u8g.h" + +#define WIDTH 28 +#define HEIGHT 14 +#define PAGE_HEIGHT 14 + +/* + Write data to the flip disc matrix. + This procedure must be implemented by the user. + Arguments: + id: Id for the matrix. Currently always 0. + page: A page has a height of 14 pixel. For a matrix with HEIGHT == 14 this will be always 0 + width: The width of the flip disc matrix. Always equal to WIDTH + row1: first data line (7 pixel per byte) + row2: first data line (7 pixel per byte) +*/ +void writeFlipDiscMatrix(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); + + + +void (*u8g_write_flip_disc_matrix)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); + +void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)) +{ + u8g_write_flip_disc_matrix = cb; +} + +uint8_t u8g_dev_flipdisc_2x7_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + /* current page: pb->p.page */ + /* ptr to the buffer: pb->buf */ + + (*u8g_write_flip_disc_matrix)(0, pb->p.page, WIDTH, pb->buf, pb->buf+WIDTH); + } + break; + case U8G_DEV_MSG_CONTRAST: + return 1; + } + return u8g_dev_pb14v1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_flipdisc_2x7_bw_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_flipdisc_2x7_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_flipdisc_2x7_bw_buf}; +u8g_dev_t u8g_dev_flipdisc_2x7 = { u8g_dev_flipdisc_2x7_bw_fn, &u8g_dev_flipdisc_2x7_bw_pb, u8g_com_null_fn }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c new file mode 100644 index 000000000..a486a2143 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c @@ -0,0 +1,130 @@ +/* + + u8g_dev_gprof.c + + Device for performance measurement with gprof. + Does not write any data, but uses a buffer. + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +*/ + +#include "u8g.h" + + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +uint8_t u8g_pb_dev_gprof_buf[WIDTH]; +u8g_pb_t u8g_pb_dev_gprof = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_pb_dev_gprof_buf }; + +u8g_dev_t u8g_dev_gprof = { u8g_dev_gprof_fn, &u8g_pb_dev_gprof, NULL }; + +uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + switch(msg) + { + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + /* + { + uint8_t i, j; + uint8_t page_height; + page_height = pb->p.page_y1; + page_height -= pb->p.page_y0; + page_height++; + for( j = 0; j < page_height; j++ ) + { + printf("%02d ", j); + for( i = 0; i < WIDTH; i++ ) + { + if ( (u8g_pb_dev_stdout_buf[i] & (1<p)) == 0 ) + { + //printf("\n"); + return 0; + } + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + { + u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; + u8g_uint_t x2, y2; + + y2 = bbx->y; + y2 += bbx->h; + y2--; + + if ( u8g_pb_IsYIntersection(pb, bbx->y, y2) == 0 ) + return 0; + + /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ + x2 = bbx->x; + x2 += bbx->w; + x2--; + + if ( u8g_pb_IsXIntersection(pb, bbx->x, x2) == 0 ) + return 0; + } + return 1; +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c new file mode 100644 index 000000000..e30ae6a71 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c @@ -0,0 +1,326 @@ +/* + + u8g_dev_ili9325d_320x240.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Color format + Red: 5 Bit + Green: 6 Bit + Blue: 5 Bit + + +*/ + +#include "u8g.h" + +#define WIDTH 240 + +#if defined(U8G_16BIT) +#define HEIGHT 320 +#else +/* if the user tries to compile the 8Bit version of the lib, then restrict the height to something which fits to 8Bit */ +#define HEIGHT 240 +#endif +#define PAGE_HEIGHT 4 + + +/* + reference board for this device: + http://iteadstudio.com/store/index.php?main_page=product_info&cPath=57_58&products_id=55 + documentation: + http://iteadstudio.com/Downloadfile/ITDB02_material.rar + datasheet + http://www.newhavendisplay.com/app_notes/ILI9325D.pdf + other libs + http://henningkarlsen.com/electronics/library.php + init sequence + http://code.google.com/p/itdb02/, ITDB02.cpp, iteadstudio.com +*/ + +static const uint8_t u8g_dev_ili9325d_320x240_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + + //U8G_ESC_ADR(0), 0x000, 0x0E5, /* only used for none D version: set SRAM internal timing */ + //U8G_ESC_ADR(1), 0x078, 0x0f0, + U8G_ESC_ADR(0), 0x000, 0x001, /* Driver Output Control, bits 8 & 10 */ + U8G_ESC_ADR(1), 0x001, 0x000, + U8G_ESC_ADR(0), 0x000, 0x002, /* LCD Driving Wave Control, bit 9: Set line inversion */ + U8G_ESC_ADR(1), 0x002, 0x000, /* ITDB02 none D verion: 0x007, 0x000 */ + U8G_ESC_ADR(0), 0x000, 0x003, /* Entry Mode, GRAM write direction and BGR=1 */ + U8G_ESC_ADR(1), 0x010, 0x030, + U8G_ESC_ADR(0), 0x000, 0x004, /* Resize register */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x008, /* Display Control 2: set the back porch and front porch */ + U8G_ESC_ADR(1), 0x002, 0x007, + + U8G_ESC_ADR(0), 0x000, 0x009, /* Display Control 3 */ + U8G_ESC_ADR(1), 0x000, 0x000, + + U8G_ESC_ADR(0), 0x000, 0x00a, /* Display Control 4: FMARK */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x00c, /* RGB Display Interface Control 1 */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x00d, /* Frame Maker Position */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x00f, /* RGB Display Interface Control 2 */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: DC1[2:0], DC0[2:0], VC[2:0] */ + U8G_ESC_ADR(1), 0x000, 0x007, + U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VREG1OUT voltage */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, but do not display */ + U8G_ESC_ADR(1), 0x000, 0x001, + + U8G_ESC_DLY(100), /* delay 100 ms */ /* ITDB02 none D verion: 50ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ + U8G_ESC_ADR(1), 0x016, 0x090, /* ITDB02 none D verion: 0x010, 0x090 */ + U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: SAP, BT[3:0], AP, DSTB, SLP, STB */ + U8G_ESC_ADR(1), 0x002, 0x027, + + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VCI: External, VCI*1.80 */ + U8G_ESC_ADR(1), 0x000, 0x00d, /* ITDB02 none D verion: 0x000, 0x01f */ + + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ + U8G_ESC_ADR(1), 0x012, 0x000, /* ITDB02 none D verion: 0x015, 0x000 */ + U8G_ESC_ADR(0), 0x000, 0x029, /* Power Control 7 */ + U8G_ESC_ADR(1), 0x000, 0x00a, /* ITDB02 none D verion: 0x000, 0x027 */ + U8G_ESC_ADR(0), 0x000, 0x02b, /* Frame Rate: 83 */ + U8G_ESC_ADR(1), 0x000, 0x00d, + + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ + U8G_ESC_ADR(1), 0x000, 0x000, + + /* gamma control */ + U8G_ESC_ADR(0), 0x000, 0x030, + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x031, + U8G_ESC_ADR(1), 0x004, 0x004, + U8G_ESC_ADR(0), 0x000, 0x032, + U8G_ESC_ADR(1), 0x000, 0x003, + U8G_ESC_ADR(0), 0x000, 0x035, + U8G_ESC_ADR(1), 0x004, 0x005, + U8G_ESC_ADR(0), 0x000, 0x036, + U8G_ESC_ADR(1), 0x008, 0x008, + U8G_ESC_ADR(0), 0x000, 0x037, + U8G_ESC_ADR(1), 0x004, 0x007, + U8G_ESC_ADR(0), 0x000, 0x038, + U8G_ESC_ADR(1), 0x003, 0x003, + U8G_ESC_ADR(0), 0x000, 0x039, + U8G_ESC_ADR(1), 0x007, 0x007, + U8G_ESC_ADR(0), 0x000, 0x03c, + U8G_ESC_ADR(1), 0x005, 0x004, + U8G_ESC_ADR(0), 0x000, 0x03d, + U8G_ESC_ADR(1), 0x008, 0x008, + + U8G_ESC_ADR(0), 0x000, 0x050, /* Horizontal GRAM Start Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x051, /* Horizontal GRAM End Address: 239 */ + U8G_ESC_ADR(1), 0x000, 0x0EF, + U8G_ESC_ADR(0), 0x000, 0x052, /* Vertical GRAM Start Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x053, /* Vertical GRAM End Address: 319 */ + U8G_ESC_ADR(1), 0x001, 0x03F, + + U8G_ESC_ADR(0), 0x000, 0x060, /* Driver Output Control 2 */ + U8G_ESC_ADR(1), 0x0a7, 0x000, + U8G_ESC_ADR(0), 0x000, 0x061, /* Base Image Display Control: NDL,VLE, REV */ + U8G_ESC_ADR(1), 0x000, 0x001, + U8G_ESC_ADR(0), 0x000, 0x06a, /* Vertical Scroll Control */ + U8G_ESC_ADR(1), 0x000, 0x000, + + U8G_ESC_ADR(0), 0x000, 0x080, /* Partial Image 1 Display Position */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x081, /* Partial Image 1 RAM Start Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x082, /* Partial Image 1 RAM End Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x083, /* Partial Image 2 Display Position */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x084, /* Partial Image 2 RAM Start Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x085, /* Partial Image 2 RAM End Address */ + U8G_ESC_ADR(1), 0x000, 0x000, + + U8G_ESC_ADR(0), 0x000, 0x090, /* Panel Interface Control 1 */ + U8G_ESC_ADR(1), 0x000, 0x010, + U8G_ESC_ADR(0), 0x000, 0x092, /* Panel Interface Control 2 */ + U8G_ESC_ADR(1), 0x000, 0x000, /* 0x006, 0x000 */ + + U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, display ON */ + U8G_ESC_ADR(1), 0x001, 0x033, + + U8G_ESC_DLY(10), /* delay 10 ms */ + + /* write test pattern */ + U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ + U8G_ESC_ADR(1), 0x000, 0x010, + U8G_ESC_ADR(0), 0x000, 0x022, /* Write Data to GRAM */ + U8G_ESC_ADR(1), 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + 0x000, 0x000, + 0x0fe, 0x0fe, + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +static const uint8_t u8g_dev_ili9325d_320x240_page_seq[] PROGMEM = { + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ + U8G_ESC_ADR(1), 0x000, 0x000, + U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ + U8G_ESC_ADR(1), + U8G_ESC_END /* end of sequence */ +}; + +/* convert the internal RGB 332 to 65K high byte */ +static uint8_t u8g_dev_ili9325d_get_65K_high_byte(uint8_t color) +{ + uint8_t h; + h = color; + h &= 0x0e0; + h |= h>>3; + h &= 0x0f8; + color>>=2; + color &= 7; + h |= color; + return h; +} + +/* convert the internal RGB 332 to 65K high byte */ +static uint8_t u8g_dev_ili9325d_get_65K_low_byte(uint8_t color) +{ + uint8_t l; + l = color; + l <<= 3; + color &= 3; + color <<= 1; + l |= color; + return l; +} + + +uint8_t u8g_dev_ili9325d_320x240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + //for(;;) + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_init_seq); + + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + uint16_t y, j; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < pb->p.page_height; i ++ ) + { + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_page_seq); + u8g_WriteByte(u8g, dev, y >> 8 ); /* display ram (cursor) address high byte */ + u8g_WriteByte(u8g, dev, y & 255 ); /* display ram (cursor) address low byte */ + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0 ); + u8g_WriteByte(u8g, dev, 0x022 ); /* start gram data */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ + + for( j = 0; j < pb->width; j++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_high_byte(*ptr) ); + u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_low_byte(*ptr) ); + + ptr++; + } + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_ili9325d_320x240_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; +u8g_pb_t u8g_ili9325d_320x240_8h8_pb U8G_NOCOMMON = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_ili9325d_320x240_8h8_buf}; +u8g_dev_t u8g_dev_ili9325d_320x240_8bit U8G_NOCOMMON = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_port_d_wr_fn }; +//u8g_dev_t u8g_dev_ili9325d_320x240_8bit = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_parallel_fn }; + +//U8G_PB_DEV(u8g_dev_ili9325d_320x240_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ili9325d_320x240_fn, U8G_COM_PARALLEL); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c new file mode 100644 index 000000000..47ba18d4e --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c @@ -0,0 +1,110 @@ +/* + + u8g_dev_ks0108_128x64.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + ADDRESS = 0 (Command Mode) + 0x03f Display On + 0x0c0 Start Display at line 0 + 0x040 | y write to y address (y:0..63) + 0x0b8 | x write to page [0..7] + + + u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) + u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +static const uint8_t u8g_dev_ks0108_128x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip 1 */ + 0x03f, /* display on */ + 0x0c0, /* start at line 0 */ + U8G_ESC_DLY(20), /* delay 20 ms */ + U8G_ESC_CS(2), /* enable chip 2 */ + 0x03f, /* display on */ + 0x0c0, /* start at line 0 */ + U8G_ESC_DLY(20), /* delay 20 ms */ + U8G_ESC_CS(0), /* disable all chips */ + U8G_ESC_END /* end of sequence */ +}; + + +uint8_t u8g_dev_ks0108_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ks0108_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 2); + u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ + u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, 64, pb->buf); + u8g_SetChipSelect(u8g, dev, 0); + + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ + u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, 64, 64+(uint8_t *)pb->buf); + u8g_SetChipSelect(u8g, dev, 0); + + } + break; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ks0108_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_PARALLEL); +U8G_PB_DEV(u8g_dev_ks0108_128x64_fast, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_FAST_PARALLEL); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c new file mode 100644 index 000000000..b7bf6755e --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c @@ -0,0 +1,147 @@ +/* + + u8g_dev_lc7981_160x80.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 160 +#define HEIGHT 80 +#define PAGE_HEIGHT 8 + + +/* + code ideas: + https://github.com/vsergeev/embedded-drivers/tree/master/avr-lc7981 + data sheets: + http://www.lcd-module.de/eng/pdf/zubehoer/lc7981.pdf + http://www.lcd-module.de/pdf/grafik/w160-6.pdf +*/ + +static const uint8_t u8g_dev_lc7981_160x80_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(1), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + + U8G_ESC_ADR(1), /* instruction mode */ + 0x000, /* mode register */ + U8G_ESC_ADR(0), /* data mode */ + 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x001, /* character/bits per pixel pitch */ + U8G_ESC_ADR(0), /* data mode */ + 0x007, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x002, /* number of chars/byte width of the screen */ + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8-1, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x003, /* time division */ + U8G_ESC_ADR(0), /* data mode */ + 0x07f, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x008, /* display start low */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x009, /* display start high */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_DLY(10), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_160x80_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_lc7981_160x80_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_160x80_fn, U8G_COM_FAST_PARALLEL); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c new file mode 100644 index 000000000..272b7c4cb --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c @@ -0,0 +1,145 @@ +/* + + u8g_dev_lc7981_240x128.c + + Hitachi Display SP14N002 + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 240 +#define HEIGHT 128 +#define PAGE_HEIGHT 8 + + +/* + http://www.mark-products.com/graphics.htm#240x128%20Pixel%20Format +*/ + +static const uint8_t u8g_dev_lc7981_240x128_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(1), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + + U8G_ESC_ADR(1), /* instruction mode */ + 0x000, /* mode register */ + U8G_ESC_ADR(0), /* data mode */ + 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x001, /* character/bits per pixel pitch */ + U8G_ESC_ADR(0), /* data mode */ + 0x007, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x002, /* number of chars/byte width of the screen */ + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8-1, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x003, /* time division */ + U8G_ESC_ADR(0), /* data mode */ + 0x07f, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x008, /* display start low */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x009, /* display start high */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_DLY(10), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_lc7981_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x128_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_lc7981_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x128_fn, U8G_COM_FAST_PARALLEL); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c new file mode 100644 index 000000000..781f1d90a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c @@ -0,0 +1,145 @@ +/* + + u8g_dev_lc7981_240x64.c + + Tested with Nan Ya LM_J6_003_ + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 240 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + + +/* + http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format +*/ + +static const uint8_t u8g_dev_lc7981_240x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(1), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + + U8G_ESC_ADR(1), /* instruction mode */ + 0x000, /* mode register */ + U8G_ESC_ADR(0), /* data mode */ + 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x001, /* character/bits per pixel pitch */ + U8G_ESC_ADR(0), /* data mode */ + 0x007, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x002, /* number of chars/byte width of the screen */ + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8-1, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x003, /* time division */ + U8G_ESC_ADR(0), /* data mode */ + 0x07f, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x008, /* display start low */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x009, /* display start high */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_DLY(10), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_lc7981_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_lc7981_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x64_fn, U8G_COM_FAST_PARALLEL); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c new file mode 100644 index 000000000..d9ae9369f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c @@ -0,0 +1,145 @@ +/* + + u8g_dev_lc7981_320x64.c + + Note: Requires 16 bit mode (Must be enabled in u8g.h) + + Tested with Varitronix MGLS32064-03.pdf + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 320 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + + +/* + http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS32064-03.pdf +*/ + +static const uint8_t u8g_dev_lc7981_320x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(1), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + + U8G_ESC_ADR(1), /* instruction mode */ + 0x000, /* mode register */ + U8G_ESC_ADR(0), /* data mode */ + 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x001, /* character/bits per pixel pitch */ + U8G_ESC_ADR(0), /* data mode */ + 0x007, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x002, /* number of chars/byte width of the screen */ + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8-1, /* 8 bits per pixel */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x003, /* time division */ + U8G_ESC_ADR(0), /* data mode */ + 0x07f, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x008, /* display start low */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_ADR(1), /* instruction mode */ + 0x009, /* display start high */ + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* */ + + U8G_ESC_DLY(10), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_lc7981_320x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_320x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); + + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_lc7981_320x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_320x64_fn, U8G_COM_FAST_PARALLEL); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c new file mode 100644 index 000000000..0e3907749 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c @@ -0,0 +1,67 @@ +/* + + u8g_dev_null.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +uint8_t u8g_dev_null(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: /* most often used command */ + break; + case U8G_DEV_MSG_SET_PIXEL: + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + break; + case U8G_DEV_MSG_PAGE_NEXT: + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return 1; +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + } + return 1; +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c new file mode 100644 index 000000000..4cc011379 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c @@ -0,0 +1,110 @@ +/* + + u8g_dev_pcd8544_84x48.c + + Display: Nokia 84x48 + + Status: Tested with PCF8812 Display + + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 84 +#define HEIGHT 48 +#define PAGE_HEIGHT 8 + + +static const uint8_t u8g_dev_pcd8544_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ + 0x006, /* temp. control: b10 = 2 */ + 0x013, /* bias system 1:48 */ + 0x0c0, /* medium Vop */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal operation */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00d, /* display on, invert */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_pcd8544_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ + u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + /* the contrast adjustment does not work, needs to be analysed */ + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ + u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_pcd8544_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_SW_SPI); + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c new file mode 100644 index 000000000..3ac57884f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c @@ -0,0 +1,123 @@ +/* + + u8g_dev_pcf8812_96x65.c + + Display: Nokia 96x65 + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + om6206 comaptible to pcf8812 ? + + Status: Tested + + + Display Controller Seen in + LPH7366 (9 pins, 84x48) PCD8544 Nokia 5110 / 5120 / 5130 / 5160 / 6110 / 6150 + LPH7677 (8 pins, 84x48) PCD8544 Nokia 3210 + LPH7779 (8 pins, 84x48) PCD8544 Nokia 3310 / 3315 / 3330 / 3110, also 3410? + ??? PCD8544 Nokia 5110 / 6110 + LPH7690 ? (96x65) PCF8455/OM6202 Nokia 3410 + LPH7690 ? (96x65?) SED1565/S1D15605 Nokia 7110 / 3510? + LPH7690 ??? Nokia 6210 + + + +*/ + +#include "u8g.h" + +#define WIDTH 96 +#define HEIGHT 65 +#define PAGE_HEIGHT 8 + + +static const uint8_t u8g_dev_pcf8812_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ + 0x006, /* temp. control: b10 = 2 */ + 0x013, /* bias system 1:48 */ + 0x080 | 0x040, /* medium Vop */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal operation */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00d, /* display on, invert */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_pcf8812_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcf8812_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ + u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + /* the contrast adjustment does not work, needs to be analysed */ + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ + u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ +U8G_PB_DEV(u8g_dev_pcf8812_96x65_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_SW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c new file mode 100644 index 000000000..3b0bcd625 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c @@ -0,0 +1,107 @@ +/* + + u8g_dev_sbn1661_122x32.c + + WG12232 display with 2xSBN1661 / SED1520 controller (122x32 display) + At the moment only available in the Arduino Environment + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 122 +#define HEIGHT 32 +#define PAGE_HEIGHT 8 + + +static const uint8_t u8g_dev_sbn1661_122x32_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip 1 */ + 0x0af, /* display on */ + 0x0c0, /* display start at line 0 */ + 0x0a0, /* a0: ADC forward, a1: ADC reverse */ + 0x0a9, /* a8: 1/16, a9: 1/32 duty */ + U8G_ESC_CS(2), /* enable chip 2 */ + 0x0af, /* display on */ + 0x0c0, /* display start at line 0 */ + 0x0a0, /* a0: ADC forward, a1: ADC reverse */ + 0x0a9, /* a8: 1/16, a9: 1/32 duty */ + + U8G_ESC_CS(0), /* disable chip */ + + + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_sbn1661_122x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_sbn1661_122x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ + u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/2, pb->buf); + + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 2); + u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ + u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/2, WIDTH/2+(uint8_t *)pb->buf); + + u8g_SetChipSelect(u8g, dev, 0); + + } + break; + case U8G_DEV_MSG_CONTRAST: + break; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ +U8G_PB_DEV(u8g_dev_sbn1661_122x32 , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sbn1661_122x32_fn, u8g_com_arduino_no_en_parallel_fn); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c new file mode 100644 index 000000000..8f294374b --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c @@ -0,0 +1,247 @@ +/* + + u8g_dev_ssd1306_128x32.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + 23 Feb 2013: Fixed, Issue 147 + +*/ + + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 32 +#define PAGE_HEIGHT 8 + + +/* init sequence adafruit 128x32 OLED (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x32_adafruit1_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x000, /* */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x09f, /* [1] set contrast control */ + 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +/* init sequence adafruit 128x32 OLED (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x32_adafruit2_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x000, /* */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x0cf, /* [2] set contrast control */ + 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +/* init sequence adafruit 128x32 OLED (TESTED - WORKING 23.02.13), like adafruit3, but with page addressing mode */ +static const uint8_t u8g_dev_ssd1306_128x32_adafruit3_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x01f, /* Feb 23, 2013: 128x32 OLED: 0x01f, 128x64 OLED 0x03f */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 128x32 OLED: 0x002, 128x64 OLED 0x012 */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x0cf, /* [2] set contrast control */ + 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +/* init sequence Univision datasheet (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x32_univision_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* multiplex ratio */ + 0x0d3, 0x000, /* display offset */ + 0x040, /* start line */ + 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x09f, /* set contrast control */ + 0x0d9, 0x022, /* pre-charge period */ + 0x0db, 0x040, /* vcomh deselect level */ + 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +/* select one init sequence here */ +//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_univision_init_seq +//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit1_init_seq +//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit2_init_seq +#define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit3_init_seq + + +static const uint8_t u8g_dev_ssd1306_128x32_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr. to 0 */ + 0x000, /* set lower 4 bit of the col adr. to 4 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_ssd1306_128x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; +} + + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ssd1306_128x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1306_128x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1306_128x32_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SSD_I2C); + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c new file mode 100644 index 000000000..a49b2d806 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c @@ -0,0 +1,237 @@ +/* + + u8g_dev_ssd1306_128x64.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* init sequence adafruit 128x64 OLED (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x64_adafruit1_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x000, /* */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x09f, /* [1] set contrast control */ + 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +/* init sequence adafruit 128x64 OLED (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x64_adafruit2_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x000, /* */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x0cf, /* [2] set contrast control */ + 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +/* init sequence adafruit 128x64 OLED (NOT TESTED), like adafruit3, but with page addressing mode */ +static const uint8_t u8g_dev_ssd1306_128x64_adafruit3_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* */ + + 0x0d3, 0x000, /* */ + + 0x040, /* start line */ + + 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ + + 0x020, 0x002, /* 2012-05-27: page addressing mode */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x0cf, /* [2] set contrast control */ + 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ + 0x0db, 0x040, /* vcomh deselect level */ + + 0x02e, /* 2012-05-27: Deactivate scroll */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +/* init sequence Univision datasheet (NOT TESTED) */ +static const uint8_t u8g_dev_ssd1306_128x64_univision_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x0ae, /* display off, sleep mode */ + 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ + 0x0a8, 0x03f, /* multiplex ratio */ + 0x0d3, 0x000, /* display offset */ + 0x040, /* start line */ + 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ + 0x0a1, /* segment remap a0/a1*/ + 0x0c8, /* c0: scan dir normal, c8: reverse */ + 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ + 0x081, 0x09f, /* set contrast control */ + 0x0d9, 0x022, /* pre-charge period */ + 0x0db, 0x040, /* vcomh deselect level */ + 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ + 0x0a4, /* output ram to display */ + 0x0a6, /* none inverted normal display mode */ + 0x0af, /* display on */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +/* select one init sequence here */ +//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_univision_init_seq +//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit1_init_seq +//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit2_init_seq +#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit3_init_seq + + +static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 4 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_ssd1306_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ssd1306_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1306_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1306_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SSD_I2C); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c new file mode 100644 index 000000000..d16013fb7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c @@ -0,0 +1,144 @@ +/* + + u8g_dev_ssd1309_128x64.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + + +/* ssd1309 ini sequence*/ +static const uint8_t u8g_dev_ssd1309_128x64_init_seq[] PROGMEM={ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0xfd,0x12, /*Command Lock */ + 0xae, /*Set Display Off */ + 0xd5,0xa0, /*set Display Clock Divide Ratio/Oscillator Frequency */ + 0xa8,0x3f, /*Set Multiplex Ratio */ + 0x3d,0x00, /*Set Display Offset*/ + 0x40, /*Set Display Start Line*/ + 0xa1, /*Set Segment Re-Map*/ + 0xc8, /*Set COM Output Scan Direction*/ + 0xda,0x12, /*Set COM Pins Hardware Configuration*/ + 0x81,0xdf, /*Set Current Control */ + 0xd9,0x82, /*Set Pre-Charge Period */ + 0xdb,0x34, /*Set VCOMH Deselect Level */ + 0xa4, /*Set Entire Display On/Off */ + 0xa6, /*Set Normal/Inverse Display*/ + U8G_ESC_VCC(1), /*Power up VCC & Stabilized */ + U8G_ESC_DLY(50), + 0xaf, /*Set Display On */ + U8G_ESC_DLY(50), + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +/* select one init sequence here */ + #define u8g_dev_ssd1309_128x64_init_seq u8g_dev_ssd1309_128x64_init_seq + + + static const uint8_t u8g_dev_ssd1309_128x64_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 4 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_ssd1309_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ssd1309_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1309_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1309_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SSD_I2C); + + \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c new file mode 100644 index 000000000..24b94ffc7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c @@ -0,0 +1,334 @@ +/* + + u8g_dev_ssd1322_nhd31oled_bw.c + + 1-Bit (BW) Driver for SSD1322 Controller (OLED Display) + Tested with NHD-3.12-25664 + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#include "u8g.h" + +/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ +#if defined(U8G_16BIT) +#define WIDTH 256 +#else +#define WIDTH 248 +#endif +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* + http://www.newhavendisplay.com/app_notes/OLED_25664.txt + http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 +*/ + +static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0fd, /* lock command */ + U8G_ESC_ADR(1), /* data mode */ + 0x012, /* unlock */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ae, /* display off, sleep mode */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b3, + U8G_ESC_ADR(1), /* data mode */ + 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ca, /* multiplex ratio */ + U8G_ESC_ADR(1), /* data mode */ + 0x03f, /* 1/64 Duty (0x0F~0x3F) */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a2, + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* display offset, shift mapping ram counter */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a1, + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* display start line */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a0, /* Set Re-Map / Dual COM Line Mode */ + U8G_ESC_ADR(1), /* data mode */ + 0x014, /* was 0x014 */ + 0x011, /* was 0x011 */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ab, + U8G_ESC_ADR(1), /* data mode */ + 0x001, /* Enable Internal VDD Regulator */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b4, /* Display Enhancement A */ + U8G_ESC_ADR(1), /* data mode */ + 0x0a0, + 0x005|0x0fd, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0c1, /* contrast */ + U8G_ESC_ADR(1), /* data mode */ + 0x09f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0c7, /* Set Scale Factor of Segment Output Current Control */ + U8G_ESC_ADR(1), /* data mode */ + 0x00f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b9, /* linear gray scale */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ + U8G_ESC_ADR(1), /* data mode */ + 0x0e2, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0d1, /* Display Enhancement B */ + U8G_ESC_ADR(1), /* data mode */ + 0x082|0x020, + 0x020, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0bb, /* precharge voltage */ + U8G_ESC_ADR(1), /* data mode */ + 0x01f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b6, /* precharge period */ + U8G_ESC_ADR(1), /* data mode */ + 0x008, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0be, /* vcomh */ + U8G_ESC_ADR(1), /* data mode */ + 0x007, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a6, /* normal display */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a9, /* exit partial display */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0af, /* display on */ + + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + U8G_ESC_ADR(1), /* data mode */ + 0x01c, /* start at column 0 */ + 0x05b, /* end column */ + U8G_ESC_ADR(0), /* instruction mode */ + 0x075, /* row address... */ + U8G_ESC_ADR(1), /* data mode */ + U8G_ESC_END /* end of sequence */ +}; + +static void u8g_dev_ssd1322_1bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) +{ + uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; + row += delta_row; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq); + + u8g_WriteByte(u8g, dev, row); /* start at the selected row */ + u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ + + u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ + u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +uint8_t u8g_dev_ssd1322_nhd31oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 3; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x0ff); + u8g_WriteByte(u8g, dev, 0x0ff); +#endif + u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x0ff); + u8g_WriteByte(u8g, dev, 0x0ff); +#endif + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); +} + + +uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 3; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x0ff); + u8g_WriteByte(u8g, dev, 0x0ff); +#endif + u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x0ff); + u8g_WriteByte(u8g, dev, 0x0ff); +#endif + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_HW_SPI); + +#define DWIDTH (WIDTH*2) +uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_buf[DWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_bw_buf}; +u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_HW_SPI }; + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c new file mode 100644 index 000000000..5b509641c --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c @@ -0,0 +1,333 @@ +/* + + u8g_dev_ssd1322_nhd31oled_gr.c + + 2-Bit (4L) Driver for SSD1322 Controller (OLED Display) + Tested with NHD-3.12-25664 + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#include "u8g.h" + +/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ +#if defined(U8G_16BIT) +#define WIDTH 256 +#else +#define WIDTH 248 +#endif +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* + http://www.newhavendisplay.com/app_notes/OLED_25664.txt + http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 +*/ + +static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0fd, /* lock command */ + U8G_ESC_ADR(1), /* data mode */ + 0x012, /* unlock */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ae, /* display off, sleep mode */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b3, + U8G_ESC_ADR(1), /* data mode */ + 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ca, /* multiplex ratio */ + U8G_ESC_ADR(1), /* data mode */ + 0x03f, /* 1/64 Duty (0x0F~0x3F) */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a2, + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* display offset, shift mapping ram counter */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a1, + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* display start line */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a0, /* Set Re-Map / Dual COM Line Mode */ + U8G_ESC_ADR(1), /* data mode */ + 0x014, /* was 0x014 */ + 0x011, /* was 0x011 */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0ab, + U8G_ESC_ADR(1), /* data mode */ + 0x001, /* Enable Internal VDD Regulator */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b4, /* Display Enhancement A */ + U8G_ESC_ADR(1), /* data mode */ + 0x0a0, + 0x005|0x0fd, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0c1, /* contrast */ + U8G_ESC_ADR(1), /* data mode */ + 0x09f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0c7, /* Set Scale Factor of Segment Output Current Control */ + U8G_ESC_ADR(1), /* data mode */ + 0x00f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b9, /* linear gray scale */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ + U8G_ESC_ADR(1), /* data mode */ + 0x0e2, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0d1, /* Display Enhancement B */ + U8G_ESC_ADR(1), /* data mode */ + 0x082|0x020, + 0x020, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0bb, /* precharge voltage */ + U8G_ESC_ADR(1), /* data mode */ + 0x01f, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0b6, /* precharge period */ + U8G_ESC_ADR(1), /* data mode */ + 0x008, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0be, /* vcomh */ + U8G_ESC_ADR(1), /* data mode */ + 0x007, + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a6, /* normal display */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0a9, /* exit partial display */ + + U8G_ESC_ADR(0), /* instruction mode */ + 0x0af, /* display on */ + + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + U8G_ESC_ADR(1), /* data mode */ + 0x01c, /* start at column 0 */ + 0x05b, /* end column */ + U8G_ESC_ADR(0), /* instruction mode */ + 0x075, /* row address... */ + U8G_ESC_ADR(1), /* data mode */ + U8G_ESC_END /* end of sequence */ +}; + +static void u8g_dev_ssd1322_2bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) +{ + uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; + row += delta_row; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq); + + u8g_WriteByte(u8g, dev, row); /* start at the selected row */ + u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ + + u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ + u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_ssd1322_nhd31oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 2; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x00); + u8g_WriteByte(u8g, dev, 0x00); +#endif + u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x00); + u8g_WriteByte(u8g, dev, 0x00); +#endif + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); +} + + +uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 3; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x00); + u8g_WriteByte(u8g, dev, 0x00); +#endif + u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); +#if !defined(U8G_16BIT) + u8g_WriteByte(u8g, dev, 0x00); + u8g_WriteByte(u8g, dev, 0x00); +#endif + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_HW_SPI); + +#define DWIDTH (WIDTH*2) +uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_buf[DWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_gr_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_gr_buf}; +u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_HW_SPI }; + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c new file mode 100644 index 000000000..95853bdf2 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c @@ -0,0 +1,263 @@ +/* + + u8g_dev_ssd1325_nhd27oled_bw.c + + 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) + Tested with NHD-2.7-12864UCY3 + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#ifdef OBSOLETE_CODE + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ +static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off, sleep mode */ + 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ + 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ + 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ + 0x0a1, 0x000, /* display start line */ + 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ + 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ + 0x086, /* full current range (0x084, 0x085, 0x086) */ + 0x0b8, /* set gray scale table */ + 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, + 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ + 0x0b2, 0x051, /* frame frequency (row period) */ + 0x0b1, 0x055, /* phase length */ + 0x0bc, 0x010, /* pre-charge voltage level */ + 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0be, 0x01c, /* VCOMH voltage */ + 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0a5, /* all pixel on */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display mode */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + 0x000, /* start at column 0 */ + 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ + 0x075, /* row address... */ + U8G_ESC_END /* end of sequence */ +}; + + +static void u8g_dev_ssd1325_1bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); + + page <<= 3; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 7; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static void u8g_dev_ssd1325_1bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); + + page <<= 1; + page += is_odd; + + page <<= 3; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 7; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +/* assumes row autoincrement and activated nibble remap */ +#ifdef OLD +static void _OLD_u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) +{ + uint8_t d, cnt; + cnt = 8; + do + { + d = 0; + if ( left & 1 ) + d |= 0x0f0; + if ( right & 1 ) + d |= 0x00f; + u8g_WriteByte(u8g, dev, d); + left >>= 1; + right >>= 1; + cnt--; + }while ( cnt > 0 ); +} +#endif + +static void u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) +{ + uint8_t d, cnt; + static uint8_t buf[8]; + cnt = 8; + do + { + d = 0; + if ( left & 128 ) + d |= 0x0f0; + if ( right & 128 ) + d |= 0x00f; + cnt--; + buf[cnt] = d; + left <<= 1; + right <<= 1; + }while ( cnt > 0 ); + u8g_WriteSequence(u8g, dev, 8, buf); +} + +static void u8g_dev_ssd1325_1bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t cnt, left, right; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + ptr = pb->buf; + cnt = pb->width; + if ( is_odd ) + ptr += cnt; + cnt >>= 1; + do + { + left = *ptr++; + right = *ptr++; + u8g_dev_ssd1325_1bit_write_16_pixel(u8g, dev, left, right); + cnt--; + } while( cnt > 0 ); +} + +uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1325_1bit_prepare_page(u8g, dev); + u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 0); + u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); + u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 1); + u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 1); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + } + return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); +} + +/* disabled, see bw_new.c */ +/* +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); +*/ + +/* +uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; +*/ + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c new file mode 100644 index 000000000..c9f4a51ad --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c @@ -0,0 +1,232 @@ +/* + + u8g_dev_ssd1325_nhd27oled_bw.c + + 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) + Horizontal architecture, completly rewritten + Tested with NHD-2.7-12864UCY3 + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#include "u8g.h" + +/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ +#define WIDTH 128 +#define HEIGHT 64 + +/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ +static const uint8_t u8g_dev_ssd1325_nhd_27_12864_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off, sleep mode */ + 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ + 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ + 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ + 0x0a1, 0x000, /* display start line */ + 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ + 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1) */ + 0x086, /* full current range (0x084, 0x085, 0x086) */ + 0x0b8, /* set gray scale table */ + 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, + + 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ + 0x0b2, 0x051, /* frame frequency (row period) */ + 0x0b1, 0x055, /* phase length */ + 0x0bc, 0x010, /* pre-charge voltage level */ + 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0be, 0x01c, /* VCOMH voltage */ + 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0a4, /* normal display mode */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1325_prepare_row_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + 0x000, /* start at column 0 */ + 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ + 0x075, /* row address... */ + U8G_ESC_END /* end of sequence */ +}; + +static void u8g_dev_ssd1325_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) +{ + uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; + row += delta_row; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_prepare_row_seq); + + u8g_WriteByte(u8g, dev, row); /* start at the selected row */ + u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ + + //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ + //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +static uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + //case U8G_DEV_MSG_IS_BBX_INTERSECTION: + // return u8g_pb_IsIntersection((u8g_pb_t *)(dev->dev_mem), (u8g_dev_arg_bbx_t *)arg); + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 3; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ + u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); +} + +static uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 3; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ + u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + break; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); +} + + + +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); + +uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c new file mode 100644 index 000000000..d00d18ec4 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c @@ -0,0 +1,255 @@ +/* + + u8g_dev_ssd1325_nhd27oled_gr.c + + 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) + Tested with NHD-2.7-12864UCY3 + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#ifdef OBSOLETE_CODE + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 + +/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ +static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off, sleep mode */ + 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ + 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ + 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ + 0x0a1, 0x000, /* display start line */ + 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ + 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ + 0x086, /* full current range (0x084, 0x085, 0x086) */ + 0x0b8, /* set gray scale table */ + //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, + 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 + 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ + 0x0b2, 0x051, /* frame frequency (row period) */ + 0x0b1, 0x055, /* phase length */ + 0x0bc, 0x010, /* pre-charge voltage level */ + 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0be, 0x01c, /* VCOMH voltage */ + 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0a5, /* all pixel on */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display mode */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + 0x000, /* start at column 0 */ + 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ + 0x075, /* row address... */ + U8G_ESC_END /* end of sequence */ +}; + + +static void u8g_dev_ssd1325_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); + + page <<= 2; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 3; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static void u8g_dev_ssd1325_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); + + page <<= 1; + page += is_odd; + + + page <<= 2; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 3; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +/* assumes row autoincrement and activated nibble remap */ +static void u8g_dev_ssd1325_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) +{ + uint8_t d, tmp, cnt; + cnt = 4; + do + { + d = left; + d &= 3; + d <<= 4; + tmp = right; + tmp &= 3; + d |= tmp; + d <<= 2; + u8g_WriteByte(u8g, dev, d); + left >>= 2; + right >>= 2; + cnt--; + }while ( cnt > 0 ); +} + +static void u8g_dev_ssd1325_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t cnt, left, right; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + cnt = pb->width; + cnt >>= 1; + ptr = pb->buf; + do + { + left = *ptr++; + right = *ptr++; + u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); + cnt--; + } while( cnt > 0 ); +} + +static void u8g_dev_ssd1325_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t cnt, left, right; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + ptr = pb->buf; + cnt = pb->width; + if ( is_odd ) + ptr += cnt; + cnt >>= 1; + do + { + left = *ptr++; + right = *ptr++; + u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); + cnt--; + } while( cnt > 0 ); +} + +static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1325_2bit_prepare_page(u8g, dev); + u8g_dev_ssd1325_2bit_write_buffer(u8g, dev); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); +} + +static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 0); + u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 0); + u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 1); + u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 1); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); +} + +//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); +//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); + +//uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; +//u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; +//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; +//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; + + +#endif /* OBSOLETE_CODE */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c new file mode 100644 index 000000000..2e61d9a57 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c @@ -0,0 +1,227 @@ +/* + + u8g_dev_ssd1325_nhd27oled_gr.c + + 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) + Rewritten with new architecture + Tested with NHD-2.7-12864UCY3 + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 + +/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ +static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off, sleep mode */ + 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ + 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ + 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ + 0x0a1, 0x000, /* display start line */ + 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ + 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1), old values: 0x0a0 0x0a6 */ + 0x086, /* full current range (0x084, 0x085, 0x086) */ + 0x0b8, /* set gray scale table */ + //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, + 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 + 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ + 0x0b2, 0x051, /* frame frequency (row period) */ + 0x0b1, 0x055, /* phase length */ + 0x0bc, 0x010, /* pre-charge voltage level */ + 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0be, 0x01c, /* VCOMH voltage */ + 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0a4, /* normal display mode */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + 0x000, /* start at column 0 */ + 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ + 0x075, /* row address... */ + U8G_ESC_END /* end of sequence */ +}; + +static void u8g_dev_ssd1325_gr_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) +{ + uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; + row += delta_row; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); + + u8g_WriteByte(u8g, dev, row); /* start at the selected row */ + u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ + + //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ + //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ae, /* display off */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + + +static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 2; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ + u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); +} + + + +static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + uint8_t *p = pb->buf; + u8g_uint_t cnt; + cnt = pb->width; + cnt >>= 2; + + for( i = 0; i < pb->p.page_height; i++ ) + { + u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ + u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); + u8g_SetChipSelect(u8g, dev, 0); + p+=cnt; + } + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); + return 1; + } + return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); + +uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c new file mode 100644 index 000000000..5e3b44674 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c @@ -0,0 +1,299 @@ +/* + + u8g_dev_ssd1327_96x96_gr.c + + 2-Bit (graylevel) Driver for SSD1327 Controller (OLED Display) + Tested with Seedstudio 96x96 Oled (LY120) + http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + SSD130x Monochrom OLED Controller + SSD131x Character OLED Controller + SSD132x Graylevel OLED Controller + SSD1331 Color OLED Controller + +*/ + +#include "u8g.h" + +#define WIDTH 96 +#define HEIGHT 96 +#define XOFFSET 8 + +/* + http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 +*/ +static const uint8_t u8g_dev_ssd1327_2bit_96x96_init_seq[] PROGMEM = { + U8G_ESC_DLY(10), /* delay 10 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0fd, 0x012, /* unlock display, usually not required because the display is unlocked after reset */ + 0x0ae, /* display off, sleep mode */ + 0x0a8, 0x05f, /* multiplex ratio: 0x05f * 1/64 duty */ + 0x0a1, 0x000, /* display start line */ + 0x0a2, 0x060, /* display offset, shift mapping ram counter */ + //0x0a2, 0x04c, /* NHD: display offset, shift mapping ram counter */ + 0x0a0, 0x046, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ + //0x0a0, 0x056, /* NHD: remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ + 0x0ab, 0x001, /* Enable internal VDD regulator (RESET) */ + 0x081, 0x053, /* contrast, brightness, 0..128, Newhaven: 0x040, LY120 0x053, 0x070 seems also ok */ + 0x0b1, 0x051, /* phase length */ + 0x0b3, 0x001, /* set display clock divide ratio/oscillator frequency */ + 0x0b9, /* use linear lookup table */ +#if 0 + 0x0b8, /* set gray scale table */ + //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, + 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 +#endif + 0x0bc, 0x008, /* pre-charge voltage level */ + 0x0be, 0x007, /* VCOMH voltage */ + 0x0b6, 0x001, /* second precharge */ + 0x0d5, 0x062, /* enable second precharge, internal vsl (bit0 = 0) */ + +#if 0 + // the following commands are not used by the SeeedGrayOLED sequence */ + 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ + 0x086, /* full current range (0x084, 0x085, 0x086) */ + 0x0b2, 0x051, /* frame frequency (row period) */ + 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ + 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ +#endif + + 0x0a5, /* all pixel on */ + //0x02e, /* no scroll (according to SeeedGrayOLED sequence) */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display mode */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* all pixel on */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display mode */ + + 0x015, /* column address... */ + 0x008, /* start at column 8, special for the LY120 ??? */ + 0x037, /* end at column 55, note: there are two pixel in one column */ + + 0x075, /* row address... */ + 0x008, + 0x05f, + + U8G_ESC_ADR(1), /* data mode */ + 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, + 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, + 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, + 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_ssd1327_2bit_96x96_prepare_page_seq[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x015, /* column address... */ + XOFFSET, /* start at column 8, special for the LY120 ??? */ + 0x037, /* end at column 55, note: there are two pixel in one column */ + 0x075, /* row address... */ + U8G_ESC_END /* end of sequence */ +}; + + +static void u8g_dev_ssd1327_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); + + page <<= 2; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 3; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +static void u8g_dev_ssd1327_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); + + page <<= 1; + page += is_odd; + + page <<= 2; + u8g_WriteByte(u8g, dev, page); /* start at the selected page */ + page += 3; + u8g_WriteByte(u8g, dev, page); /* end within the selected page */ + + u8g_SetAddress(u8g, dev, 1); /* data mode */ +} + +/* assumes row autoincrement and activated nibble remap */ +static void u8g_dev_ssd1327_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) +{ + uint8_t d, tmp, cnt; + static uint8_t buf[4]; + buf[0] = 0; + buf[1] = 0; + buf[2] = 0; + buf[3] = 0; + cnt = 0; + do + { + if ( left == 0 && right == 0 ) + break; + d = left; + d &= 3; + d <<= 4; + tmp = right; + tmp &= 3; + d |= tmp; + d <<= 2; + buf[cnt] = d; + left >>= 2; + right >>= 2; + cnt++; + }while ( cnt < 4 ); + u8g_WriteSequence(u8g, dev, 4, buf); +} + +static void u8g_dev_ssd1327_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t cnt, left, right; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + cnt = pb->width; + cnt >>= 1; + ptr = pb->buf; + do + { + left = *ptr++; + right = *ptr++; + u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); + cnt--; + } while( cnt > 0 ); +} + +static void u8g_dev_ssd1327_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) +{ + uint8_t cnt, left, right; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + ptr = pb->buf; + cnt = pb->width; + if ( is_odd ) + ptr += cnt; + cnt >>= 1; + do + { + left = *ptr++; + right = *ptr++; + u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); + cnt--; + } while( cnt > 0 ); +} + +uint8_t u8g_dev_ssd1327_96x96_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1327_2bit_prepare_page(u8g, dev); + u8g_dev_ssd1327_2bit_write_buffer(u8g, dev); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_ssd1327_96x96_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 0); + u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 0); + u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 1); + u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 1); + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_i2c , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SSD_I2C); + +#define DWIDTH (2*WIDTH) +uint8_t u8g_dev_ssd1327_96x96_2x_buf[DWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_ssd1327_96x96_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1327_96x96_2x_buf}; +u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_HW_SPI }; +u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SSD_I2C }; + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c new file mode 100644 index 000000000..01fc9fc0c --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c @@ -0,0 +1,153 @@ +/* + + u8g_dev_st7565_64128n.c (Displaytech) + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7565_64128n_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + 0x0A2, /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ + 0x0A0, /* Normal ADC Select (according to Displaytech 64128N datasheet) */ + + 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ + 0x040, /* Display start line for Displaytech 64128N */ + + 0x028 | 0x04, /* power control: turn on voltage converter */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x06, /* power control: turn on voltage regulator */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x07, /* power control: turn on voltage follower */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x010, /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ + + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + + 0x081, /* set contrast */ + 0x01e, /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ + + + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_64128n_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0x10 */ + 0x000, /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_64128n_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_64128n_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7565_64128n_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_64128n_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_64128n_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_HW_SPI); + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c new file mode 100644 index 000000000..095ef369c --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c @@ -0,0 +1,140 @@ +/* + + u8g_dev_st7565_dogm128.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +const uint8_t u8g_dev_st7565_dogm128_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line */ + 0x0a1, /* ADC set to reverse */ + 0x0c0, /* common output mode: set scan direction normal operation */ + 0x0a6, /* display normal (none reverse) */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x027, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x018, /* contrast value, EA default: 0x016 */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0a4, /* normal display (not all on) */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm128_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm128_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm128_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7565_dogm128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_dogm128_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_dogm128_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_HW_SPI); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c new file mode 100644 index 000000000..a76d54b3f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c @@ -0,0 +1,157 @@ +/* + + u8g_dev_st7565_dogm132.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 132 +#define HEIGHT 32 +#define PAGE_HEIGHT 8 + +static const uint8_t u8g_dev_st7565_dogm132_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line to 0 */ + 0x0a1, /* ADC set to reverse */ + 0x0c0, /* common output mode */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x023, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x01f, /* contrast value, EA default: 0x01f */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ + +#ifdef OBSOLETE_DOGM128 + 0x040, /* set display start line */ + 0x0c8, /* set scan direction inverse operation */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x027, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x018, /* contrast value, EA default: 0x016 */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ +#endif + + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm132_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm132_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_dogm132_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7565_dogm132_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_dogm132_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_dogm132_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c new file mode 100644 index 000000000..ab8ed39b6 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c @@ -0,0 +1,157 @@ +/* + + u8g_dev_st7565_lm6059.c (Adafruit display) + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7565_lm6059_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit, 0x0a2 does not work */ + /* the LM6059 vs LM6063, ADC and SHL have inverted settings */ + 0x0a0, /* 0x0a1: ADC set to normal (suggested for the LM6059), 0x0a0: Used by Adafruit -> normal mode */ + 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ + 0x060, /* set display start line */ + + 0x028 | 0x04, /* power control: turn on voltage converter */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x06, /* power control: turn on voltage regulator */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x07, /* power control: turn on voltage follower */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ + + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + + 0x081, /* set contrast */ + 0x018, /* contrast value*/ + + /*0x0ac,*/ /* indicator */ + /*0x000,*/ /* disable */ + + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_lm6059_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x001, /* set lower 4 bit of the col adr */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_lm6059_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_lm6059_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +uint8_t u8g_dev_st7565_lm6059_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_lm6059_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_lm6059_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_HW_SPI); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c new file mode 100644 index 000000000..47ccb1ec7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c @@ -0,0 +1,188 @@ +/* + + u8g_dev_st7565_lm6063.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +#ifdef OLD_ADAFRUIT_CODE +static const uint8_t OLD_u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line */ + 0x0a1, /* ADC set to reverse */ + 0x0c8, /* common output mode: set scan direction normal operation/SHL Select / 17 Jan: seems to be a bug, must be 0x0c0 */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + /*0x0f8,*/ /* set booster ratio to */ + /*0x000, */ /* 4x */ + /*0x027,*/ /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x018, /* contrast value*/ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; +#endif + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit */ + 0x0a1, /* 0x0a1: ADC set to reverse (suggested for the LM6063), 0x0a0: Used by Adafruit -> normal mode */ + 0x0c0, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ + 0x040, /* set display start line */ + + 0x028 | 0x04, /* power control: turn on voltage converter */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x06, /* power control: turn on voltage regulator */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x028 | 0x07, /* power control: turn on voltage follower */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ + + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + + 0x081, /* set contrast */ + 0x018, /* contrast value*/ + + /*0x0ac,*/ /* indicator */ + /*0x000,*/ /* disable */ + + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_lm6063_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_st7565_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_st7565_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +uint8_t u8g_dev_st7565_lm6063_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_lm6063_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_lm6063_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_HW_SPI); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c new file mode 100644 index 000000000..ed80a0693 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c @@ -0,0 +1,143 @@ +/* + + u8g_dev_st7565_nhd_c12832.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 32 +#define PAGE_HEIGHT 8 + +static const uint8_t u8g_dev_st7565_c12832_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line to 0 */ + 0x0a0, /* ADC set, values: a0=normal, a1=reverse */ + 0x0c8, /* common output mode: c0=normal, c8=reverse */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x023, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x00a, /* contrast value */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ + + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_c12832_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_c12832_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_c12832_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7565_c12832_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_SPI); +U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_PARALLEL); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c new file mode 100644 index 000000000..5e3f8b9fe --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c @@ -0,0 +1,145 @@ +/* + + u8g_dev_st7565_nhd_c12864.c + + Support for the NHD-C12864A1Z-FSB-FBW (Newhaven Display) + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +const uint8_t u8g_dev_st7565_nhd_c12864_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(10), /* do reset low pulse with (10*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line */ + 0x0a1, /* ADC set to reverse */ + 0x0c0, /* common output mode: set scan direction normal operation */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x027, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x008, /* contrast: 0x008 is a good value for NHD C12864, Nov 2012: User reports that 0x1a is much better */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_nhd_c12864_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x004, /* set lower 4 bit of the col adr to 4 (NHD C12864) */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_c12864_sleep_on[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0ac, /* static indicator off */ + 0x000, /* indicator register set (not sure if this is required) */ + 0x0ae, /* display off */ + 0x0a5, /* all points on */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_st7565_c12864_sleep_off[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x0a4, /* all points off */ + 0x0af, /* display on */ + U8G_ESC_DLY(50), /* delay 50 ms */ + U8G_ESC_CS(1), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7565_nhd_c12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + case U8G_DEV_MSG_SLEEP_ON: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); + return 1; + case U8G_DEV_MSG_SLEEP_OFF: + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_HW_SPI); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c new file mode 100644 index 000000000..4851017aa --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c @@ -0,0 +1,420 @@ +/* + + u8g_dev_st7687_c144mvgd.c (1.44" TFT) + + Status: Started, but not finished + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 128 +#define PAGE_HEIGHT 8 + + +#ifdef FIRST_VERSION +/* +see also: read.pudn.com/downloads115/sourcecode/app/484503/LCM_Display.c__.htm +http://en.pudn.com/downloads115/sourcecode/app/detail484503_en.html +*/ + +static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + 0x001, /* A0=0, SW reset */ + U8G_ESC_DLY(200), /* delay 200 ms */ + + 0x0d7, /* EEPROM data auto re-load control */ + U8G_ESC_ADR(1), /* data mode */ + 0x09f, /* ARD = 1 */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + 0x0e0, /* EEPROM control in */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_DLY(100), /* delay 100 ms */ + +#ifdef NOT_REQUIRED + 0x0fa, /* EEPROM function selection 8.1.66 */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_DLY(100), /* delay 100 ms */ +#endif + + 0x0e3, /* Read from EEPROM, 8.1.55 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + 0x0e1, /* EEPROM control out, 8.1.53 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + //0x028, /* display off */ + 0x011, /* Sleep out & booster on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + 0x0c0, /* Vop setting, 8.1.42 */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* */ + 0x001, /* 3.6 + 256*0.04 = 13.84 Volt */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + 0x0c3, /* Bias selection, 8.1.45 */ + U8G_ESC_ADR(1), /* data mode */ + 0x003, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c4, /* Booster setting 8.1.46 */ + U8G_ESC_ADR(1), /* data mode */ + 0x007, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c5, /* ??? */ + U8G_ESC_ADR(1), /* data mode */ + 0x001, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0cb, /* FV3 with Booster x2 control, 8.1.47 */ + U8G_ESC_ADR(1), /* data mode */ + 0x001, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x036, /* Memory data access control, 8.1.28 */ + U8G_ESC_ADR(1), /* data mode */ + 0x080, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0b5, /* N-line control, 8.1.37 */ + U8G_ESC_ADR(1), /* data mode */ + 0x089, + U8G_ESC_ADR(0), /* instruction mode */ + + + 0x0d0, /* Analog circuit setting, 8.1.49 */ + U8G_ESC_ADR(1), /* data mode */ + 0x01d, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0b7, /* Com/Seg Scan Direction, 8.1.38 */ + U8G_ESC_ADR(1), /* data mode */ + 0x040, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x025, /* Write contrast, 8.1.17 */ + U8G_ESC_ADR(1), /* data mode */ + 0x03f, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x03a, /* Interface pixel format, 8.1.32 */ + U8G_ESC_ADR(1), /* data mode */ + 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0b0, /* Display Duty setting, 8.1.34 */ + U8G_ESC_ADR(1), /* data mode */ + 0x07f, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0f0, /* Frame Freq. in Temp range A,B,C and D, 8.1.59 */ + U8G_ESC_ADR(1), /* data mode */ + 0x007, + 0x00c, + 0x00c, + 0x015, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0f9, /* Frame RGB Value, 8.1.65 */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, + 0x005, + 0x008, + 0x00a, + 0x00c, + 0x00e, + 0x010, + 0x011, + 0x012, + 0x013, + 0x014, + 0x015, + 0x016, + 0x018, + 0x01a, + 0x01b, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0f9, /* Frame RGB Value, 8.1.65 */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, + 0x000, + 0x000, + 0x000, + 0x033, + 0x055, + 0x055, + 0x055, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x029, /* display on */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ + +}; + +#else + +/* +http://www.waitingforfriday.com/images/e/e3/FTM144D01N_test.zip +*/ + +static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + 0x011, /* Sleep out & booster on */ + U8G_ESC_DLY(5), /* delay 5 ms */ + + 0x03a, /* Interface pixel format, 8.1.32 */ + U8G_ESC_ADR(1), /* data mode */ + 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ + U8G_ESC_ADR(0), /* instruction mode */ + + + 0x026, /* SET_GAMMA_CURVE */ + U8G_ESC_ADR(1), /* data mode */ + 0x004, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0f2, /* GAM_R_SEL */ + U8G_ESC_ADR(1), /* data mode */ + 0x001, /* enable gamma adj */ + U8G_ESC_ADR(0), /* instruction mode */ + + + 0x0e0, /* POSITIVE_GAMMA_CORRECT */ + U8G_ESC_ADR(1), /* data mode */ + 0x3f, + 0x25, + 0x1c, + 0x1e, + 0x20, + 0x12, + 0x2a, + 0x90, + 0x24, + 0x11, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0e1, /* NEGATIVE_GAMMA_CORRECT */ + U8G_ESC_ADR(1), /* data mode */ + 0x20, + 0x20, + 0x20, + 0x20, + 0x05, + 0x00, + 0x15, + 0xa7, + 0x3d, + 0x18, + 0x25, + 0x2a, + 0x2b, + 0x2b, + 0x3a, + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0b1, /* FRAME_RATE_CONTROL1 */ + U8G_ESC_ADR(1), /* data mode */ + 0x008, /* DIVA = 8 */ + 0x008, /* VPA = 8 */ + U8G_ESC_ADR(0), /* instruction mode */ + + + 0x0b4, /* DISPLAY_INVERSION */ + U8G_ESC_ADR(1), /* data mode */ + 0x007, /* NLA = 1, NLB = 1, NLC = 1 (all on Frame Inversion) */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c0, /* POWER_CONTROL1 */ + U8G_ESC_ADR(1), /* data mode */ + 0x00a, /* VRH = 10: GVDD = 4.30 */ + 0x002, /* VC = 2: VCI1 = 2.65 */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c1, /* POWER_CONTROL2 */ + U8G_ESC_ADR(1), /* data mode */ + 0x002, /* BT = 2: AVDD = 2xVCI1, VCL = -1xVCI1, VGH = 5xVCI1, VGL = -2xVCI1 */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c5, /* VCOM_CONTROL1 */ + U8G_ESC_ADR(1), /* data mode */ + 0x050, /* VMH = 80: VCOMH voltage = 4.5 */ + 0x05b, /* VML = 91: VCOML voltage = -0.225 */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x0c7, /* VCOM_OFFSET_CONTROL */ + U8G_ESC_ADR(1), /* data mode */ + 0x040, /* nVM = 0, VMF = 64: VCOMH output = VMH, VCOML output = VML */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x02a, /* SET_COLUMN_ADDRESS */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* */ + 0x000, /* */ + 0x000, /* */ + 0x07f, /* */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x02b, /* SET_PAGE_ADDRESS */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* */ + 0x000, /* */ + 0x000, /* */ + 0x07f, /* */ + U8G_ESC_ADR(0), /* instruction mode */ + + 0x036, /* SET_ADDRESS_MODE */ + U8G_ESC_ADR(1), /* data mode */ + 0x000, /* Select display orientation */ + U8G_ESC_ADR(0), /* instruction mode */ + + + 0x029, /* display on */ + + 0x02c, /* write start */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ + +}; + +#endif + + + + +/* calculate bytes for Type B 4096 color display */ +static uint8_t get_byte_1(uint8_t v) +{ + v >>= 4; + v &= 0x0e; + return v; +} + +static uint8_t get_byte_2(uint8_t v) +{ + uint8_t w; + w = v; + w &= 3; + w = (w<<2) | w; + v <<= 3; + v &= 0x0e0; + w |= v; + return w; +} + +uint8_t u8g_dev_st7687_c144mvgd_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7687_c144mvgd_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i, j; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x02a ); /* Column address set 8.1.20 */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, 0x000 ); /* x0 */ + u8g_WriteByte(u8g, dev, WIDTH-1 ); /* x1 */ + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x02b ); /* Row address set 8.1.21 */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteByte(u8g, dev, y ); /* y0 */ + u8g_WriteByte(u8g, dev, y+PAGE_HEIGHT-1 ); /* y1 */ + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x02c ); /* Memory write 8.1.22 */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + + for( i = 0; i < PAGE_HEIGHT; i ++ ) + { + + for( j = 0; j < WIDTH; j ++ ) + { + u8g_WriteByte(u8g, dev, get_byte_1(*ptr) ); + u8g_WriteByte(u8g, dev, get_byte_2(*ptr) ); + ptr++; + } + } + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); +} + + +uint8_t u8g_st7687_c144mvgd_8h8_buf[WIDTH*8] U8G_NOCOMMON ; +u8g_pb_t u8g_st7687_c144mvgd_8h8_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_st7687_c144mvgd_8h8_buf}; + +u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, u8g_com_arduino_sw_spi_fn }; + +u8g_dev_t u8g_dev_st7687_c144mvgd_8bit = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c new file mode 100644 index 000000000..b0b18d34d --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c @@ -0,0 +1,171 @@ +/* + + u8g_dev_st7565_128x64.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7920_128x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ + 0x00c, /* display on, cursor & blink off; 0x08: all off */ + 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ + 0x002, /* disable scroll, enable CGRAM adress */ + 0x001, /* clear RAM, needs 1.6 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + + if ( y < 32 ) + { + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + } + else + { + u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ + } + + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_st7920_128x64_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 32; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + + if ( y < 32 ) + { + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + } + else + { + u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ + } + + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_st7920_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_SW_SPI); +U8G_PB_DEV(u8g_dev_st7920_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_HW_SPI); +U8G_PB_DEV(u8g_dev_st7920_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_FAST_PARALLEL); + +#define QWIDTH (WIDTH*4) +uint8_t u8g_dev_st7920_128x64_4x_buf[QWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_st7920_128x64_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_128x64_4x_buf}; +u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_SW_SPI }; +u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_HW_SPI }; +u8g_dev_t u8g_dev_st7920_128x64_4x_8bit = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_FAST_PARALLEL }; + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c new file mode 100644 index 000000000..28535e0cd --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c @@ -0,0 +1,151 @@ +/* + + u8g_dev_st7920_192x32.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 192 +#define HEIGHT 32 + + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7920_192x32_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ + 0x00c, /* display on, cursor & blink off; 0x08: all off */ + 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ + 0x002, /* disable scroll, enable CGRAM adress */ + 0x001, /* clear RAM, needs 1.6 ms */ + U8G_ESC_DLY(100), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7920_192x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_st7920_192x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 32; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_st7920_192x32_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_SW_SPI); +U8G_PB_DEV(u8g_dev_st7920_192x32_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_HW_SPI); +U8G_PB_DEV(u8g_dev_st7920_192x32_8bit, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_FAST_PARALLEL); + + +#define QWIDTH (WIDTH*4) +uint8_t u8g_dev_st7920_192x32_4x_buf[QWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_st7920_192x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_192x32_4x_buf}; +u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_SW_SPI }; +u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_HW_SPI }; +u8g_dev_t u8g_dev_st7920_192x32_4x_8bit = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_FAST_PARALLEL }; + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c new file mode 100644 index 000000000..129fc748f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c @@ -0,0 +1,154 @@ +/* + + u8g_dev_st7920_202x32.c + tested with CFAG20232 + + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 202 +#define HEIGHT 32 +#define PAGE_HEIGHT 8 + + +/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ +static const uint8_t u8g_dev_st7920_202x32_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ + 0x00c, /* display on, cursor & blink off; 0x08: all off */ + 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ + 0x002, /* disable scroll, enable CGRAM adress */ + 0x001, /* clear RAM, needs 1.6 ms */ + U8G_ESC_DLY(100), /* delay 10 ms */ + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_st7920_202x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 8; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_st7920_202x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + for( i = 0; i < 32; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ + u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + ptr += WIDTH/8; + y++; + } + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_st7920_202x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_SW_SPI); +U8G_PB_DEV(u8g_dev_st7920_202x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_HW_SPI); +U8G_PB_DEV(u8g_dev_st7920_202x32_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_FAST_PARALLEL); + +#define QWIDTH (WIDTH*4) +uint8_t u8g_dev_st7920_202x32_4x_buf[QWIDTH] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_st7920_202x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_202x32_4x_buf}; +u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_SW_SPI }; +u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_HW_SPI }; +u8g_dev_t u8g_dev_st7920_202x32_4x_8bit = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_FAST_PARALLEL }; + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c new file mode 100644 index 000000000..c1626ccc1 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c @@ -0,0 +1,191 @@ +/* + + u8g_dev_t6963_128x64.c + + Tested with Varitronix MGLS240128TZ + + Universal 8bit Graphics Library + + Copyright (c) 2013, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Application Notes for the MGLS 240x128 + www.baso.no/content/pdf/T6963C_Application.pdf + + Hitachi App Notes: + https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf + + Notes: + The font selection pins should generate the 8x8 font. + For the MGLS240128TZ only FS1 is available on pin 18. + FS1 must be low to generate the 8x8 font. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 16 + + +/* text is not used, so settings are not relevant */ +static const uint8_t u8g_dev_t6963_128x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x021, /* set cursor position */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x022, /* set offset */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x040, /* text home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x041, /* text columns */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x042, /* graphics home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x043, /* graphics columns */ + + // mode set + // 0x080: Internal CG, OR Mode + // 0x081: Internal CG, EXOR Mode + // 0x083: Internal CG, AND Mode + // 0x088: External CG, OR Mode + // 0x089: External CG, EXOR Mode + // 0x08B: External CG, AND Mode + U8G_ESC_ADR(1), /* instruction mode */ + 0x080, /* mode register: OR Mode, Internal Character Mode */ + + U8G_ESC_ADR(1), /* instruction mode */ + // display mode + // 0x090: Display off + // 0x094: Graphic off, text on, cursor off, blink off + // 0x096: Graphic off, text on, cursor on, blink off + // 0x097: Graphic off, text on, cursor on, blink on + // 0x098: Graphic on, text off, cursor off, blink off + // 0x09a: Graphic on, text off, cursor on, blink off + // ... + // 0x09c: Graphic on, text on, cursor off, blink off + // 0x09f: Graphic on, text on, cursor on, blink on + 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x024, /* set adr pointer */ + + + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_t6963_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < PAGE_HEIGHT; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ + u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ + + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); +} + +// U8G_PB_DEV(u8g_dev_t6963_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x64_fn, U8G_COM_T6963); + +uint8_t u8g_dev_t6963_128x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_t6963_128x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x64_2x_bw_buf}; +u8g_dev_t u8g_dev_t6963_128x64_8bit = { u8g_dev_t6963_128x64_fn, &u8g_dev_t6963_128x64_2x_bw_pb, U8G_COM_T6963 }; + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c new file mode 100644 index 000000000..4a28edbcf --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c @@ -0,0 +1,195 @@ +/* + + u8g_dev_t6963_240x128.c + + Tested with Varitronix MGLS240128TZ + + Universal 8bit Graphics Library + + Copyright (c) 2013, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Application Notes for the MGLS 240x128 + www.baso.no/content/pdf/T6963C_Application.pdf + + Hitachi App Notes: + https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf + + Notes: + The font selection pins should generate the 8x8 font. + For the MGLS240128TZ only FS1 is available on pin 18. + FS1 must be low to generate the 8x8 font. + + +*/ + +#include "u8g.h" + +#define WIDTH 240 +#define HEIGHT 128 +#define PAGE_HEIGHT 16 + + +/* + http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format +*/ + +/* text is not used, so settings are not relevant */ +static const uint8_t u8g_dev_t6963_240x128_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x021, /* set cursor position */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x022, /* set offset */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x040, /* text home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x041, /* text columns */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x042, /* graphics home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x043, /* graphics columns */ + + // mode set + // 0x080: Internal CG, OR Mode + // 0x081: Internal CG, EXOR Mode + // 0x083: Internal CG, AND Mode + // 0x088: External CG, OR Mode + // 0x089: External CG, EXOR Mode + // 0x08B: External CG, AND Mode + U8G_ESC_ADR(1), /* instruction mode */ + 0x080, /* mode register: OR Mode, Internal Character Mode */ + + U8G_ESC_ADR(1), /* instruction mode */ + // display mode + // 0x090: Display off + // 0x094: Graphic off, text on, cursor off, blink off + // 0x096: Graphic off, text on, cursor on, blink off + // 0x097: Graphic off, text on, cursor on, blink on + // 0x098: Graphic on, text off, cursor off, blink off + // 0x09a: Graphic on, text off, cursor on, blink off + // ... + // 0x09c: Graphic on, text on, cursor off, blink off + // 0x09f: Graphic on, text on, cursor on, blink on + 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x024, /* set adr pointer */ + + + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_t6963_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x128_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < PAGE_HEIGHT; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ + u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ + + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); +} + +// U8G_PB_DEV(u8g_dev_t6963_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x128_fn, U8G_COM_T6963); + +uint8_t u8g_dev_t6963_240x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_t6963_240x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x128_2x_bw_buf}; +u8g_dev_t u8g_dev_t6963_240x128_8bit = { u8g_dev_t6963_240x128_fn, &u8g_dev_t6963_240x128_2x_bw_pb, U8G_COM_T6963 }; + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c new file mode 100644 index 000000000..6d209d212 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c @@ -0,0 +1,195 @@ +/* + + u8g_dev_t6963_240x64.c + + Tested with Varitronix MGLS240128TZ + + Universal 8bit Graphics Library + + Copyright (c) 2013, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Application Notes for the MGLS 240x128 + www.baso.no/content/pdf/T6963C_Application.pdf + + Hitachi App Notes: + https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf + + Notes: + The font selection pins should generate the 8x8 font. + For the MGLS240128TZ only FS1 is available on pin 18. + FS1 must be low to generate the 8x8 font. + + +*/ + +#include "u8g.h" + +#define WIDTH 240 +#define HEIGHT 64 +#define PAGE_HEIGHT 16 + + +/* + http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format +*/ + +/* text is not used, so settings are not relevant */ +static const uint8_t u8g_dev_t6963_240x64_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ + + U8G_ESC_CS(1), /* enable chip */ + U8G_ESC_DLY(50), /* delay 50 ms */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x021, /* set cursor position */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x022, /* set offset */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x040, /* text home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x041, /* text columns */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x042, /* graphics home */ + + U8G_ESC_ADR(0), /* data mode */ + WIDTH/8, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x043, /* graphics columns */ + + // mode set + // 0x080: Internal CG, OR Mode + // 0x081: Internal CG, EXOR Mode + // 0x083: Internal CG, AND Mode + // 0x088: External CG, OR Mode + // 0x089: External CG, EXOR Mode + // 0x08B: External CG, AND Mode + U8G_ESC_ADR(1), /* instruction mode */ + 0x080, /* mode register: OR Mode, Internal Character Mode */ + + U8G_ESC_ADR(1), /* instruction mode */ + // display mode + // 0x090: Display off + // 0x094: Graphic off, text on, cursor off, blink off + // 0x096: Graphic off, text on, cursor on, blink off + // 0x097: Graphic off, text on, cursor on, blink on + // 0x098: Graphic on, text off, cursor off, blink off + // 0x09a: Graphic on, text off, cursor on, blink off + // ... + // 0x09c: Graphic on, text on, cursor off, blink off + // 0x09f: Graphic on, text on, cursor on, blink on + 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ + + U8G_ESC_ADR(0), /* data mode */ + 0x000, /* low byte */ + 0x000, /* height byte */ + U8G_ESC_ADR(1), /* instruction mode */ + 0x024, /* set adr pointer */ + + + U8G_ESC_DLY(100), /* delay 100 ms */ + + U8G_ESC_ADR(0), /* data mode */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_t6963_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x64_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t y, i; + uint16_t disp_ram_adr; + uint8_t *ptr; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 1); + y = pb->p.page_y0; + ptr = pb->buf; + disp_ram_adr = WIDTH/8; + disp_ram_adr *= y; + for( i = 0; i < PAGE_HEIGHT; i ++ ) + { + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ + u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ + u8g_SetAddress(u8g, dev, 1); /* cmd mode */ + u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ + + u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); + + ptr += WIDTH/8; + disp_ram_adr += WIDTH/8; + } + u8g_SetAddress(u8g, dev, 0); /* data mode */ + u8g_SetChipSelect(u8g, dev, 0); + } + break; + } + return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); +} + +// U8G_PB_DEV(u8g_dev_t6963_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x64_fn, U8G_COM_T6963); + +uint8_t u8g_dev_t6963_240x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_t6963_240x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x64_2x_bw_buf}; +u8g_dev_t u8g_dev_t6963_240x64_8bit = { u8g_dev_t6963_240x64_fn, &u8g_dev_t6963_240x64_2x_bw_pb, U8G_COM_T6963 }; + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c new file mode 100644 index 000000000..17689dc4a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c @@ -0,0 +1,115 @@ +/* + + u8g_dev_tls8204_84x48.c + + Display: Nokia 84x48 + + Status: Tested with TLS8204V12 Display by Olimex MOD-LCD3310 + + Contributed: http://code.google.com/p/u8glib/issues/detail?id=126 + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 84 +#define HEIGHT 48 +#define PAGE_HEIGHT 8 + + +static const uint8_t u8g_dev_tls8204_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ + 0x006, /* temp. control: b10 = 2 */ + 0x04 | !!((66-1)&(1u<<6)), + 0x40 | ((66-2) & ((1u<<6)-1)), + 0x013, /* bias system 1:48 */ + 0x0c0, /* medium Vop */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal operation */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00d, /* display on, invert */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + 0x00c, /* display on, normal */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + + +uint8_t u8g_dev_tls8204_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_tls8204_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_SetAddress(u8g, dev, 0); /* command mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ + u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ + u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + /* the contrast adjustment does not work, needs to be analysed */ + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_SetChipSelect(u8g, dev, 1); + u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ + u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); + u8g_WriteByte(u8g, dev, 0x020); /* command mode, extended function set */ + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + + +U8G_PB_DEV(u8g_dev_tls8204_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tls8204_fn, U8G_COM_SW_SPI); + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c new file mode 100644 index 000000000..b7111d5c8 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c @@ -0,0 +1,290 @@ +/* + + u8g_dev_uc1610_dogxl160.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 160 +#define HEIGHT 104 + +static const uint8_t u8g_dev_uc1610_dogxl160_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x0f1, /* set display height-1 */ + 0x067, /* */ + 0x0c0, /* SEG & COM normal */ + 0x040, /* set display start line */ + 0x050, /* */ + 0x02b, /* set panelloading */ + 0x0eb, /* set bias 1/2 */ + 0x081, /* set contrast */ + 0x05f, /* */ + 0x089, /* set auto increment */ + 0x0a6, /* normal pixel mode */ + 0x0d3, /* 0xd3=40% RMS separation for gray levels */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565, UC1610 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + + + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_uc1610_dogxl160_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +static uint8_t u8g_dev_1to2(uint8_t n) +{ + register uint8_t a,b,c; + a = n; + a &= 1; + n <<= 1; + b = n; + b &= 4; + n <<= 1; + c = n; + c &= 16; + n <<= 1; + n &= 64; + n |= a; + n |= b; + n |= c; + n |= n << 1; + return n; +} + +uint8_t u8g_dev_uc1610_dogxl160_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + int i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page 1/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); + } + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page 2/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); + } + + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_uc1610_dogxl160_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page) ); /* select current page (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_uc1610_dogxl160_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + int i; + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4) ); /* select current page 1/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); + } + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+1) ); /* select current page 2/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); + } + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+2) ); /* select current page 1/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf+WIDTH))[i] ) ); + } + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+3) ); /* select current page 2/2 (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + for( i = 0; i < WIDTH; i++ ) + { + u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf+WIDTH))[i] >> 4 ) ); + } + + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); +} + +uint8_t u8g_dev_uc1610_dogxl160_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf) == 0 ) + return 0; + + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); + u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page (UC1610) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf+WIDTH) == 0 ) + return 0; + + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_HW_SPI); + +U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_sw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_hw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_HW_SPI); + +uint8_t u8g_dev_uc1610_dogxl160_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_uc1610_dogxl160_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_bw_buf}; +u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_HW_SPI }; + +uint8_t u8g_dev_uc1610_dogxl160_2x_gr_buf[WIDTH*2] U8G_NOCOMMON ; +u8g_pb_t u8g_dev_uc1610_dogxl160_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_gr_buf}; +u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_SW_SPI }; +u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c new file mode 100644 index 000000000..853d8c034 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c @@ -0,0 +1,113 @@ +/* + + u8g_dev_uc1701_dogs102.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 102 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +static const uint8_t u8g_dev_dogs102_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + 0x040, /* set display start line to 0 */ + 0x0a1, /* ADC set to reverse */ + 0x0c0, /* common output mode */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x027, /* regulator, booster and follower */ + 0x081, /* set contrast */ + 0x00e, /* contrast value, EA default: 0x010, previous value for S102: 0x0e */ + 0x0fa, /* Set Temp compensation */ + 0x090, /* 0.11 deg/c WP Off WC Off*/ + 0x0a4, /* normal display */ + 0x0af, /* display on */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565, UC1610 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_dogs102_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 0 */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_dogs102_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_uc1701_dogs102_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_uc1701_dogs102_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_HW_SPI); + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c new file mode 100644 index 000000000..55b2f9b71 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c @@ -0,0 +1,114 @@ +/* + + u8g_dev_uc1701_mini12864.c (dealextreme) + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +#define WIDTH 128 +#define HEIGHT 64 +#define PAGE_HEIGHT 8 + +static const uint8_t u8g_dev_uc1701_mini12864_init_seq[] PROGMEM = { + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ + U8G_ESC_CS(1), /* enable chip */ + + 0x040, /* set display start line to 0 */ + 0x0a0, /* ADC set to reverse */ + 0x0c8, /* common output mode */ + 0x0a6, /* display normal, bit val 0: LCD pixel off. */ + 0x0a2, /* LCD bias 1/9 */ + 0x02f, /* all power control circuits on */ + 0x0f8, /* set booster ratio to */ + 0x000, /* 4x */ + 0x023, /* set V0 voltage resistor ratio to large */ + 0x081, /* set contrast */ + 0x027, /* contrast value */ + 0x0ac, /* indicator */ + 0x000, /* disable */ + 0x0af, /* display on */ + + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a5, /* display all points, ST7565 */ + U8G_ESC_DLY(100), /* delay 100 ms */ + U8G_ESC_DLY(100), /* delay 100 ms */ + 0x0a4, /* normal display */ + U8G_ESC_CS(0), /* disable chip */ + U8G_ESC_END /* end of sequence */ +}; + +static const uint8_t u8g_dev_uc1701_mini12864_data_start[] PROGMEM = { + U8G_ESC_ADR(0), /* instruction mode */ + U8G_ESC_CS(1), /* enable chip */ + 0x010, /* set upper 4 bit of the col adr to 0 */ + 0x000, /* set lower 4 bit of the col adr to 4 */ + U8G_ESC_END /* end of sequence */ +}; + +uint8_t u8g_dev_uc1701_mini12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + case U8G_DEV_MSG_INIT: + u8g_InitCom(u8g, dev); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_NEXT: + { + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); + u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page */ + u8g_SetAddress(u8g, dev, 1); /* data mode */ + if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) + return 0; + u8g_SetChipSelect(u8g, dev, 0); + } + break; + case U8G_DEV_MSG_CONTRAST: + u8g_SetChipSelect(u8g, dev, 1); + u8g_SetAddress(u8g, dev, 0); /* instruction mode */ + u8g_WriteByte(u8g, dev, 0x081); + u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); + u8g_SetChipSelect(u8g, dev, 0); + return 1; + } + return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); +} + +U8G_PB_DEV(u8g_dev_uc1701_mini12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_SW_SPI); +U8G_PB_DEV(u8g_dev_uc1701_mini12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c new file mode 100644 index 000000000..6c35fdf23 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c @@ -0,0 +1,100 @@ +/* + + u8g_ellipse.c + + Utility to draw empty and filled ellipses. + + Universal 8bit Graphics Library + + Copyright (c) 2011, bjthom@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Addition to the U8G Library as of 02/29/12 + Adapted from Bresenham's Algorithm and the following websites: + http://free.pages.at/easyfilter/bresenham.html + http://homepage.smc.edu/kennedy_john/belipse.pdf + +*/ + +#include "u8g.h" + + +#ifdef WORK_IN_PROGRESS + +void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1) +{ + int a = abs(x1 - x0); + int b = abs(y1 - y0); //get diameters + int b1 = b&1; + long dx = 4*(1-a)*b*b; + long dy = 4*(b1+1)*a*a; + long err = dx+dy+b1*a*a; + long e2; + + if (x0 > x1) { x0 = x1; x1 += a; } + if (y0 > y1) { y0 = y1; } + y0 += (b+1)/2; + y1 = y0-b1; + a *= 8*a; + b1 = 8*b*b; + + do { + u8g_DrawPixel(u8g, x1, y0); + u8g_DrawPixel(u8g, x0, y0); + u8g_DrawPixel(u8g, x0, y1); + u8g_DrawPixel(u8g, x1, y1); + e2 = 2*err; + if (e2 >= dx) { + x0++; + x1--; + err += dx += b1; + } + if (e2 <= dy) { + y0++; + y1--; + err += dy += a; + } + } while (x0 <= x1); + + while (y0-y1 < b) { + u8g_DrawPixel(u8g, x0-1, y0); + u8g_DrawPixel(u8g, x1+1, y0++); + u8g_DrawPixel(u8g, x0-1, y1); + u8g_DrawPixel(u8g, x1+1, y1--); + } +} + +void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t xr, u8g_uint_t yr) +{ + u8g_DrawPixel(u8g, x0, y0+yr); + u8g_DrawPixel(u8g, x0, y0-yr); + u8g_DrawPixel(u8g, x0+xr, y0); + u8g_DrawPixel(u8g, x0-xr, y0); +} + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c new file mode 100644 index 000000000..bfdc0b28a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c @@ -0,0 +1,1422 @@ +/* + + u8g_font.c + + U8G Font High Level Interface + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +/* font api */ + +/* pointer to the start adress of the glyph, points to progmem area */ +typedef void * u8g_glyph_t; + +/* size of the font data structure, there is no struct or class... */ +#define U8G_FONT_DATA_STRUCT_SIZE 17 + +/* + ... instead the fields of the font data structure are accessed directly by offset + font information + offset + 0 font format + 1 FONTBOUNDINGBOX width unsigned + 2 FONTBOUNDINGBOX height unsigned + 3 FONTBOUNDINGBOX x-offset signed + 4 FONTBOUNDINGBOX y-offset signed + 5 capital A height unsigned + 6 start 'A' + 8 start 'a' + 10 encoding start + 11 encoding end + 12 descent 'g' negative: below baseline + 13 font max ascent + 14 font min decent negative: below baseline + 15 font xascent + 16 font xdecent negative: below baseline + +*/ + +/* use case: What is the width and the height of the minimal box into which string s fints? */ +void u8g_font_GetStrSize(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); +void u8g_font_GetStrSizeP(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); + +/* use case: lower left edge of a minimal box is known, what is the correct x, y position for the string draw procedure */ +void u8g_font_AdjustXYToDraw(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); +void u8g_font_AdjustXYToDrawP(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); + +/* use case: Baseline origin known, return minimal box */ +void u8g_font_GetStrMinBox(u8g_t *u8g, const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); + +/* procedures */ + +/*========================================================================*/ +/* low level byte and word access */ + +/* removed NOINLINE, because it leads to smaller code, might also be faster */ +//static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; +static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) +{ + font += offset; + return u8g_pgm_read( (u8g_pgm_uint8_t *)font ); +} + +static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; +static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) +{ + uint16_t pos; + font += offset; + pos = u8g_pgm_read( (u8g_pgm_uint8_t *)font ); + font++; + pos <<= 8; + pos += u8g_pgm_read( (u8g_pgm_uint8_t *)font); + return pos; +} + +/*========================================================================*/ +/* direct access on the font */ + +static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; +static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) +{ + return u8g_font_get_byte(font, 0); +} + +static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; +static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) +{ + switch(u8g_font_GetFormat(font)) + { + case 0: return 6; + case 1: return 3; + } + return 3; +} + +static uint8_t u8g_font_GetBBXWidth(const void *font) +{ + return u8g_font_get_byte(font, 1); +} + +static uint8_t u8g_font_GetBBXHeight(const void *font) +{ + return u8g_font_get_byte(font, 2); +} + +static int8_t u8g_font_GetBBXOffX(const void *font) +{ + return u8g_font_get_byte(font, 3); +} + +static int8_t u8g_font_GetBBXOffY(const void *font) +{ + return u8g_font_get_byte(font, 4); +} + +uint8_t u8g_font_GetCapitalAHeight(const void *font) +{ + return u8g_font_get_byte(font, 5); +} + +uint16_t u8g_font_GetEncoding65Pos(const void *font) U8G_NOINLINE; +uint16_t u8g_font_GetEncoding65Pos(const void *font) +{ + return u8g_font_get_word(font, 6); +} + +uint16_t u8g_font_GetEncoding97Pos(const void *font) U8G_NOINLINE; +uint16_t u8g_font_GetEncoding97Pos(const void *font) +{ + return u8g_font_get_word(font, 8); +} + +uint8_t u8g_font_GetFontStartEncoding(const void *font) +{ + return u8g_font_get_byte(font, 10); +} + +uint8_t u8g_font_GetFontEndEncoding(const void *font) +{ + return u8g_font_get_byte(font, 11); +} + +int8_t u8g_font_GetLowerGDescent(const void *font) +{ + return u8g_font_get_byte(font, 12); +} + +int8_t u8g_font_GetFontAscent(const void *font) +{ + return u8g_font_get_byte(font, 13); +} + +int8_t u8g_font_GetFontDescent(const void *font) +{ + return u8g_font_get_byte(font, 14); +} + +int8_t u8g_font_GetFontXAscent(const void *font) +{ + return u8g_font_get_byte(font, 15); +} + +int8_t u8g_font_GetFontXDescent(const void *font) +{ + return u8g_font_get_byte(font, 16); +} + + +/* return the data start for a font and the glyph pointer */ +static uint8_t *u8g_font_GetGlyphDataStart(const void *font, u8g_glyph_t g) +{ + return ((u8g_fntpgm_uint8_t *)g) + u8g_font_GetFontGlyphStructureSize(font); +} + +/* calculate the overall length of the font, only used to create the picture for the google wiki */ +size_t u8g_font_GetSize(const void *font) +{ + uint8_t *p = (uint8_t *)(font); + uint8_t font_format = u8g_font_GetFormat(font); + uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(font); + uint8_t start, end; + uint8_t i; + uint8_t mask = 255; + + start = u8g_font_GetFontStartEncoding(font); + end = u8g_font_GetFontEndEncoding(font); + + if ( font_format == 1 ) + mask = 15; + + p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ + + i = start; + for(;;) + { + if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) + { + p += 1; + } + else + { + p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; + p += data_structure_size; + } + if ( i == end ) + break; + i++; + } + + return p - (uint8_t *)font; +} + +/*========================================================================*/ +/* u8g interface, font access */ + +uint8_t u8g_GetFontBBXWidth(u8g_t *u8g) +{ + return u8g_font_GetBBXWidth(u8g->font); +} + +uint8_t u8g_GetFontBBXHeight(u8g_t *u8g) +{ + return u8g_font_GetBBXHeight(u8g->font); +} + +int8_t u8g_GetFontBBXOffX(u8g_t *u8g) U8G_NOINLINE; +int8_t u8g_GetFontBBXOffX(u8g_t *u8g) +{ + return u8g_font_GetBBXOffX(u8g->font); +} + +int8_t u8g_GetFontBBXOffY(u8g_t *u8g) U8G_NOINLINE; +int8_t u8g_GetFontBBXOffY(u8g_t *u8g) +{ + return u8g_font_GetBBXOffY(u8g->font); +} + +uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) U8G_NOINLINE; +uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) +{ + return u8g_font_GetCapitalAHeight(u8g->font); +} + +/*========================================================================*/ +/* glyph handling */ + +static void u8g_CopyGlyphDataToCache(u8g_t *u8g, u8g_glyph_t g) +{ + uint8_t tmp; + switch( u8g_font_GetFormat(u8g->font) ) + { + case 0: + /* + format 0 + glyph information + offset + 0 BBX width unsigned + 1 BBX height unsigned + 2 data size unsigned (BBX width + 7)/8 * BBX height + 3 DWIDTH signed + 4 BBX xoffset signed + 5 BBX yoffset signed + byte 0 == 255 indicates empty glyph + */ + u8g->glyph_width = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); + u8g->glyph_height = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); + u8g->glyph_dx = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 3 ); + u8g->glyph_x = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 4 ); + u8g->glyph_y = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 5 ); + break; + case 1: + default: + /* +format 1 + 0 BBX xoffset signed --> upper 4 Bit + 0 BBX yoffset signed --> lower 4 Bit + 1 BBX width unsigned --> upper 4 Bit + 1 BBX height unsigned --> lower 4 Bit + 2 data size unsigned -(BBX width + 7)/8 * BBX height --> lower 4 Bit + 2 DWIDTH signed --> upper 4 Bit + byte 0 == 255 indicates empty glyph + */ + + tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); + u8g->glyph_y = tmp & 15; + u8g->glyph_y-=2; + tmp >>= 4; + u8g->glyph_x = tmp; + + tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); + u8g->glyph_height = tmp & 15; + tmp >>= 4; + u8g->glyph_width = tmp; + + tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 2 ); + tmp >>= 4; + u8g->glyph_dx = tmp; + + + break; + } +} + +//void u8g_FillEmptyGlyphCache(u8g_t *u8g) U8G_NOINLINE; +static void u8g_FillEmptyGlyphCache(u8g_t *u8g) +{ + u8g->glyph_dx = 0; + u8g->glyph_width = 0; + u8g->glyph_height = 0; + u8g->glyph_x = 0; + u8g->glyph_y = 0; +} + +/* + Find (with some speed optimization) and return a pointer to the glyph data structure + Also uncompress (format 1) and copy the content of the data structure to the u8g structure +*/ +u8g_glyph_t u8g_GetGlyph(u8g_t *u8g, uint8_t requested_encoding) +{ + uint8_t *p = (uint8_t *)(u8g->font); + uint8_t font_format = u8g_font_GetFormat(u8g->font); + uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(u8g->font); + uint8_t start, end; + uint16_t pos; + uint8_t i; + uint8_t mask = 255; + + if ( font_format == 1 ) + mask = 15; + + start = u8g_font_GetFontStartEncoding(u8g->font); + end = u8g_font_GetFontEndEncoding(u8g->font); + + pos = u8g_font_GetEncoding97Pos(u8g->font); + if ( requested_encoding >= 97 && pos > 0 ) + { + p+= pos; + start = 97; + } + else + { + pos = u8g_font_GetEncoding65Pos(u8g->font); + if ( requested_encoding >= 65 && pos > 0 ) + { + p+= pos; + start = 65; + } + else + p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ + } + + if ( requested_encoding > end ) + { + u8g_FillEmptyGlyphCache(u8g); + return NULL; /* not found */ + } + + i = start; + if ( i <= end ) + { + for(;;) + { + if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) + { + p += 1; + } + else + { + if ( i == requested_encoding ) + { + u8g_CopyGlyphDataToCache(u8g, p); + return p; + } + p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; + p += data_structure_size; + } + if ( i == end ) + break; + i++; + } + } + + u8g_FillEmptyGlyphCache(u8g); + + return NULL; +} + +uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding) +{ + if ( u8g_GetGlyph(u8g, requested_encoding) != NULL ) + return 1; + return 0; +} + +int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding) +{ + if ( u8g_GetGlyph(u8g, requested_encoding) == NULL ) + return 0; /* should never happen, so return something */ + return u8g->glyph_dx; +} + + +/*========================================================================*/ +/* glyph drawing procedures */ + +#ifdef OBSOLETE +/* + Draw a glyph + x,y: left baseline position of the glyph +*/ +int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) +{ + u8g_glyph_t g; + uint8_t w, h, i, j; + const u8g_pgm_uint8_t *data; + uint8_t bytes_per_line; + u8g_uint_t ix, iy; + + g = u8g_GetGlyph(u8g, encoding); + if ( g == NULL ) + return 0; + w = u8g->glyph_width; + h = u8g->glyph_height; + + bytes_per_line = w; + bytes_per_line += 7; + bytes_per_line /= 8; + + data = u8g_font_GetGlyphDataStart(u8g->font, g); + + switch(dir) + { + case 0: + x += u8g->glyph_x; + y -= u8g->glyph_y; + y--; + //u8g_DrawFrame(u8g, x, y-h+1, w, h); + if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) + return u8g->glyph_dx; + + iy = y; + iy -= h; + iy++; + + for( j = 0; j < h; j++ ) + { + ix = x; + for( i = 0; i < bytes_per_line; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); + data++; + ix+=8; + } + iy++; + } + break; + case 1: + x += u8g->glyph_y; + x++; + y += u8g->glyph_x; + //printf("enc %d, dir %d, x %d, y %d, w %d, h %d\n", encoding, dir, x, y, w, h); + //u8g_DrawFrame(u8g, x, y, h, w); + if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) + return u8g->glyph_dx; + + ix = x; + ix += h; + ix--; + for( j = 0; j < h; j++ ) + { + iy = y; + for( i = 0; i < bytes_per_line; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); + data++; + iy+=8; + } + ix--; + } + break; + case 2: + x -= u8g->glyph_x; + y += u8g->glyph_y; + y++; + if ( u8g_IsBBXIntersection(u8g, x-w-1, y, w, h) == 0 ) + return u8g->glyph_dx; + + iy = y; + iy += h; + iy--; + for( j = 0; j < h; j++ ) + { + ix = x; + for( i = 0; i < bytes_per_line; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); + data++; + ix-=8; + } + iy--; + } + break; + case 3: + x -= u8g->glyph_y; + x--; + y -= u8g->glyph_x; + + if ( u8g_IsBBXIntersection(u8g, x-h-1, y-w-1, h, w) == 0 ) + return u8g->glyph_dx; + + ix = x; + ix -= h; + ix++; + + for( j = 0; j < h; j++ ) + { + iy = y; + for( i = 0; i < bytes_per_line; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); + data++; + iy-=8; + } + ix++; + } + break; + } + return u8g->glyph_dx; +} +#endif + +int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + const u8g_pgm_uint8_t *data; + uint8_t w, h; + uint8_t i, j; + u8g_uint_t ix, iy; + + { + u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); + if ( g == NULL ) + return 0; + data = u8g_font_GetGlyphDataStart(u8g->font, g); + } + + w = u8g->glyph_width; + h = u8g->glyph_height; + + x += u8g->glyph_x; + y -= u8g->glyph_y; + y--; + + if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) + return u8g->glyph_dx; + + /* now, w is reused as bytes per line */ + w += 7; + w /= 8; + + iy = y; + iy -= h; + iy++; + + for( j = 0; j < h; j++ ) + { + ix = x; + for( i = 0; i < w; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, 0, u8g_pgm_read(data)); + data++; + ix+=8; + } + iy++; + } + return u8g->glyph_dx; +} + +int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + y += u8g->font_calc_vref(u8g); + return u8g_draw_glyph(u8g, x, y, encoding); +} + +int8_t u8g_draw_glyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + const u8g_pgm_uint8_t *data; + uint8_t w, h; + uint8_t i, j; + u8g_uint_t ix, iy; + + { + u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); + if ( g == NULL ) + return 0; + data = u8g_font_GetGlyphDataStart(u8g->font, g); + } + + w = u8g->glyph_width; + h = u8g->glyph_height; + + x += u8g->glyph_y; + x++; + y += u8g->glyph_x; + + if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) + return u8g->glyph_dx; + + /* now, w is reused as bytes per line */ + w += 7; + w /= 8; + + ix = x; + ix += h; + ix--; + for( j = 0; j < h; j++ ) + { + iy = y; + for( i = 0; i < w; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, 1, u8g_pgm_read(data)); + data++; + iy+=8; + } + ix--; + } + return u8g->glyph_dx; +} + +int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + x -= u8g->font_calc_vref(u8g); + return u8g_draw_glyph90(u8g, x, y, encoding); +} + + +int8_t u8g_draw_glyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + const u8g_pgm_uint8_t *data; + uint8_t w, h; + uint8_t i, j; + u8g_uint_t ix, iy; + + { + u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); + if ( g == NULL ) + return 0; + data = u8g_font_GetGlyphDataStart(u8g->font, g); + } + + w = u8g->glyph_width; + h = u8g->glyph_height; + + x -= u8g->glyph_x; + y += u8g->glyph_y; + y++; + + if ( u8g_IsBBXIntersection(u8g, x-(w-1), y, w, h) == 0 ) + return u8g->glyph_dx; + + /* now, w is reused as bytes per line */ + w += 7; + w /= 8; + + iy = y; + iy += h; + iy--; + for( j = 0; j < h; j++ ) + { + ix = x; + for( i = 0; i < w; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, 2, u8g_pgm_read(data)); + data++; + ix-=8; + } + iy--; + } + return u8g->glyph_dx; +} + +int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + y -= u8g->font_calc_vref(u8g); + return u8g_draw_glyph180(u8g, x, y, encoding); +} + + +int8_t u8g_draw_glyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + const u8g_pgm_uint8_t *data; + uint8_t w, h; + uint8_t i, j; + u8g_uint_t ix, iy; + + { + u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); + if ( g == NULL ) + return 0; + data = u8g_font_GetGlyphDataStart(u8g->font, g); + } + + w = u8g->glyph_width; + h = u8g->glyph_height; + + x -= u8g->glyph_y; + x--; + y -= u8g->glyph_x; + + if ( u8g_IsBBXIntersection(u8g, x-(h-1), y-(w-1), h, w) == 0 ) + return u8g->glyph_dx; + + + /* now, w is reused as bytes per line */ + w += 7; + w /= 8; + + ix = x; + ix -= h; + ix++; + + for( j = 0; j < h; j++ ) + { + iy = y; + for( i = 0; i < w; i++ ) + { + u8g_Draw8Pixel(u8g, ix, iy, 3, u8g_pgm_read(data)); + data++; + iy-=8; + } + ix++; + } + return u8g->glyph_dx; +} + +int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) +{ + x += u8g->font_calc_vref(u8g); + return u8g_draw_glyph270(u8g, x, y, encoding); +} + + + +#ifdef OBSOLETE +/* + Draw a glyph + x,y: lower left corner of the font bounding box +*/ +int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) +{ + /* TODO: apply "dir" */ + x -= u8g_GetFontBBXOffX(u8g); + y += u8g_GetFontBBXOffY(u8g); + return u8g_DrawGlyphDir(u8g, x, y, dir, encoding); +} +#endif + +/*========================================================================*/ +/* string drawing procedures */ + + +u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) +{ + u8g_uint_t t = 0; + int8_t d; + + //u8g_uint_t u8g_GetStrWidth(u8g, s); + //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); + + y += u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_draw_glyph(u8g, x, y, *s); + x += d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) +{ + u8g_uint_t t = 0; + int8_t d; + + x -= u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_draw_glyph90(u8g, x, y, *s); + y += d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) +{ + u8g_uint_t t = 0; + int8_t d; + + y -= u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_draw_glyph180(u8g, x, y, *s); + x -= d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) +{ + u8g_uint_t t = 0; + int8_t d; + + x += u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_draw_glyph270(u8g, x, y, *s); + y -= d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) +{ + switch(dir) + { + case 0: + return u8g_DrawStr(u8g, x, y, s); + case 1: + return u8g_DrawStr90(u8g, x, y, s); + case 2: + return u8g_DrawStr180(u8g, x, y, s); + case 3: + return u8g_DrawStr270(u8g, x, y, s); + } + return 0; +} + +u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) +{ + u8g_uint_t t = 0; + int8_t d; + uint8_t c; + + y += u8g->font_calc_vref(u8g); + + for(;;) + { + c = u8g_pgm_read(s); + if ( c == '\0' ) + break; + d = u8g_draw_glyph(u8g, x, y, c); + x += d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) +{ + u8g_uint_t t = 0; + int8_t d; + + x -= u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_DrawGlyph90(u8g, x, y, u8g_pgm_read(s)); + y += d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) +{ + u8g_uint_t t = 0; + int8_t d; + + y -= u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_DrawGlyph180(u8g, x, y, u8g_pgm_read(s)); + x -= d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) +{ + u8g_uint_t t = 0; + int8_t d; + + x += u8g->font_calc_vref(u8g); + + while( *s != '\0' ) + { + d = u8g_DrawGlyph270(u8g, x, y, u8g_pgm_read(s)); + y -= d; + t += d; + s++; + } + return t; +} + +u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) +{ + x -= u8g_GetFontBBXOffX(u8g); + y += u8g_GetFontBBXOffY(u8g); + return u8g_DrawStrDir(u8g, x, y, dir, s); +} + +/* still used by picgen.c, dir argument is ignored */ +int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) +{ + x -= u8g_GetFontBBXOffX(u8g); + y += u8g_GetFontBBXOffY(u8g); + u8g_draw_glyph(u8g, x, y, encoding); +} + + +/*========================================================================*/ +/* set ascent/descent for reference point calculation */ + +void u8g_UpdateRefHeight(u8g_t *u8g) +{ + uint16_t ls; + if ( u8g->font == NULL ) + return; + if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_TEXT ) + { + u8g->font_ref_ascent = u8g_font_GetCapitalAHeight(u8g->font); + u8g->font_ref_descent = u8g_font_GetLowerGDescent(u8g->font); + } + else if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_XTEXT ) + { + u8g->font_ref_ascent = u8g_font_GetFontXAscent(u8g->font); + u8g->font_ref_descent = u8g_font_GetFontXDescent(u8g->font); + } + else + { + u8g->font_ref_ascent = u8g_font_GetFontAscent(u8g->font); + u8g->font_ref_descent = u8g_font_GetFontDescent(u8g->font); + } + + ls = u8g->font_ref_ascent - u8g->font_ref_descent; + if ( u8g->font_line_spacing_factor != 64 ) + { + ls &= 255; + ls *= u8g->font_line_spacing_factor; + ls >>= 6; + } + u8g->line_spacing = ls; +} + +void u8g_SetFontRefHeightText(u8g_t *u8g) +{ + u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_TEXT; + u8g_UpdateRefHeight(u8g); +} + +void u8g_SetFontRefHeightExtendedText(u8g_t *u8g) +{ + u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; + u8g_UpdateRefHeight(u8g); +} + + +void u8g_SetFontRefHeightAll(u8g_t *u8g) +{ + u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_ALL; + u8g_UpdateRefHeight(u8g); +} + +/* factor = 64: linespaceing == ascent and descent */ +void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor) +{ + u8g->font_line_spacing_factor = factor; + u8g_UpdateRefHeight(u8g); +} + + + +/*========================================================================*/ +/* callback procedures to correct the y position */ + +u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g) +{ + return 0; +} + +void u8g_SetFontPosBaseline(u8g_t *u8g) +{ + u8g->font_calc_vref = u8g_font_calc_vref_font; +} + + +u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g) +{ + /* y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); */ + return (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); +} + +void u8g_SetFontPosBottom(u8g_t *u8g) +{ + u8g->font_calc_vref = u8g_font_calc_vref_bottom; +} + +u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g) +{ + u8g_uint_t tmp; + /* reference pos is one pixel above the upper edge of the reference glyph */ + + /* + y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); + y++; + */ + tmp = (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); + tmp++; + return tmp; +} + +void u8g_SetFontPosTop(u8g_t *u8g) +{ + u8g->font_calc_vref = u8g_font_calc_vref_top; +} + +u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g) +{ + int8_t tmp; + tmp = u8g->font_ref_ascent; + tmp -= u8g->font_ref_descent; + tmp /= 2; + tmp += u8g->font_ref_descent; + /* y += (u8g_uint_t)(u8g_int_t)(tmp); */ + return tmp; +} + +void u8g_SetFontPosCenter(u8g_t *u8g) +{ + u8g->font_calc_vref = u8g_font_calc_vref_center; +} + +/*========================================================================*/ +/* string pixel width calculation */ + +char u8g_font_get_char(const void *s) +{ + return *(const char *)(s); +} + +char u8g_font_get_charP(const void *s) +{ + return u8g_pgm_read(s); +} + +typedef char (*u8g_font_get_char_fn)(const void *s); + + +u8g_uint_t u8g_font_calc_str_pixel_width(u8g_t *u8g, const char *s, u8g_font_get_char_fn get_char ) +{ + u8g_uint_t w; + uint8_t enc; + + /* reset the total minimal width to zero, this will be expanded during calculation */ + w = 0; + + enc = get_char(s); + + /* check for empty string, width is already 0 */ + if ( enc == '\0' ) + { + return w; + } + + /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ + /* if *s is not inside the font, then the cached parameters of the glyph are all zero */ + u8g_GetGlyph(u8g, enc); + + /* strlen(s) == 1: width = width(s[0]) */ + /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ + /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ + + /* assume that the string has size 2 or more, than start with negative offset-x */ + /* for string with size 1, this will be nullified after the loop */ + w = -u8g->glyph_x; + for(;;) + { + + /* check and stop if the end of the string is reached */ + s++; + if ( get_char(s) == '\0' ) + break; + + /* if there are still more characters, add the delta to the next glyph */ + w += u8g->glyph_dx; + + /* store the encoding in a local variable, used also after the for(;;) loop */ + enc = get_char(s); + + /* load the next glyph information */ + u8g_GetGlyph(u8g, enc); + } + + /* finally calculate the width of the last char */ + /* here is another exception, if the last char is a black, use the dx value instead */ + if ( enc != ' ' ) + { + /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ + w += u8g->glyph_width; + w += u8g->glyph_x; + } + else + { + w += u8g->glyph_dx; + } + + + return w; +} + +u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s) +{ + return u8g_font_calc_str_pixel_width(u8g, s, u8g_font_get_char); +} + +u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) +{ + return u8g_font_calc_str_pixel_width(u8g, (const char *)s, u8g_font_get_charP); +} + +int8_t u8g_GetStrX(u8g_t *u8g, const char *s) +{ + u8g_GetGlyph(u8g, *s); + return u8g->glyph_x; +} + +int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s) +{ + u8g_GetGlyph(u8g, u8g_pgm_read(s)); + return u8g->glyph_x; +} + +/*========================================================================*/ +/* string width calculation */ + +u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) +{ + u8g_uint_t w; + uint8_t encoding; + + /* reset the total width to zero, this will be expanded during calculation */ + w = 0; + + for(;;) + { + encoding = *s; + if ( encoding == 0 ) + break; + + /* load glyph information */ + u8g_GetGlyph(u8g, encoding); + w += u8g->glyph_dx; + + /* goto next char */ + s++; + } + + return w; +} + + +u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) +{ + u8g_uint_t w; + uint8_t encoding; + + /* reset the total width to zero, this will be expanded during calculation */ + w = 0; + + for(;;) + { + encoding = u8g_pgm_read(s); + if ( encoding == 0 ) + break; + + /* load glyph information */ + u8g_GetGlyph(u8g, encoding); + w += u8g->glyph_dx; + + /* goto next char */ + s++; + } + + return w; +} + + +/*========================================================================*/ +/* calculation of font/glyph/string characteristics */ + + +/* + Description: + Calculate parameter for the minimal bounding box on a given string + Output + buf->y_min extend of the lower left edge if the string below (y_min<0) or above (y_min>0) baseline (descent) + buf->y_max extend of the upper left edge if the string below (y_min<0) or above (y_min>0) baseline (ascent) + buf->w the width of the string +*/ +struct u8g_str_size_struct +{ + int8_t y_min; /* descent */ + int8_t y_max; /* ascent */ + int8_t x, y; /* the reference point of the font (negated!) */ + u8g_uint_t w; /* width of the overall string */ +}; +typedef struct u8g_str_size_struct u8g_str_size_t; + +static void u8g_font_calc_str_min_box(u8g_t *u8g, const char *s, u8g_str_size_t *buf) +{ + /* u8g_glyph_t g; */ + int8_t tmp; + + /* reset the total minimal width to zero, this will be expanded during calculation */ + buf->w = 0; + + /* check for empty string, width is already 0, but also reset y_min and y_max to 0 */ + if ( *s == '\0' ) + { + buf->y_min = 0; + buf->y_max = 0; + buf->x = 0; + buf->y = 0; + return; + } + + /* reset y_min to the largest possible value. Later we search for the smallest value */ + /* y_min contains the position [pixel] of the lower left edge of the glyph above (y_min>0) or below (y_min<0) baseline */ + buf->y_min = 127; + /* reset y_max to the smallest possible value. Later we search for the highest value */ + /* y_max contains the position [pixel] of the upper left edge of the glyph above (y_max>0) or below (y_max<0) baseline */ + buf->y_max = -128; + + /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ + u8g_GetGlyph(u8g, *s); + + /* strlen(s) == 1: width = width(s[0]) */ + /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ + /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ + + /* assume that the string has size 2 or more, than start with negative offset-x */ + /* for string with size 1, this will be nullified after the loop */ + // buf->w = - u8g_font_GetGlyphBBXOffX(u8g->font, g); + buf->w = - u8g->glyph_x; + + /* Also copy the position of the first glyph. This is the reference point of the string (negated) */ + buf->x = u8g->glyph_x; + buf->y = u8g->glyph_y; + + for(;;) + { + + /* calculated y position of the upper left corner (y_max) and lower left corner (y_min) of the string */ + /* relative to the base line */ + + tmp = u8g->glyph_y; + if ( buf->y_min > tmp ) + buf->y_min = tmp; + + tmp +=u8g->glyph_height; + if ( buf->y_max < tmp ) + buf->y_max = tmp; + + /* check and stop if the end of the string is reached */ + s++; + if ( *s == '\0' ) + break; + + /* if there are still more characters, add the delta to the next glyph */ + buf->w += u8g->glyph_dx; + + /* load the next glyph information */ + u8g_GetGlyph(u8g, *s); + } + + /* finally calculate the width of the last char */ + /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ + buf->w += u8g->glyph_width; + // buf->w += u8g_font_GetGlyphBBXOffX(u8g->font, g); + + buf->w += u8g->glyph_x; +} + +/* calculate minimal box */ +void u8g_font_box_min(u8g_t *u8g, const char *s, u8g_str_size_t *buf) +{ + u8g_font_calc_str_min_box(u8g, s, buf); +} + +/* calculate gA box, but do not calculate the overall width */ +void u8g_font_box_left_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) +{ + +} + +/* calculate gA box, including overall width */ +void u8g_font_box_all_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) +{ + +} + + +static void u8g_font_get_str_box_fill_args(u8g_t *u8g, const char *s, u8g_str_size_t *buf, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) +{ + /* + u8g_glyph_t g; + g = + */ + u8g_GetGlyph(u8g, *s); + *x += u8g->glyph_x; + *width = buf->w; + *y -= buf->y_max; + /* +1 because y_max is a height, this compensates the next step */ + //*y += 1; + /* because the reference point is one below the string, this compensates the previous step */ + //*y -= 1; + *height = buf->y_max; + *height -= buf->y_min; +} + + +void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) +{ + u8g_str_size_t buf; + + if ( *s == '\0' ) + { + *width= 0; + *height = 0; + return; + } + + u8g_font_calc_str_min_box(u8g, s, &buf); + u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); +} + + +void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) +{ + u8g_str_size_t buf; + uint8_t cap_a; + + if ( *s == '\0' ) + { + *width= 0; + *height = 0; + return; + } + + cap_a = u8g_font_GetCapitalAHeight(u8g->font); + u8g_font_calc_str_min_box(u8g, s, &buf); + if ( buf.y_max < cap_a ) + buf.y_max = cap_a; + u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); +} + +void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font) +{ + if ( u8g->font != font ) + { + u8g->font = font; + u8g_UpdateRefHeight(u8g); + u8g_SetFontPosBaseline(u8g); + } +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c new file mode 100644 index 000000000..dca21c5a3 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c @@ -0,0 +1,84486 @@ +/* + Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03b[826] U8G_SECTION(".progmem.u8g_font_04b_03b") = { + 1,5,6,0,255,5,0,250,1,240,32,255,255,5,255,5, + 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, + 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, + 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, + 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, + 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, + 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, + 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, + 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, + 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, + 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, + 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, + 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, + 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, + 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, + 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, + 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, + 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, + 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, + 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, + 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, + 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, + 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, + 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, + 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, + 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, + 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, + 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, + 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, + 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, + 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, + 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, + 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, + 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, + 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, + 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, + 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, + 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, + 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, + 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, + 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, + 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, + 64,192,5,66,82,80,160,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,2,0,64,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255}; +/* + Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03bn[130] U8G_SECTION(".progmem.u8g_font_04b_03bn") = { + 1,5,6,0,255,5,0,0,0,0,42,57,0,5,255,5, + 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, + 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, + 64,128,2,69,85,240,144,144,144,240,2,37,53,192,64,64, + 64,64,2,69,85,240,16,240,128,240,2,69,85,240,16,240, + 16,240,2,69,85,144,144,144,240,16,2,69,85,240,128,240, + 16,240,2,69,85,224,128,240,144,240,2,69,85,240,16,32, + 64,64,2,69,85,240,144,240,144,240,2,69,85,240,144,240, + 16,112}; +/* + Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03br[696] U8G_SECTION(".progmem.u8g_font_04b_03br") = { + 1,5,6,0,255,5,0,250,1,240,32,127,255,5,255,5, + 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, + 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, + 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, + 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, + 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, + 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, + 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, + 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, + 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, + 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, + 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, + 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, + 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, + 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, + 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, + 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, + 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, + 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, + 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, + 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, + 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, + 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, + 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, + 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, + 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, + 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, + 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, + 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, + 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, + 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, + 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, + 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, + 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, + 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, + 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, + 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, + 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, + 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, + 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, + 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, + 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, + 64,192,5,66,82,80,160,255}; +/* + Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 + Font Bounding box w= 5 h= 7 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 5 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03[859] U8G_SECTION(".progmem.u8g_font_04b_03") = { + 1,5,7,0,254,5,0,251,1,242,32,255,254,5,254,5, + 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, + 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, + 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, + 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, + 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, + 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, + 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, + 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, + 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, + 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, + 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, + 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, + 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, + 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, + 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, + 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, + 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, + 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, + 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, + 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, + 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, + 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, + 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, + 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, + 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, + 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, + 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, + 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, + 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, + 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, + 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, + 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, + 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, + 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, + 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, + 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, + 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, + 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, + 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, + 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, + 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, + 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, + 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, + 32,64,192,5,66,82,80,160,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,2,0,64,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255}; +/* + Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 7 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03n[130] U8G_SECTION(".progmem.u8g_font_04b_03n") = { + 1,5,7,0,254,5,0,0,0,0,42,57,0,5,255,5, + 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, + 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, + 64,128,2,69,85,96,144,144,144,96,2,37,53,192,64,64, + 64,64,2,69,85,224,16,96,128,240,2,69,85,224,16,96, + 16,224,2,69,85,32,96,160,240,32,2,69,85,240,128,224, + 16,224,2,69,85,96,128,224,144,96,2,69,85,240,16,32, + 64,64,2,69,85,96,144,96,144,96,2,69,85,96,144,112, + 16,96}; +/* + Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 + Copyright: 19992003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 + Font Bounding box w= 5 h= 7 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 5 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_03r[729] U8G_SECTION(".progmem.u8g_font_04b_03r") = { + 1,5,7,0,254,5,0,251,1,242,32,127,254,5,254,5, + 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, + 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, + 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, + 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, + 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, + 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, + 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, + 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, + 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, + 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, + 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, + 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, + 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, + 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, + 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, + 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, + 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, + 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, + 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, + 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, + 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, + 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, + 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, + 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, + 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, + 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, + 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, + 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, + 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, + 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, + 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, + 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, + 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, + 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, + 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, + 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, + 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, + 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, + 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, + 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, + 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, + 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, + 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, + 32,64,192,5,66,82,80,160,255}; +/* + Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: 20002003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_24[912] U8G_SECTION(".progmem.u8g_font_04b_24") = { + 1,5,6,0,255,5,0,250,1,241,32,255,0,5,255,5, + 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, + 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, + 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, + 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, + 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, + 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, + 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, + 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, + 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, + 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, + 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, + 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, + 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, + 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, + 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, + 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, + 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, + 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, + 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, + 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, + 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, + 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, + 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, + 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, + 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, + 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, + 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, + 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, + 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, + 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, + 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, + 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, + 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, + 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, + 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, + 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, + 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, + 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, + 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, + 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, + 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, + 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, + 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, + 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 2,37,53,128,64,64,64,64,2,53,69,160,160,160,96,32, + 2,53,69,192,32,192,32,192,255,255,255,2,53,69,128,192, + 160,160,64,255,255,2,53,69,64,160,160,96,32,255,255,255, + 255,255,255,255,255,255,255,255,2,53,69,224,32,32,64,128, + 255,255,255,2,53,69,64,160,160,160,64,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 + }; +/* + Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: 20002003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_24n[130] U8G_SECTION(".progmem.u8g_font_04b_24n") = { + 1,5,6,0,255,5,0,0,0,0,42,57,0,5,255,5, + 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, + 64,128,4,49,65,224,2,17,33,128,2,53,69,32,32,64, + 128,128,2,53,69,224,160,160,160,224,2,37,53,192,64,64, + 64,64,2,53,69,224,32,224,128,224,2,53,69,224,32,224, + 32,224,2,53,69,160,160,160,224,32,2,53,69,224,128,224, + 32,224,2,53,69,128,224,160,160,224,2,53,69,224,32,32, + 64,128,2,53,69,224,160,224,160,224,2,53,69,224,160,160, + 224,32}; +/* + Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: 20002003 / yuji oshimoÿo / 04@dsg4.com / www.04.jp.org + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_04b_24r[735] U8G_SECTION(".progmem.u8g_font_04b_24r") = { + 1,5,6,0,255,5,0,250,1,241,32,127,0,5,255,5, + 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, + 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, + 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, + 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, + 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, + 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, + 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, + 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, + 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, + 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, + 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, + 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, + 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, + 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, + 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, + 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, + 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, + 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, + 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, + 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, + 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, + 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, + 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, + 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, + 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, + 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, + 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, + 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, + 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, + 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, + 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, + 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, + 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, + 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, + 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, + 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, + 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, + 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, + 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, + 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, + 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, + 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, + 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, + 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, + 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 5, '1' Height: 13 + Calculated Max Values w=10 h=20 x= 9 y=13 dx=10 dy= 0 ascent=16 len=40 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent =13 descent= 0 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[4734] U8G_SECTION(".progmem.u8g_font_10x20_67_75") = { + 0,10,20,0,252,5,2,211,5,193,32,255,0,16,252,13, + 0,9,6,12,10,0,3,54,0,27,0,255,128,255,128,27, + 0,54,0,8,13,13,10,1,0,24,24,24,24,153,219,126, + 60,153,219,126,60,24,9,8,16,10,0,2,25,128,51,0, + 102,0,252,0,252,0,102,0,51,0,25,128,9,8,16,10, + 0,2,204,0,102,0,51,0,31,128,31,128,51,0,102,0, + 204,0,9,8,16,10,0,2,25,128,49,128,97,128,255,128, + 255,128,97,128,49,128,25,128,8,13,13,10,1,0,24,60, + 126,219,153,24,24,24,24,24,24,255,255,9,8,16,10,0, + 2,204,0,198,0,195,0,255,128,255,128,195,0,198,0,204, + 0,8,13,13,10,1,0,255,255,24,24,24,24,24,24,153, + 219,126,60,24,8,13,13,10,1,0,24,60,126,219,153,24, + 153,219,126,60,24,255,255,9,8,16,10,0,2,27,0,51, + 128,97,128,255,128,255,0,96,0,48,0,24,0,9,8,16, + 10,0,2,108,0,230,0,195,0,255,128,127,128,3,0,6, + 0,12,0,9,8,16,10,0,2,25,0,51,128,98,128,255, + 128,255,0,98,0,50,0,24,0,9,8,16,10,0,2,76, + 0,230,0,163,0,255,128,127,128,35,0,38,0,12,0,10, + 8,16,10,0,2,18,0,51,0,109,128,255,192,243,192,97, + 128,51,0,18,0,10,8,16,10,0,2,18,0,55,0,101, + 128,255,192,255,192,105,128,59,0,18,0,10,15,30,10,0, + 0,1,192,3,128,7,0,14,0,28,0,63,192,127,192,3, + 128,7,0,206,0,220,0,248,0,240,0,252,0,252,0,8, + 13,13,10,1,0,48,96,255,255,99,51,3,3,3,3,3, + 3,3,8,13,13,10,1,0,12,6,255,255,198,204,192,192, + 192,192,192,192,192,8,13,13,10,1,0,3,3,3,3,3, + 3,3,51,99,255,255,96,48,8,13,13,10,1,0,192,192, + 192,192,192,192,192,204,198,255,255,6,12,8,13,13,10,1, + 0,252,252,12,12,12,12,12,12,12,45,63,30,12,8,9, + 9,10,1,1,3,3,3,51,99,255,255,96,48,9,8,16, + 10,0,0,14,0,31,0,59,128,49,128,181,128,253,128,121, + 128,49,128,9,8,16,10,0,0,56,0,124,0,238,0,198, + 0,214,128,223,128,207,0,198,0,9,13,26,10,0,0,255, + 128,255,128,32,0,124,0,127,0,122,0,216,0,204,0,140, + 0,6,0,6,0,3,0,3,0,9,13,26,10,0,0,204, + 0,216,0,255,128,255,128,216,0,204,0,0,0,25,128,13, + 128,255,128,255,128,13,128,25,128,9,10,20,10,0,2,31, + 0,31,0,30,0,31,0,219,128,193,128,193,128,227,128,127, + 0,62,0,9,10,20,10,0,2,124,0,124,0,60,0,124, + 0,237,128,193,128,193,128,227,128,127,0,62,0,9,5,10, + 10,0,5,24,0,48,0,96,0,255,128,255,128,9,5,10, + 10,0,2,255,128,255,128,96,0,48,0,24,0,5,13,13, + 10,4,0,192,224,240,216,200,192,192,192,192,192,192,192,192, + 5,13,13,10,1,0,24,56,120,216,152,24,24,24,24,24, + 24,24,24,9,5,10,10,0,5,12,0,6,0,3,0,255, + 128,255,128,9,5,10,10,0,2,255,128,255,128,3,0,6, + 0,12,0,5,13,13,10,4,0,192,192,192,192,192,192,192, + 192,200,216,240,224,192,5,13,13,10,1,0,24,24,24,24, + 24,24,24,24,152,216,120,56,24,9,11,22,10,0,1,6, + 0,3,0,255,128,255,128,3,0,54,0,96,0,255,128,255, + 128,96,0,48,0,10,13,26,10,0,0,51,0,123,0,255, + 0,183,0,51,0,51,0,51,0,51,0,51,0,59,64,63, + 192,55,128,51,0,9,11,22,10,0,1,48,0,96,0,255, + 128,255,128,96,0,54,0,3,0,255,128,255,128,3,0,6, + 0,9,11,22,10,0,1,48,0,96,0,255,128,255,128,96, + 0,48,0,96,0,255,128,255,128,96,0,48,0,9,13,26, + 10,0,0,34,0,119,0,170,128,34,0,34,0,34,0,34, + 0,34,0,34,0,34,0,34,0,34,0,34,0,9,11,22, + 10,0,1,6,0,3,0,255,128,255,128,3,0,6,0,3, + 0,255,128,255,128,3,0,6,0,9,13,26,10,0,0,34, + 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, + 0,34,0,170,128,119,0,34,0,8,9,9,10,1,2,48, + 96,255,255,0,255,255,6,12,8,9,9,10,1,2,12,6, + 255,255,0,255,255,96,48,8,7,7,10,1,2,2,34,127, + 132,127,40,8,10,7,14,10,0,2,4,0,37,0,127,128, + 140,64,127,128,41,0,8,0,8,7,7,10,1,2,16,20, + 254,33,254,68,64,9,9,18,10,0,2,12,0,24,0,63, + 128,127,128,192,0,127,128,63,128,24,0,12,0,9,13,26, + 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, + 0,54,0,54,0,54,0,54,0,54,0,54,0,9,9,18, + 10,0,2,24,0,12,0,254,0,255,0,1,128,255,0,254, + 0,12,0,24,0,9,13,26,10,0,0,54,0,54,0,54, + 0,54,0,54,0,54,0,54,0,182,128,247,128,119,0,54, + 0,28,0,8,0,10,9,18,10,0,2,18,0,51,0,127, + 128,255,192,128,192,255,192,127,128,51,0,18,0,9,13,26, + 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, + 0,182,128,247,128,119,0,54,0,28,0,8,0,9,9,18, + 10,0,2,254,0,254,0,204,0,198,0,227,0,241,128,216, + 128,12,0,6,0,9,9,18,10,0,2,63,128,63,128,25, + 128,49,128,99,128,199,128,141,128,24,0,48,0,9,9,18, + 10,0,2,48,0,24,0,141,128,199,128,99,128,49,128,25, + 128,63,128,63,128,9,9,18,10,0,2,6,0,12,0,216, + 128,241,128,227,0,198,0,204,0,254,0,254,0,9,11,22, + 10,0,1,4,0,8,0,16,0,63,128,64,0,255,128,64, + 0,63,128,16,0,8,0,4,0,9,11,22,10,0,1,16, + 0,8,0,4,0,254,0,1,0,255,128,1,0,254,0,4, + 0,8,0,16,0,9,5,10,10,0,3,32,0,66,0,245, + 128,72,0,32,0,9,5,10,10,0,3,2,0,33,0,215, + 128,9,0,2,0,8,13,13,10,1,0,24,60,126,219,153, + 24,126,126,24,126,126,24,24,8,13,13,10,1,0,24,24, + 126,126,24,126,126,24,153,219,126,60,24,9,8,16,10,0, + 2,24,0,48,0,96,0,237,128,237,128,96,0,48,0,24, + 0,8,13,13,10,1,0,24,60,126,219,129,24,24,0,24, + 24,0,24,24,9,8,16,10,0,2,12,0,6,0,3,0, + 219,128,219,128,3,0,6,0,12,0,8,13,13,10,1,0, + 24,24,0,24,24,0,24,24,129,219,126,60,24,9,8,16, + 10,0,2,198,0,204,0,216,0,255,128,255,128,216,0,204, + 0,198,0,9,8,16,10,0,2,49,128,25,128,13,128,255, + 128,255,128,13,128,25,128,49,128,9,8,16,10,0,2,24, + 0,40,0,79,128,128,128,128,128,79,128,40,0,24,0,8, + 13,13,10,1,0,24,36,66,129,231,36,36,36,36,36,36, + 36,60,9,8,16,10,0,2,12,0,10,0,249,0,128,128, + 128,128,249,0,10,0,12,0,8,13,13,10,1,0,60,36, + 36,36,36,36,36,36,231,129,66,36,24,8,13,13,10,1, + 0,24,36,66,129,231,36,36,60,0,60,36,36,60,8,13, + 13,10,1,0,24,36,66,129,231,36,36,36,36,36,231,129, + 255,8,13,13,10,1,0,24,36,126,129,231,36,36,36,36, + 36,231,129,255,9,14,28,10,0,0,8,0,28,0,42,0, + 73,0,136,128,235,128,42,0,42,0,42,0,42,0,42,0, + 235,128,136,128,255,128,8,13,13,10,1,0,24,36,90,231, + 66,231,36,36,36,36,36,36,60,8,13,13,10,1,0,24, + 36,90,231,66,231,36,36,36,36,231,129,255,9,8,16,10, + 0,2,236,0,170,0,185,0,128,128,128,128,185,0,170,0, + 236,0,8,8,8,10,1,2,255,128,188,168,184,164,130,129, + 8,8,8,10,1,2,129,65,37,29,21,61,1,255,8,13, + 13,10,1,0,24,36,66,231,36,36,36,36,36,231,66,36, + 24,9,6,12,10,0,3,38,0,83,0,255,128,255,128,83, + 0,38,0,10,13,26,10,0,0,51,0,55,128,63,192,59, + 64,51,0,51,0,51,0,51,0,51,0,183,0,255,0,123, + 0,51,0,9,16,32,10,0,254,6,0,3,0,255,128,255, + 128,3,0,6,0,3,0,255,128,255,128,3,0,6,0,3, + 0,255,128,255,128,3,0,6,0,9,8,16,10,0,2,22, + 0,54,0,102,0,255,128,255,128,102,0,54,0,22,0,9, + 8,16,10,0,2,52,0,54,0,51,0,255,128,255,128,51, + 0,54,0,52,0,10,6,12,10,0,3,45,0,109,128,255, + 192,255,192,109,128,45,0,9,6,12,10,0,3,42,0,106, + 0,255,128,255,128,106,0,42,0,9,6,12,10,0,3,42, + 0,43,0,255,128,255,128,43,0,42,0,9,6,12,10,0, + 3,85,0,213,128,255,128,255,128,213,128,85,0,9,8,16, + 10,0,2,16,0,48,0,112,0,223,128,223,128,112,0,48, + 0,16,0,9,8,16,10,0,2,4,0,6,0,7,0,253, + 128,253,128,7,0,6,0,4,0,10,8,16,10,0,2,18, + 0,51,0,115,128,222,192,222,192,115,128,51,0,18,0,10, + 10,20,10,0,6,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,10,3,6,10,0,252,255, + 192,255,192,255,192,10,5,10,10,0,252,255,192,255,192,255, + 192,255,192,255,192,10,8,16,10,0,252,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,10,10,20,10,0, + 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,10,12,24,10,0,252,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,10,15,30,10,0,252,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,10,17,34,10,0,252,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,10, + 20,40,10,0,252,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,9,20,40, + 10,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,7,20,20,10,0, + 252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, + 254,254,254,254,254,6,20,20,10,0,252,252,252,252,252,252, + 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, + 20,20,10,0,252,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,4,20,20,10,0,252,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,3,20,20,10,0,252,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,1,20,20, + 10,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,5,20,20,10,5,252,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,10,19,38,10,0,253,85,64,0,0,170,128,0,0,85, + 64,0,0,170,128,0,0,85,64,0,0,170,128,0,0,85, + 64,0,0,170,128,0,0,85,64,0,0,170,128,10,20,40, + 10,0,252,85,64,170,128,85,64,170,128,85,64,170,128,85, + 64,170,128,85,64,170,128,85,64,170,128,85,64,170,128,85, + 64,170,128,85,64,170,128,85,64,170,128,10,20,40,10,0, + 252,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, + 192,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, + 192,85,64,255,192,170,128,255,192,10,3,6,10,0,13,255, + 192,255,192,255,192,1,20,20,10,9,252,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,5, + 10,10,10,0,252,248,248,248,248,248,248,248,248,248,248,5, + 10,10,10,5,252,248,248,248,248,248,248,248,248,248,248,5, + 10,10,10,0,6,248,248,248,248,248,248,248,248,248,248,10, + 20,40,10,0,252,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,255,192,255,192,255,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,10,20,40, + 10,0,252,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,7,192,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,10,20,40,10,0, + 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,255,192,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,10,20,40,10,0,252,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,5,10,10,10,5,6,248,248,248, + 248,248,248,248,248,248,248,10,20,40,10,0,252,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,10,20,40,10,0,252,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,255, + 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, + 192,255,192,8,8,8,10,1,1,255,255,255,255,255,255,255, + 255,8,8,8,10,1,1,255,129,129,129,129,129,129,255,8, + 8,8,10,1,1,126,129,129,129,129,129,129,126,8,8,8, + 10,1,1,255,129,189,189,189,189,129,255,9,9,18,10,0, + 0,255,128,128,128,255,128,128,128,255,128,128,128,255,128,128, + 128,255,128,9,9,18,10,0,0,255,128,170,128,170,128,170, + 128,170,128,170,128,170,128,170,128,255,128,9,9,18,10,0, + 0,255,128,170,128,255,128,170,128,255,128,170,128,255,128,170, + 128,255,128,8,8,8,10,1,1,255,201,165,147,201,165,147, + 255,8,8,8,10,1,1,255,147,165,201,147,165,201,255,8, + 8,8,10,1,1,255,171,197,171,145,171,197,255,4,4,4, + 10,3,3,240,240,240,240,4,4,4,10,3,3,240,144,144, + 240,8,6,6,10,1,3,255,255,255,255,255,255,8,6,6, + 10,1,3,255,129,129,129,129,255,6,13,13,10,2,0,252, + 252,252,252,252,252,252,252,252,252,252,252,252,6,13,13,10, + 2,0,252,132,132,132,132,132,132,132,132,132,132,132,252,8, + 4,4,10,1,3,31,62,124,248,8,4,4,10,1,3,31, + 34,68,248,8,8,8,10,1,2,24,24,60,60,126,126,255, + 255,8,8,8,10,1,2,24,24,36,36,66,66,129,255,5, + 5,5,10,3,3,32,112,112,248,248,5,5,5,10,3,3, + 32,80,80,136,248,8,8,8,10,1,2,192,240,252,255,255, + 252,240,192,8,8,8,10,1,2,192,176,140,131,131,140,176, + 192,5,5,5,10,3,3,192,240,248,240,192,5,5,5,10, + 3,3,192,176,136,176,192,8,5,5,10,1,4,224,252,255, + 252,224,8,5,5,10,1,4,224,156,131,156,224,8,8,8, + 10,1,2,255,255,126,126,60,60,24,24,8,8,8,10,1, + 2,255,129,66,66,36,36,24,24,5,5,5,10,3,3,248, + 248,112,112,32,5,5,5,10,3,3,248,136,80,80,32,8, + 8,8,10,1,2,3,15,63,255,255,63,15,3,8,8,8, + 10,1,2,3,13,49,193,193,49,13,3,5,5,5,10,3, + 3,24,120,248,120,24,5,5,5,10,3,3,24,104,136,104, + 24,8,5,5,10,1,4,7,63,255,63,7,8,5,5,10, + 1,4,7,57,193,57,7,8,8,8,10,1,2,24,60,126, + 255,255,126,60,24,8,8,8,10,1,2,24,36,66,129,129, + 66,36,24,8,8,8,10,1,2,24,36,90,189,189,90,36, + 24,8,8,8,10,1,1,60,66,153,189,189,153,66,60,9, + 15,30,10,1,255,8,0,20,0,20,0,34,0,34,0,65, + 0,65,0,128,128,65,0,65,0,34,0,34,0,20,0,20, + 0,8,0,8,8,8,10,1,1,60,66,129,129,129,129,66, + 60,7,7,7,10,1,2,40,0,130,0,130,0,40,7,7, + 7,10,1,2,56,108,170,170,170,108,56,8,8,8,10,1, + 1,60,66,153,165,165,153,66,60,8,8,8,10,1,1,60, + 126,255,255,255,255,126,60,8,8,8,10,1,1,60,114,241, + 241,241,241,114,60,8,8,8,10,1,1,60,78,143,143,143, + 143,78,60,8,8,8,10,1,1,60,66,129,129,255,255,126, + 60,8,8,8,10,1,1,60,126,255,255,129,129,66,60,8, + 8,8,10,1,1,60,78,143,143,129,129,66,60,8,8,8, + 10,1,1,60,78,143,143,255,255,126,60,4,8,8,10,1, + 1,48,112,240,240,240,240,112,48,4,8,8,10,5,1,192, + 224,240,240,240,240,224,192,10,20,40,10,0,252,255,192,255, + 192,255,192,255,192,255,192,255,192,225,192,192,192,128,64,128, + 64,128,64,128,64,192,192,225,192,255,192,255,192,255,192,255, + 192,255,192,255,192,10,20,40,10,0,252,255,192,255,192,255, + 192,255,192,255,192,255,192,225,192,222,192,191,64,191,64,191, + 64,191,64,222,192,225,192,255,192,255,192,255,192,255,192,255, + 192,255,192,10,10,20,10,0,6,255,192,255,192,255,192,255, + 192,255,192,255,192,225,192,222,192,191,64,191,64,10,10,20, + 10,0,252,191,64,191,64,222,192,225,192,255,192,255,192,255, + 192,255,192,255,192,255,192,4,4,4,10,1,5,48,64,128, + 128,4,4,4,10,5,5,192,32,16,16,4,4,4,10,5, + 1,16,16,32,192,4,4,4,10,1,1,128,128,64,48,8, + 4,4,10,1,5,60,66,129,129,8,4,4,10,1,1,129, + 129,66,60,10,19,38,10,0,252,0,64,0,64,0,192,0, + 192,1,192,1,192,3,192,3,192,7,192,7,192,15,192,15, + 192,31,192,31,192,63,192,63,192,127,192,127,192,255,192,10, + 19,38,10,0,252,128,0,128,0,192,0,192,0,224,0,224, + 0,240,0,240,0,248,0,248,0,252,0,252,0,254,0,254, + 0,255,0,255,0,255,128,255,128,255,192,10,19,38,10,0, + 253,255,192,255,128,255,128,255,0,255,0,254,0,254,0,252, + 0,252,0,248,0,248,0,240,0,240,0,224,0,224,0,192, + 0,192,0,128,0,128,0,10,19,38,10,0,253,255,192,127, + 192,127,192,63,192,63,192,31,192,31,192,15,192,15,192,7, + 192,7,192,3,192,3,192,1,192,1,192,0,192,0,192,0, + 64,0,64,5,5,5,10,3,4,112,136,136,136,112,8,8, + 8,10,1,1,255,241,241,241,241,241,241,255,8,8,8,10, + 1,1,255,143,143,143,143,143,143,255,8,8,8,10,1,1, + 255,253,249,241,225,193,129,255,8,8,8,10,1,1,255,129, + 131,135,143,159,191,255,9,9,18,10,0,0,255,128,136,128, + 136,128,136,128,136,128,136,128,136,128,136,128,255,128,8,8, + 8,10,1,2,24,24,36,36,90,90,129,255,8,8,8,10, + 1,2,24,24,52,52,114,114,241,255,8,8,8,10,1,2, + 24,24,44,44,78,78,143,255,10,10,20,10,0,0,30,0, + 33,0,64,128,128,64,128,64,128,64,128,64,64,128,33,0, + 30,0,9,9,18,10,0,0,255,128,136,128,136,128,136,128, + 248,128,128,128,128,128,128,128,255,128,9,9,18,10,0,0, + 255,128,128,128,128,128,128,128,248,128,136,128,136,128,136,128, + 255,128,9,9,18,10,0,0,255,128,128,128,128,128,128,128, + 143,128,136,128,136,128,136,128,255,128,9,9,18,10,0,0, + 255,128,136,128,136,128,136,128,143,128,128,128,128,128,128,128, + 255,128,9,9,18,10,0,0,62,0,73,0,136,128,136,128, + 248,128,128,128,128,128,65,0,62,0,9,9,18,10,0,0, + 62,0,65,0,128,128,128,128,248,128,136,128,136,128,73,0, + 62,0,9,9,18,10,0,0,62,0,65,0,128,128,128,128, + 143,128,136,128,136,128,73,0,62,0,9,9,18,10,0,0, + 62,0,73,0,136,128,136,128,143,128,128,128,128,128,65,0, + 62,0,6,6,6,10,2,2,252,136,144,160,192,128,6,6, + 6,10,2,2,252,68,36,20,12,4,6,6,6,10,2,2, + 128,192,160,144,136,252,6,6,6,10,2,2,252,132,132,132, + 132,252,6,6,6,10,2,2,252,252,252,252,252,252,4,4, + 4,10,3,3,240,144,144,240,4,4,4,10,3,3,240,240, + 240,240,6,6,6,10,2,2,4,12,20,36,68,252}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 8, '1' Height: 4 + Calculated Max Values w= 9 h=15 x= 3 y= 4 dx=10 dy= 0 ascent=14 len=30 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 8 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =14 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_10x20_75r[693] U8G_SECTION(".progmem.u8g_font_10x20_75r") = { + 0,10,20,0,252,8,1,219,0,0,32,79,0,14,255,9, + 0,8,8,8,10,1,1,255,255,255,255,255,255,255,255,8, + 8,8,10,1,1,255,129,129,129,129,129,129,255,8,8,8, + 10,1,1,126,129,129,129,129,129,129,126,8,8,8,10,1, + 1,255,129,189,189,189,189,129,255,9,9,18,10,0,0,255, + 128,128,128,255,128,128,128,255,128,128,128,255,128,128,128,255, + 128,9,9,18,10,0,0,255,128,170,128,170,128,170,128,170, + 128,170,128,170,128,170,128,255,128,9,9,18,10,0,0,255, + 128,170,128,255,128,170,128,255,128,170,128,255,128,170,128,255, + 128,8,8,8,10,1,1,255,201,165,147,201,165,147,255,8, + 8,8,10,1,1,255,147,165,201,147,165,201,255,8,8,8, + 10,1,1,255,171,197,171,145,171,197,255,4,4,4,10,3, + 3,240,240,240,240,4,4,4,10,3,3,240,144,144,240,8, + 6,6,10,1,3,255,255,255,255,255,255,8,6,6,10,1, + 3,255,129,129,129,129,255,6,13,13,10,2,0,252,252,252, + 252,252,252,252,252,252,252,252,252,252,6,13,13,10,2,0, + 252,132,132,132,132,132,132,132,132,132,132,132,252,8,4,4, + 10,1,3,31,62,124,248,8,4,4,10,1,3,31,34,68, + 248,8,8,8,10,1,2,24,24,60,60,126,126,255,255,8, + 8,8,10,1,2,24,24,36,36,66,66,129,255,5,5,5, + 10,3,3,32,112,112,248,248,5,5,5,10,3,3,32,80, + 80,136,248,8,8,8,10,1,2,192,240,252,255,255,252,240, + 192,8,8,8,10,1,2,192,176,140,131,131,140,176,192,5, + 5,5,10,3,3,192,240,248,240,192,5,5,5,10,3,3, + 192,176,136,176,192,8,5,5,10,1,4,224,252,255,252,224, + 8,5,5,10,1,4,224,156,131,156,224,8,8,8,10,1, + 2,255,255,126,126,60,60,24,24,8,8,8,10,1,2,255, + 129,66,66,36,36,24,24,5,5,5,10,3,3,248,248,112, + 112,32,5,5,5,10,3,3,248,136,80,80,32,8,8,8, + 10,1,2,3,15,63,255,255,63,15,3,8,8,8,10,1, + 2,3,13,49,193,193,49,13,3,5,5,5,10,3,3,24, + 120,248,120,24,5,5,5,10,3,3,24,104,136,104,24,8, + 5,5,10,1,4,7,63,255,63,7,8,5,5,10,1,4, + 7,57,193,57,7,8,8,8,10,1,2,24,60,126,255,255, + 126,60,24,8,8,8,10,1,2,24,36,66,129,129,66,36, + 24,8,8,8,10,1,2,24,36,90,189,189,90,36,24,8, + 8,8,10,1,1,60,66,153,189,189,153,66,60,9,15,30, + 10,1,255,8,0,20,0,20,0,34,0,34,0,65,0,65, + 0,128,128,65,0,65,0,34,0,34,0,20,0,20,0,8, + 0,8,8,8,10,1,1,60,66,129,129,129,129,66,60,7, + 7,7,10,1,2,40,0,130,0,130,0,40,7,7,7,10, + 1,2,56,108,170,170,170,108,56,8,8,8,10,1,1,60, + 66,153,165,165,153,66,60,8,8,8,10,1,1,60,126,255, + 255,255,255,126,60}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w=10 h=13 x= 4 y= 5 dx=10 dy= 0 ascent=13 len=24 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =13 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[2638] U8G_SECTION(".progmem.u8g_font_10x20_78_79") = { + 0,10,20,0,252,9,1,212,2,205,32,255,0,13,0,11, + 0,9,9,18,10,0,0,54,0,28,0,136,128,201,128,119, + 0,201,128,136,128,28,0,54,0,9,9,18,10,0,0,8, + 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, + 0,9,9,18,10,0,0,8,0,28,0,8,0,73,0,255, + 128,73,0,8,0,28,0,8,0,9,9,18,10,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,10,0,0,8,0,28,0,28,0,107,0,255, + 128,107,0,28,0,28,0,8,0,9,9,18,10,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,10,0,0,8,0,28,0,28,0,127,0,255, + 128,127,0,28,0,28,0,8,0,9,9,18,10,0,0,8, + 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, + 0,255,9,9,18,10,0,0,8,0,8,0,20,0,247,128, + 65,0,34,0,73,0,85,0,99,0,9,10,20,10,0,0, + 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, + 156,128,127,0,9,9,18,10,0,0,8,0,8,0,28,0, + 227,128,99,0,34,0,127,0,119,0,99,0,255,255,255,255, + 255,8,9,9,10,0,0,24,219,255,126,24,126,255,219,24, + 8,9,9,10,0,0,24,219,255,102,36,102,255,219,24,9, + 9,18,10,0,0,8,0,73,0,42,0,28,0,255,128,28, + 0,42,0,73,0,8,0,9,9,18,10,0,0,8,0,73, + 0,62,0,62,0,255,128,62,0,62,0,73,0,8,0,7, + 7,7,10,1,0,16,146,124,56,124,146,16,9,9,18,10, + 0,0,34,0,20,0,148,128,127,0,28,0,127,0,148,128, + 20,0,34,0,255,255,255,255,9,11,22,10,0,0,28,0, + 28,0,201,128,201,128,62,0,28,0,62,0,201,128,201,128, + 28,0,28,0,9,11,22,10,0,0,28,0,28,0,201,128, + 201,128,62,0,28,0,62,0,201,128,201,128,28,0,28,0, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 9,8,16,10,0,1,62,0,67,0,129,128,129,128,129,128, + 129,128,67,0,62,0,255,9,9,18,10,0,0,254,0,130, + 0,131,128,131,128,131,128,131,128,255,128,63,128,63,128,9, + 9,18,10,0,0,63,128,63,128,255,128,131,128,131,128,131, + 128,131,128,130,0,254,0,8,8,8,10,0,0,254,131,131, + 131,131,131,255,127,8,8,8,10,0,0,127,255,131,131,131, + 131,131,254,255,255,255,9,9,18,10,0,0,8,0,28,0, + 28,0,107,0,247,128,107,0,28,0,28,0,8,0,255,1, + 10,10,10,4,0,128,128,128,128,128,128,128,128,128,128,2, + 10,10,10,3,0,192,192,192,192,192,192,192,192,192,192,3, + 10,10,10,3,0,224,224,224,224,224,224,224,224,224,224,4, + 6,6,10,3,5,112,128,224,240,240,96,4,6,6,10,3, + 5,96,240,240,112,16,224,9,6,12,10,0,5,115,128,132, + 0,231,0,247,128,247,128,99,0,9,6,12,10,0,5,99, + 0,247,128,247,128,115,128,16,128,231,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,9,9,18,10,0,0,127,0,247,128,231,128,247,128, + 247,128,247,128,247,128,227,128,127,0,9,9,18,10,0,0, + 127,0,227,128,221,128,253,128,251,128,247,128,237,128,193,128, + 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, + 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, + 127,0,243,128,235,128,219,128,193,128,251,128,251,128,241,128, + 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, + 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, + 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, + 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, + 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, + 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, + 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, + 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, + 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, + 127,0,9,9,18,10,0,0,127,0,128,128,136,128,152,128, + 136,128,136,128,156,128,128,128,127,0,9,9,18,10,0,0, + 127,0,128,128,152,128,132,128,132,128,136,128,156,128,128,128, + 127,0,9,9,18,10,0,0,127,0,128,128,152,128,132,128, + 136,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, + 127,0,128,128,136,128,152,128,168,128,188,128,136,128,128,128, + 127,0,9,9,18,10,0,0,127,0,128,128,156,128,144,128, + 152,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, + 127,0,128,128,140,128,144,128,152,128,148,128,136,128,128,128, + 127,0,9,9,18,10,0,0,127,0,128,128,156,128,132,128, + 136,128,136,128,136,128,128,128,127,0,9,9,18,10,0,0, + 127,0,128,128,136,128,148,128,136,128,148,128,136,128,128,128, + 127,0,9,9,18,10,0,0,127,0,128,128,136,128,148,128, + 140,128,132,128,136,128,128,128,127,0,9,9,18,10,0,0, + 127,0,128,128,164,128,170,128,170,128,170,128,164,128,128,128, + 127,0,9,9,18,10,0,0,127,0,247,128,231,128,247,128, + 247,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, + 127,0,227,128,221,128,253,128,251,128,247,128,239,128,193,128, + 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, + 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, + 127,0,243,128,235,128,219,128,193,128,251,128,251,128,251,128, + 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, + 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, + 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, + 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, + 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, + 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, + 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, + 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, + 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, + 127,0,7,8,8,10,1,1,48,24,12,254,254,12,24,48, + 255,255,255,7,5,5,10,1,1,224,250,62,14,30,8,7, + 7,10,1,1,8,12,230,255,230,12,8,7,5,5,10,1, + 1,30,14,62,250,224,9,7,14,10,0,0,48,0,28,0, + 31,0,255,128,31,0,28,0,48,0,9,9,18,10,0,0, + 28,0,30,0,15,0,255,128,255,128,255,128,15,0,30,0, + 28,0,9,5,10,10,0,1,2,0,3,0,255,128,3,0, + 2,0,9,7,14,10,0,0,4,0,6,0,255,0,255,128, + 255,0,6,0,4,0,9,5,10,10,0,1,2,0,183,0, + 183,128,183,0,2,0,9,5,10,10,0,1,2,0,171,0, + 171,128,171,0,2,0,9,5,10,10,0,1,2,0,255,0, + 255,128,255,0,2,0,9,8,16,10,0,1,128,0,112,0, + 78,0,33,128,31,128,62,0,112,0,128,0,9,8,16,10, + 0,1,128,0,112,0,62,0,31,128,33,128,78,0,112,0, + 128,0,9,8,16,10,0,1,128,0,112,0,62,0,31,128, + 31,128,62,0,112,0,128,0,9,7,14,10,0,0,132,0, + 134,0,255,0,255,128,127,0,6,0,4,0,9,7,14,10, + 0,0,4,0,6,0,127,0,255,128,255,0,134,0,132,0, + 6,9,9,10,2,0,16,16,248,248,252,248,248,16,16,8, + 9,9,10,0,1,4,4,254,254,255,254,254,4,4,9,9, + 18,10,0,0,24,0,28,0,22,0,243,0,129,128,243,0, + 22,0,28,0,24,0,9,9,18,10,0,0,24,0,28,0, + 26,0,249,0,192,128,249,0,26,0,28,0,24,0,9,9, + 18,10,0,0,0,128,1,128,62,128,64,128,129,128,243,0, + 238,0,60,0,56,0,9,9,18,10,0,0,56,0,60,0, + 238,0,243,0,129,128,64,128,62,128,1,128,0,128,8,9, + 9,10,0,1,16,24,20,242,129,243,118,28,24,8,9,9, + 10,0,1,24,28,118,243,129,242,20,24,16,9,8,16,10, + 0,1,4,0,250,0,129,0,64,128,129,128,251,0,6,0, + 4,0,255,9,8,16,10,0,2,4,0,6,0,251,0,129, + 128,64,128,129,0,250,0,4,0,9,9,18,10,0,1,28, + 0,127,0,251,128,1,128,0,128,1,128,251,128,127,0,28, + 0,9,5,10,10,0,3,210,0,43,0,127,128,43,0,210, + 0,9,9,18,10,0,0,16,0,56,0,92,0,236,0,116, + 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, + 0,123,0,7,128,123,0,242,0,9,9,18,10,0,0,3, + 128,1,128,2,128,60,0,116,0,236,0,92,0,56,0,16, + 0,9,9,18,10,0,0,16,0,24,0,28,0,252,0,124, + 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, + 0,123,0,127,128,123,0,242,0,9,9,18,10,0,0,3, + 128,1,128,2,128,60,0,124,0,252,0,28,0,24,0,16, + 0,255,255,255,255,9,7,14,10,0,1,20,0,10,0,253, + 0,0,128,253,0,10,0,20,0,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,9, + 12,24,10,0,0,224,128,49,128,49,128,42,128,42,128,36, + 128,36,128,42,128,42,128,49,128,49,128,224,128,9,12,24, + 10,0,0,131,128,198,0,198,0,170,0,170,0,146,0,146, + 0,170,0,170,0,198,0,198,0,131,128,9,12,24,10,0, + 0,193,128,99,0,99,0,85,0,85,0,73,0,73,0,85, + 0,85,0,99,0,99,0,193,128,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,8,13,13,10,1,0,255,216,216, + 216,216,216,216,216,216,216,216,216,255,8,13,13,10,1,0, + 255,27,27,27,27,27,27,27,27,27,27,27,255,4,13,13, + 10,4,0,16,48,32,96,64,192,128,192,64,96,32,48,16, + 4,13,13,10,4,0,128,192,64,96,32,48,16,48,32,96, + 64,192,128,7,13,13,10,1,0,18,54,36,108,72,216,144, + 216,72,108,36,54,18,7,13,13,10,2,0,144,216,72,108, + 36,54,18,54,36,108,72,216,144,255,255,255,255,255,255,255, + 255,255,10,8,16,10,0,2,24,0,48,0,96,0,255,192, + 255,192,96,0,48,0,24,0,10,8,16,10,0,2,6,0, + 3,0,1,128,255,192,255,192,1,128,3,0,6,0,10,8, + 16,10,0,2,18,0,51,0,97,128,255,192,255,192,97,128, + 51,0,18,0,10,9,18,10,0,2,12,0,24,0,63,192, + 127,192,192,0,127,192,63,192,24,0,12,0,10,9,18,10, + 0,2,12,0,6,0,255,0,255,128,0,192,255,128,255,0, + 6,0,12,0,10,9,18,10,0,2,18,0,51,0,127,128, + 255,192,128,192,255,192,127,128,51,0,18,0,10,8,16,10, + 0,2,24,192,48,192,96,192,255,192,255,192,96,192,48,192, + 24,192,10,8,16,10,0,2,198,0,195,0,193,128,255,192, + 255,192,193,128,195,0,198,0,10,9,18,10,0,2,12,64, + 24,64,63,192,127,192,192,64,127,192,63,192,24,64,12,64, + 10,9,18,10,0,2,140,0,134,0,255,0,255,128,128,192, + 255,128,255,0,134,0,140,0,10,8,16,10,0,2,6,0, + 3,0,171,128,170,192,85,192,85,128,3,0,6,0}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_10x20[3453] U8G_SECTION(".progmem.u8g_font_10x20") = { + 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, + 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, + 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, + 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, + 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, + 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, + 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, + 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, + 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, + 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, + 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, + 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, + 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, + 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, + 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, + 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, + 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, + 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, + 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, + 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, + 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, + 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, + 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, + 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, + 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, + 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, + 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, + 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, + 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, + 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, + 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, + 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, + 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, + 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, + 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, + 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, + 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, + 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, + 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, + 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, + 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, + 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, + 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, + 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, + 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, + 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, + 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, + 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, + 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, + 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, + 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, + 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, + 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, + 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, + 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, + 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, + 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, + 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, + 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, + 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, + 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, + 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, + 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, + 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, + 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, + 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, + 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, + 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, + 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, + 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, + 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, + 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, + 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, + 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, + 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, + 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, + 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, + 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, + 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, + 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, + 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, + 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, + 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, + 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, + 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, + 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, + 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, + 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, + 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, + 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, + 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, + 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, + 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, + 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, + 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, + 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, + 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, + 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, + 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, + 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, + 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, + 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, + 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, + 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, + 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, + 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, + 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, + 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, + 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, + 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, + 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, + 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, + 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, + 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, + 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, + 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, + 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, + 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, + 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, + 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, + 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, + 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, + 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, + 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, + 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, + 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, + 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, + 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, + 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, + 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, + 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, + 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, + 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, + 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, + 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, + 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, + 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, + 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, + 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, + 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, + 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, + 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, + 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, + 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, + 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, + 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, + 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, + 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, + 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, + 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, + 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, + 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, + 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, + 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, + 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, + 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, + 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, + 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, + 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, + 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, + 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, + 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, + 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, + 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, + 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, + 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, + 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, + 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, + 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, + 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, + 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, + 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, + 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, + 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, + 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, + 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, + 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, + 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, + 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, + 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, + 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, + 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, + 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, + 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, + 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, + 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, + 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, + 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, + 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, + 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, + 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, + 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, + 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, + 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, + 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, + 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, + 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, + 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, + 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, + 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, + 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, + 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, + 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, + 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, + 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, + 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, + 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, + 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, + 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, + 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, + 0,195,195,195,195,195,195,103,59,3,195,102,60}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w= 9 h=15 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_10x20r[1667] U8G_SECTION(".progmem.u8g_font_10x20r") = { + 0,10,20,0,252,13,2,74,4,153,32,127,252,16,252,13, + 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, + 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, + 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, + 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, + 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, + 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, + 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, + 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, + 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, + 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, + 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, + 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, + 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, + 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, + 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, + 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, + 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, + 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, + 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, + 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, + 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, + 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, + 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, + 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, + 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, + 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, + 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, + 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, + 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, + 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, + 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, + 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, + 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, + 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, + 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, + 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, + 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, + 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, + 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, + 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, + 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, + 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, + 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, + 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, + 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, + 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, + 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, + 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, + 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, + 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, + 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, + 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, + 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, + 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, + 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, + 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, + 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, + 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, + 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, + 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, + 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, + 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, + 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, + 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, + 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, + 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, + 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, + 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, + 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, + 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, + 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, + 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, + 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, + 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, + 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, + 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, + 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, + 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, + 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, + 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, + 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, + 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, + 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, + 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, + 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, + 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, + 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, + 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, + 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, + 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, + 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, + 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, + 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, + 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, + 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, + 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, + 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, + 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, + 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, + 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, + 219,206,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 + Font Bounding box w= 4 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_4x6[1500] U8G_SECTION(".progmem.u8g_font_4x6") = { + 1,4,6,0,255,5,1,3,1,250,32,255,255,5,255,5, + 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, + 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, + 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, + 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, + 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, + 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, + 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, + 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, + 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, + 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, + 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, + 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, + 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, + 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, + 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, + 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, + 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, + 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, + 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, + 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, + 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, + 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, + 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, + 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, + 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, + 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, + 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, + 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, + 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, + 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, + 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, + 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, + 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, + 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, + 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, + 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, + 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, + 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, + 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, + 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, + 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, + 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, + 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, + 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, + 54,70,128,64,96,64,64,128,5,66,66,80,160,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0, + 64,18,21,69,128,0,128,128,128,2,53,69,64,224,128,224, + 64,2,53,69,32,64,96,64,160,2,68,68,144,96,96,144, + 2,53,69,160,64,224,64,64,18,21,69,128,128,0,128,128, + 1,54,70,96,192,160,96,32,192,6,49,65,160,1,70,70, + 96,144,208,208,144,96,2,53,69,96,160,96,0,224,3,67, + 67,80,160,80,3,50,66,224,32,4,49,65,224,3,68,68, + 96,240,208,96,6,49,65,224,4,51,67,64,160,64,2,53, + 69,64,224,64,0,224,3,36,68,192,64,128,192,2,37,69, + 192,64,128,64,128,21,34,66,64,128,1,53,69,160,160,160, + 192,128,2,69,69,112,208,208,80,80,20,17,65,128,18,34, + 66,64,128,3,36,68,64,192,64,64,2,53,69,64,160,64, + 0,224,3,67,67,160,80,160,1,70,70,128,128,128,80,112, + 16,1,70,70,128,128,176,16,32,48,1,70,70,192,64,128, + 80,176,16,2,53,69,64,0,64,128,96,2,53,69,128,64, + 160,224,160,2,53,69,32,64,160,224,160,2,53,69,192,64, + 160,224,160,2,53,69,96,192,160,224,160,2,53,69,160,64, + 160,224,160,2,53,69,64,64,160,224,160,2,69,69,112,160, + 240,160,176,1,54,70,64,160,128,160,64,128,2,53,69,128, + 224,192,128,224,2,53,69,32,224,192,128,224,2,53,69,96, + 224,192,128,224,2,53,69,160,224,192,128,224,2,53,69,128, + 224,64,64,224,2,53,69,32,224,64,64,224,2,53,69,64, + 224,64,64,224,2,53,69,160,64,64,64,224,2,69,69,224, + 80,208,80,224,2,69,69,80,160,224,224,160,2,53,69,128, + 64,160,160,64,2,53,69,32,64,160,160,64,2,53,69,64, + 64,160,160,64,2,69,69,112,224,160,160,64,2,53,69,160, + 64,160,160,64,3,51,67,160,64,160,2,53,69,96,160,224, + 160,192,2,53,69,128,64,160,160,224,2,53,69,32,64,160, + 160,224,2,53,69,64,0,160,160,224,2,53,69,160,0,160, + 160,224,2,53,69,32,0,160,64,64,2,53,69,128,192,160, + 192,128,1,54,70,64,160,192,160,224,128,2,53,69,128,64, + 96,160,96,2,53,69,32,64,96,160,96,2,53,69,96,0, + 96,160,96,2,69,69,80,160,96,160,96,2,53,69,160,0, + 96,160,96,2,53,69,64,0,96,160,96,2,68,68,112,176, + 160,112,1,53,69,64,160,128,96,64,2,53,69,128,64,160, + 192,96,2,53,69,32,64,160,192,96,2,53,69,192,64,160, + 192,96,2,53,69,160,64,160,192,96,2,53,69,128,64,64, + 64,224,2,53,69,32,192,64,64,224,2,53,69,64,160,64, + 64,224,2,53,69,160,0,192,64,224,2,53,69,160,64,96, + 160,64,2,69,69,80,160,192,160,160,2,53,69,128,64,64, + 160,64,2,53,69,32,64,64,160,64,2,53,69,64,0,64, + 160,64,2,53,69,224,0,64,160,64,2,53,69,160,0,64, + 160,64,2,53,69,64,0,224,0,64,2,52,68,96,160,160, + 192,2,53,69,128,64,160,160,96,2,53,69,32,64,160,160, + 96,2,53,69,64,0,160,160,96,2,53,69,160,0,160,160, + 96,1,54,70,32,64,160,224,32,192,1,54,70,128,128,192, + 160,192,128,1,54,70,160,0,160,224,32,192}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 + Font Bounding box w= 4 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_4x6r[734] U8G_SECTION(".progmem.u8g_font_4x6r") = { + 1,4,6,0,255,5,1,3,1,250,32,127,255,5,255,5, + 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, + 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, + 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, + 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, + 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, + 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, + 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, + 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, + 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, + 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, + 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, + 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, + 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, + 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, + 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, + 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, + 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, + 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, + 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, + 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, + 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, + 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, + 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, + 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, + 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, + 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, + 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, + 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, + 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, + 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, + 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, + 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, + 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, + 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, + 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, + 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, + 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, + 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, + 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, + 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, + 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, + 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, + 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, + 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, + 54,70,128,64,96,64,64,128,5,66,66,80,160,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 6, '1' Height: 6 + Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 5 h= 7 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-1 + X Font ascent = 6 descent=-1 + Max Font ascent = 6 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_5x7[1624] U8G_SECTION(".progmem.u8g_font_5x7") = { + 1,5,7,0,255,6,1,21,2,39,32,255,255,6,255,6, + 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, + 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, + 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, + 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, + 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, + 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, + 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, + 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, + 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, + 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, + 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, + 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, + 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, + 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, + 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, + 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, + 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, + 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, + 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, + 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, + 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, + 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, + 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, + 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, + 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, + 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, + 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, + 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, + 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, + 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, + 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, + 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, + 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, + 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, + 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, + 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, + 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, + 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, + 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, + 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, + 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, + 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, + 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, + 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, + 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, + 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, + 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, + 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, + 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,8,0,80,34,22,86,128,0,128,128,128, + 128,1,70,86,32,112,160,160,112,32,2,69,85,48,64,224, + 64,176,2,85,85,136,112,80,112,136,18,54,86,160,160,64, + 224,64,64,34,21,85,128,128,0,128,128,17,55,87,96,128, + 192,160,96,32,192,23,49,81,160,1,87,87,112,136,168,200, + 168,136,112,5,51,83,96,160,96,3,83,83,72,144,72,3, + 66,82,240,16,20,49,81,224,1,87,87,112,136,232,200,200, + 136,112,7,65,81,240,21,51,83,64,160,64,2,86,86,32, + 32,248,32,32,248,20,36,84,192,64,128,192,20,36,84,192, + 192,64,192,22,34,82,64,128,1,69,85,144,144,144,224,128, + 2,70,86,112,208,208,80,80,80,20,34,82,192,192,17,34, + 82,64,128,20,52,84,64,192,64,224,5,51,83,64,160,64, + 3,83,83,144,72,144,1,71,87,128,128,128,144,48,112,16, + 1,71,87,128,128,128,176,16,32,48,1,71,87,192,192,64, + 208,48,112,16,18,54,86,64,0,64,128,160,64,2,70,86, + 96,144,144,240,144,144,2,70,86,96,144,144,240,144,144,2, + 70,86,96,144,144,240,144,144,2,70,86,96,144,144,240,144, + 144,2,70,86,144,96,144,240,144,144,2,70,86,96,96,144, + 240,144,144,2,70,86,112,160,176,224,160,176,1,71,87,96, + 144,128,128,144,96,64,2,70,86,240,128,224,128,128,240,2, + 70,86,240,128,224,128,128,240,2,70,86,240,128,224,128,128, + 240,2,70,86,240,128,224,128,128,240,18,54,86,224,64,64, + 64,64,224,18,54,86,224,64,64,64,64,224,18,54,86,224, + 64,64,64,64,224,18,54,86,224,64,64,64,64,224,2,70, + 86,224,80,208,80,80,224,2,70,86,176,144,208,176,176,144, + 2,70,86,96,144,144,144,144,96,2,70,86,96,144,144,144, + 144,96,2,70,86,96,144,144,144,144,96,2,70,86,96,144, + 144,144,144,96,2,70,86,144,96,144,144,144,96,2,68,84, + 144,96,96,144,2,70,86,112,176,176,208,208,224,2,70,86, + 144,144,144,144,144,96,2,70,86,144,144,144,144,144,96,2, + 70,86,144,144,144,144,144,96,2,70,86,144,0,144,144,144, + 96,18,54,86,160,160,160,64,64,64,2,70,86,128,224,144, + 224,128,128,2,70,86,96,144,160,144,144,160,2,70,86,64, + 32,112,144,176,80,2,70,86,32,64,112,144,176,80,2,70, + 86,32,80,112,144,176,80,2,70,86,80,160,112,144,176,80, + 2,70,86,80,0,112,144,176,80,2,70,86,96,96,112,144, + 176,80,2,68,84,112,176,160,112,17,53,85,96,128,128,96, + 64,2,70,86,64,32,96,176,192,96,2,70,86,32,64,96, + 176,192,96,2,70,86,64,160,96,176,192,96,2,70,86,160, + 0,96,176,192,96,18,54,86,128,64,192,64,64,224,18,54, + 86,64,128,192,64,64,224,18,54,86,64,160,192,64,64,224, + 18,54,86,160,0,192,64,64,224,2,70,86,64,48,96,144, + 144,96,2,70,86,80,160,224,144,144,144,2,70,86,64,32, + 96,144,144,96,2,70,86,32,64,96,144,144,96,2,70,86, + 96,0,96,144,144,96,2,70,86,80,160,96,144,144,96,2, + 70,86,80,0,96,144,144,96,2,69,85,96,0,240,0,96, + 2,68,84,112,176,208,224,2,70,86,64,32,144,144,144,112, + 2,70,86,32,64,144,144,144,112,2,70,86,96,0,144,144, + 144,112,2,70,86,80,0,144,144,144,112,1,71,87,32,64, + 144,144,80,32,64,1,70,86,128,224,144,144,224,128,1,71, + 87,80,0,144,144,80,32,64}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 6, '1' Height: 6 + Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 5 h= 7 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-1 + X Font ascent = 6 descent=-1 + Max Font ascent = 6 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_5x7r[789] U8G_SECTION(".progmem.u8g_font_5x7r") = { + 1,5,7,0,255,6,1,21,2,39,32,127,255,6,255,6, + 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, + 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, + 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, + 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, + 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, + 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, + 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, + 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, + 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, + 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, + 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, + 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, + 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, + 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, + 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, + 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, + 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, + 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, + 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, + 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, + 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, + 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, + 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, + 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, + 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, + 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, + 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, + 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, + 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, + 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, + 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, + 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, + 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, + 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, + 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, + 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, + 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, + 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, + 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, + 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, + 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, + 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, + 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, + 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, + 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, + 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, + 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, + 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, + 66,82,80,160,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 6, '1' Height: 6 + Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 + Font Bounding box w= 5 h= 8 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-1 + X Font ascent = 6 descent=-1 + Max Font ascent = 7 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_SECTION(".progmem.u8g_font_5x8") = { + 1,5,8,0,255,6,1,33,2,53,32,255,255,7,255,6, + 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, + 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, + 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, + 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, + 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, + 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, + 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, + 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, + 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, + 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, + 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, + 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, + 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, + 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, + 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, + 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, + 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, + 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, + 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, + 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, + 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, + 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, + 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, + 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, + 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, + 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, + 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, + 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, + 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, + 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, + 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, + 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, + 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, + 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, + 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, + 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, + 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, + 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, + 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, + 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, + 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, + 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, + 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, + 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, + 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, + 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, + 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, + 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, + 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, + 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,9,0,80,34,22,86,128,0,128,128,128, + 128,1,70,86,32,112,160,160,112,32,2,70,86,32,80,224, + 64,80,160,2,85,85,136,112,80,112,136,2,86,86,136,80, + 248,32,248,32,34,23,87,128,128,128,0,128,128,128,2,71, + 87,112,128,224,144,112,16,224,23,49,81,160,2,86,86,112, + 168,200,200,168,112,20,53,85,96,160,96,0,224,3,67,83, + 80,160,80,18,51,83,224,32,32,20,49,81,224,2,86,86, + 112,232,216,232,216,112,23,49,81,224,21,51,83,64,160,64, + 18,53,85,64,224,64,0,224,20,53,85,64,160,32,64,224, + 20,53,85,192,32,192,32,192,22,34,82,64,128,1,69,85, + 144,144,144,224,128,2,86,86,120,232,232,104,40,40,36,17, + 81,128,17,34,82,64,128,20,53,85,64,192,64,64,224,20, + 53,85,64,160,64,0,224,3,67,83,160,80,160,2,71,87, + 128,128,128,160,96,240,32,2,71,87,128,128,160,208,16,32, + 112,2,71,87,128,64,128,96,160,240,32,18,54,86,64,0, + 64,128,160,64,2,71,87,64,32,96,144,240,144,144,2,71, + 87,32,64,96,144,240,144,144,2,71,87,96,144,96,144,240, + 144,144,2,71,87,80,160,96,144,240,144,144,2,71,87,144, + 0,96,144,240,144,144,2,71,87,96,144,96,144,240,144,144, + 2,70,86,112,160,160,240,160,176,1,71,87,96,144,128,128, + 144,96,64,2,71,87,64,32,240,128,224,128,240,2,71,87, + 32,64,240,128,224,128,240,2,71,87,96,144,240,128,224,128, + 240,2,71,87,144,0,240,128,224,128,240,18,55,87,128,64, + 224,64,64,64,224,18,55,87,32,64,224,64,64,64,224,18, + 55,87,64,160,224,64,64,64,224,18,55,87,160,0,224,64, + 64,64,224,2,86,86,112,72,232,72,72,112,2,71,87,80, + 160,144,208,176,144,144,2,71,87,64,32,96,144,144,144,96, + 2,71,87,32,64,96,144,144,144,96,2,71,87,96,144,96, + 144,144,144,96,2,71,87,80,160,96,144,144,144,96,2,71, + 87,144,0,96,144,144,144,96,18,51,83,160,64,160,2,70, + 86,112,176,176,208,208,224,2,71,87,64,32,144,144,144,144, + 96,2,71,87,32,64,144,144,144,144,96,2,71,87,96,144, + 144,144,144,144,96,2,71,87,144,0,144,144,144,144,96,2, + 87,87,16,32,136,80,32,32,32,2,70,86,128,224,144,144, + 224,128,2,70,86,96,144,160,160,144,160,2,71,87,64,32, + 0,112,144,144,112,2,71,87,32,64,0,112,144,144,112,2, + 71,87,32,80,0,112,144,144,112,2,71,87,80,160,0,112, + 144,144,112,2,70,86,80,0,112,144,144,112,2,71,87,96, + 144,96,112,144,144,112,2,84,84,240,104,176,120,17,53,85, + 96,128,128,96,64,2,71,87,64,32,0,96,176,192,96,2, + 71,87,32,64,0,96,176,192,96,2,71,87,96,144,0,96, + 176,192,96,2,70,86,80,0,96,176,192,96,18,55,87,128, + 64,0,192,64,64,224,18,55,87,32,64,0,192,64,64,224, + 18,55,87,64,160,0,192,64,64,224,18,54,86,160,0,192, + 64,64,224,2,71,87,160,64,160,16,112,144,96,2,71,87, + 80,160,0,224,144,144,144,2,71,87,64,32,0,96,144,144, + 96,2,71,87,32,64,0,96,144,144,96,2,71,87,96,144, + 0,96,144,144,96,2,71,87,80,160,0,96,144,144,96,2, + 70,86,144,0,96,144,144,96,18,53,85,64,0,224,0,64, + 2,68,84,112,176,208,224,2,71,87,64,32,0,144,144,144, + 112,2,71,87,32,64,0,144,144,144,112,2,71,87,96,144, + 0,144,144,144,112,2,70,86,144,0,144,144,144,112,1,72, + 88,32,64,0,144,144,112,144,96,1,71,87,128,128,224,144, + 224,128,128,1,71,87,144,0,144,144,112,144,96}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 6, '1' Height: 6 + Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 + Font Bounding box w= 5 h= 8 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-1 + X Font ascent = 6 descent=-1 + Max Font ascent = 7 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_5x8r[805] U8G_SECTION(".progmem.u8g_font_5x8r") = { + 1,5,8,0,255,6,1,33,2,53,32,127,255,7,255,6, + 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, + 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, + 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, + 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, + 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, + 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, + 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, + 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, + 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, + 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, + 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, + 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, + 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, + 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, + 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, + 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, + 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, + 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, + 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, + 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, + 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, + 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, + 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, + 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, + 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, + 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, + 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, + 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, + 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, + 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, + 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, + 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, + 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, + 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, + 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, + 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, + 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, + 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, + 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, + 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, + 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, + 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, + 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, + 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, + 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, + 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, + 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, + 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, + 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, + 66,82,80,160,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 6 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 + Font Bounding box w= 6 h=10 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x10[1866] U8G_SECTION(".progmem.u8g_font_6x10") = { + 1,6,10,0,254,7,1,54,2,104,32,255,254,8,254,7, + 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, + 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, + 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, + 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, + 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, + 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, + 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, + 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, + 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, + 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, + 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, + 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, + 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, + 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, + 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, + 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, + 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, + 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, + 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, + 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, + 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, + 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, + 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, + 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, + 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, + 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, + 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, + 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, + 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, + 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, + 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, + 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, + 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, + 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, + 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, + 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, + 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, + 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, + 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, + 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, + 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, + 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, + 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, + 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, + 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, + 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, + 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, + 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, + 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, + 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, + 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, + 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, + 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, + 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, + 32,192,6,83,99,72,168,144,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,10,0,96,34,23,103,128, + 0,128,128,128,128,128,1,87,103,32,120,160,160,160,120,32, + 2,87,103,48,72,64,224,64,72,176,2,85,101,136,112,80, + 112,136,1,88,104,136,136,80,32,248,32,32,32,34,23,103, + 128,128,128,0,128,128,128,1,88,104,112,128,224,144,72,56, + 8,112,25,49,97,160,2,87,103,112,136,168,200,168,136,112, + 19,70,102,112,144,176,80,0,240,2,101,101,36,72,144,72, + 36,20,66,98,240,16,21,65,97,240,2,87,103,112,136,232, + 200,200,136,112,9,81,97,248,22,51,99,64,160,64,2,86, + 102,32,32,248,32,32,248,21,69,101,96,144,32,64,240,21, + 69,101,224,16,96,16,224,40,34,98,64,128,1,86,102,136, + 136,136,200,176,128,2,87,103,120,232,232,104,40,40,40,37, + 17,97,128,32,34,98,64,128,21,53,101,64,192,64,64,224, + 19,70,102,96,144,144,96,0,240,2,101,101,144,72,36,72, + 144,1,105,105,64,192,64,64,228,12,20,60,4,1,105,105, + 64,192,64,64,232,20,4,8,28,1,89,105,192,32,64,32, + 200,24,40,120,8,2,87,103,32,0,32,32,64,136,112,2, + 88,104,64,32,112,136,136,248,136,136,2,88,104,16,32,112, + 136,136,248,136,136,2,88,104,32,80,112,136,136,248,136,136, + 2,88,104,72,176,112,136,136,248,136,136,2,88,104,80,0, + 112,136,136,248,136,136,2,88,104,32,80,112,136,136,248,136, + 136,2,103,103,60,80,144,156,240,144,156,0,89,105,112,136, + 128,128,128,136,112,32,64,2,88,104,64,248,128,128,240,128, + 128,248,2,88,104,16,248,128,128,240,128,128,248,2,88,104, + 32,248,128,128,240,128,128,248,2,88,104,80,248,128,128,240, + 128,128,248,18,56,104,128,64,224,64,64,64,64,224,18,56, + 104,32,64,224,64,64,64,64,224,18,56,104,64,160,224,64, + 64,64,64,224,18,56,104,160,0,224,64,64,64,64,224,2, + 87,103,240,72,72,232,72,72,240,2,88,104,40,80,136,200, + 168,152,136,136,2,88,104,64,32,112,136,136,136,136,112,2, + 88,104,16,32,112,136,136,136,136,112,2,88,104,32,80,112, + 136,136,136,136,112,2,88,104,40,80,112,136,136,136,136,112, + 2,88,104,80,0,112,136,136,136,136,112,2,85,101,136,80, + 32,80,136,2,87,103,112,152,152,168,200,200,112,2,88,104, + 64,32,136,136,136,136,136,112,2,88,104,16,32,136,136,136, + 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,88, + 104,80,0,136,136,136,136,136,112,2,88,104,16,32,136,136, + 80,32,32,32,2,87,103,128,240,136,240,128,128,128,2,87, + 103,112,136,144,160,144,136,176,2,88,104,64,32,0,112,8, + 120,136,120,2,88,104,16,32,0,112,8,120,136,120,2,88, + 104,32,80,0,112,8,120,136,120,2,88,104,40,80,0,112, + 8,120,136,120,2,87,103,80,0,112,8,120,136,120,2,88, + 104,32,80,32,112,8,120,136,120,2,101,101,120,20,124,144, + 124,0,87,103,112,136,128,136,112,32,64,2,88,104,64,32, + 0,112,136,248,128,112,2,88,104,16,32,0,112,136,248,128, + 112,2,88,104,32,80,0,112,136,248,128,112,2,87,103,80, + 0,112,136,248,128,112,18,56,104,128,64,0,192,64,64,64, + 224,18,56,104,64,128,0,192,64,64,64,224,18,56,104,64, + 160,0,192,64,64,64,224,18,55,103,160,0,192,64,64,64, + 224,2,87,103,192,48,112,136,136,136,112,2,88,104,40,80, + 0,176,200,136,136,136,2,88,104,64,32,0,112,136,136,136, + 112,2,88,104,16,32,0,112,136,136,136,112,2,88,104,32, + 80,0,112,136,136,136,112,2,88,104,40,80,0,112,136,136, + 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, + 0,248,0,32,2,85,101,120,152,168,200,240,2,88,104,64, + 32,0,136,136,136,152,104,2,88,104,16,32,0,136,136,136, + 152,104,2,88,104,32,80,0,136,136,136,152,104,2,87,103, + 80,0,136,136,136,152,104,0,89,105,16,32,136,136,152,104, + 8,136,112,0,88,104,128,240,136,136,136,240,128,128,0,89, + 105,80,0,136,136,152,104,8,136,112}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 5 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 + Font Bounding box w= 6 h=10 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x10r[889] U8G_SECTION(".progmem.u8g_font_6x10r") = { + 1,6,10,0,254,7,1,54,2,104,32,127,254,8,254,7, + 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, + 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, + 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, + 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, + 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, + 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, + 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, + 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, + 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, + 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, + 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, + 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, + 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, + 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, + 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, + 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, + 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, + 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, + 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, + 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, + 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, + 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, + 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, + 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, + 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, + 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, + 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, + 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, + 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, + 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, + 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, + 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, + 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, + 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, + 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, + 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, + 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, + 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, + 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, + 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, + 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, + 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, + 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, + 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, + 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, + 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, + 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, + 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, + 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, + 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, + 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, + 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, + 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, + 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, + 32,192,6,83,99,72,168,144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 3, '1' Height: 8 + Calculated Max Values w= 6 h=12 x= 5 y= 8 dx= 6 dy= 0 ascent=10 len=12 + Font Bounding box w= 6 h=12 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 0 + X Font ascent = 8 descent= 0 + Max Font ascent =10 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[2382] U8G_SECTION(".progmem.u8g_font_6x12_67_75") = { + 1,6,12,0,254,3,2,41,3,99,0,255,0,10,254,8, + 0,2,87,103,168,0,136,0,136,0,168,2,87,103,240,136, + 232,168,232,136,240,2,87,103,112,168,248,168,248,168,112,2, + 87,103,112,136,8,8,8,136,112,18,69,101,96,144,16,144, + 96,1,88,104,112,136,128,128,136,120,8,8,2,87,103,32, + 32,32,32,168,112,32,2,103,103,248,252,252,156,252,252,248, + 2,87,103,112,248,248,168,248,248,112,255,255,255,255,255,255, + 255,3,85,101,32,64,248,64,32,2,87,103,32,112,168,32, + 32,32,32,3,85,101,32,16,248,16,32,2,87,103,32,32, + 32,32,168,112,32,4,83,99,80,248,80,2,87,103,32,112, + 168,32,168,112,32,2,89,105,192,240,224,160,32,16,16,8, + 8,2,89,105,24,120,56,40,32,64,64,128,128,2,89,105, + 128,128,64,64,32,40,56,120,24,2,89,105,8,8,16,16, + 32,160,224,240,192,3,101,101,40,72,252,80,48,3,101,101, + 48,40,252,72,80,4,99,99,192,216,100,4,99,99,12,108, + 152,3,101,101,40,80,252,80,40,2,88,104,32,112,168,112, + 168,32,32,32,3,101,101,80,40,252,40,80,2,88,104,32, + 32,32,168,112,168,112,32,3,101,101,36,72,240,72,36,3, + 101,101,144,72,60,72,144,3,85,101,40,72,248,72,40,2, + 87,103,32,112,168,32,32,32,248,3,85,101,160,144,248,144, + 160,2,87,103,248,32,32,32,168,112,32,2,87,103,32,112, + 168,32,168,112,248,3,101,101,40,68,248,64,32,3,101,101, + 80,136,124,8,16,3,101,101,32,76,252,72,40,3,101,101, + 16,200,252,72,80,3,100,100,72,220,236,72,3,101,101,8, + 88,252,104,64,2,87,103,128,144,176,208,144,56,16,2,88, + 104,32,64,248,72,40,8,8,8,2,88,104,32,16,248,144, + 160,128,128,128,2,88,104,8,8,8,40,72,248,64,32,2, + 87,103,128,128,160,144,248,16,32,3,84,100,240,16,56,16, + 3,85,101,8,8,72,248,64,3,85,101,48,72,72,232,72, + 3,85,101,96,144,144,184,16,2,88,104,248,128,224,192,160, + 32,16,16,2,89,105,160,192,248,192,168,24,248,24,40,2, + 86,102,56,48,168,136,136,112,2,86,102,224,96,168,136,136, + 112,5,83,99,32,64,248,3,83,99,248,64,32,34,56,104, + 128,192,160,128,128,128,128,128,2,56,104,32,96,160,32,32, + 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, + 56,104,128,128,128,128,128,160,192,128,2,56,104,32,32,32, + 32,32,160,96,32,2,89,105,32,16,248,16,32,64,248,64, + 32,2,88,104,80,240,80,80,80,80,120,80,2,89,105,32, + 64,248,64,32,16,248,16,32,2,89,105,32,64,248,64,32, + 64,248,64,32,2,88,104,80,248,80,80,80,80,80,80,2, + 89,105,32,16,248,16,32,16,248,16,32,2,88,104,80,80, + 80,80,80,80,248,80,2,87,103,32,64,248,0,248,16,32, + 2,87,103,32,16,248,0,248,64,32,2,103,103,20,40,124, + 144,124,32,80,2,103,103,8,88,252,164,252,104,64,2,103, + 103,160,80,248,36,248,16,40,3,85,101,32,120,128,120,32, + 2,87,103,32,80,216,80,80,80,80,3,85,101,32,240,8, + 240,32,2,87,103,80,80,80,80,216,80,32,3,101,101,72, + 252,132,252,72,2,88,104,32,80,216,80,80,216,80,32,2, + 102,102,248,160,208,168,148,8,2,102,102,124,20,44,84,164, + 64,2,102,102,64,164,84,44,20,124,2,102,102,8,148,168, + 208,160,248,2,103,103,16,60,64,252,64,60,16,2,103,103, + 32,240,8,252,8,240,32,3,100,100,64,232,212,64,3,100, + 100,8,92,172,8,2,88,104,32,112,168,32,112,32,112,32, + 2,88,104,32,112,32,112,32,168,112,32,3,101,101,32,64, + 212,64,32,2,88,104,32,112,136,32,0,32,0,32,3,101, + 101,16,8,172,8,16,2,88,104,32,0,32,0,32,136,112, + 32,3,85,101,160,192,248,192,160,3,85,101,40,24,248,24, + 40,3,85,101,32,120,136,120,32,2,88,104,32,80,216,80, + 80,80,80,112,3,85,101,32,240,136,240,32,2,88,104,112, + 80,80,80,80,216,80,32,2,89,105,32,80,216,80,112,0, + 112,80,112,2,89,105,32,80,216,80,80,80,216,136,248,2, + 89,105,32,80,248,136,80,80,216,136,248,2,89,105,32,112, + 248,112,112,112,248,168,248,2,89,105,32,80,216,80,216,80, + 80,80,112,2,89,105,32,80,216,80,216,80,216,136,248,3, + 85,101,160,240,136,240,160,2,88,104,248,128,176,160,144,16, + 8,8,2,88,104,128,128,64,72,40,104,8,248,2,88,104, + 32,80,216,80,80,216,80,32,3,101,101,16,104,252,104,16, + 2,88,104,80,120,80,80,80,80,240,80,2,89,105,16,248, + 16,16,248,16,16,248,16,3,101,101,40,72,252,72,40,3, + 101,101,80,72,252,72,80,3,101,101,48,120,252,120,48,3, + 101,101,56,88,252,88,56,3,101,101,112,104,252,104,112,3, + 101,101,48,120,252,120,48,3,85,101,32,96,184,96,32,3, + 85,101,32,48,232,48,32,3,101,101,48,120,180,120,48,6, + 102,102,252,252,252,252,252,252,0,98,98,252,252,0,99,99, + 252,252,252,0,101,101,252,252,252,252,252,0,102,102,252,252, + 252,252,252,252,0,104,104,252,252,252,252,252,252,252,252,0, + 105,105,252,252,252,252,252,252,252,252,252,0,107,107,252,252, + 252,252,252,252,252,252,252,252,252,0,108,108,252,252,252,252, + 252,252,252,252,252,252,252,252,0,92,108,248,248,248,248,248, + 248,248,248,248,248,248,248,0,76,108,240,240,240,240,240,240, + 240,240,240,240,240,240,0,76,108,240,240,240,240,240,240,240, + 240,240,240,240,240,0,60,108,224,224,224,224,224,224,224,224, + 224,224,224,224,0,44,108,192,192,192,192,192,192,192,192,192, + 192,192,192,0,44,108,192,192,192,192,192,192,192,192,192,192, + 192,192,0,28,108,128,128,128,128,128,128,128,128,128,128,128, + 128,48,60,108,224,224,224,224,224,224,224,224,224,224,224,224, + 1,107,107,168,0,84,0,168,0,84,0,168,0,84,0,108, + 108,168,84,168,84,168,84,168,84,168,84,168,84,0,108,108, + 84,252,168,252,84,252,168,252,84,252,168,252,10,98,98,252, + 252,80,28,108,128,128,128,128,128,128,128,128,128,128,128,128, + 0,54,102,224,224,224,224,224,224,48,54,102,224,224,224,224, + 224,224,6,54,102,224,224,224,224,224,224,0,108,108,224,224, + 224,224,224,224,252,252,252,252,252,252,0,108,108,224,224,224, + 224,224,224,28,28,28,28,28,28,0,108,108,252,252,252,252, + 252,252,224,224,224,224,224,224,0,108,108,252,252,252,252,252, + 252,28,28,28,28,28,28,54,54,102,224,224,224,224,224,224, + 0,108,108,28,28,28,28,28,28,224,224,224,224,224,224,0, + 108,108,28,28,28,28,28,28,252,252,252,252,252,252,2,85, + 101,248,248,248,248,248,2,85,101,248,136,136,136,248,2,85, + 101,112,136,136,136,112,2,85,101,248,136,168,136,248,2,85, + 101,248,136,248,136,248,2,85,101,248,168,168,168,248,2,85, + 101,248,168,248,168,248,2,85,101,248,200,168,152,248,2,85, + 101,248,152,168,200,248,2,85,101,248,216,168,216,248,20,51, + 99,224,224,224,20,51,99,224,160,224,3,101,101,252,252,252, + 252,252,3,101,101,252,132,132,132,252,17,74,106,240,240,240, + 240,240,240,240,240,240,240,17,74,106,240,144,144,144,144,144, + 144,144,144,240,4,99,99,60,120,240,4,99,99,60,72,240, + 2,87,103,32,32,112,112,248,248,248,2,87,103,32,32,80, + 80,136,136,248,3,85,101,32,32,112,112,248,3,85,101,32, + 32,80,80,248,18,71,103,128,192,224,240,224,192,128,18,71, + 103,128,192,160,144,160,192,128,19,53,101,128,192,224,192,128, + 19,53,101,128,192,160,192,128,3,101,101,192,240,252,240,192, + 3,101,101,192,176,140,176,192,2,87,103,248,248,248,112,112, + 32,32,2,87,103,248,136,136,80,80,32,32,2,85,101,248, + 112,112,32,32,2,85,101,248,80,80,32,32,18,71,103,16, + 48,112,240,112,48,16,18,71,103,16,48,80,144,80,48,16, + 19,53,101,32,96,224,96,32,19,53,101,32,96,160,96,32, + 3,101,101,12,60,252,60,12,3,101,101,12,52,196,52,12, + 3,85,101,32,112,248,112,32,3,85,101,32,80,136,80,32, + 3,85,101,32,80,168,80,32,2,102,102,48,72,180,180,72, + 48,2,87,103,32,80,80,136,80,80,32,2,102,102,48,72, + 132,132,72,48,2,102,102,32,8,128,4,64,16,2,85,101, + 112,168,168,168,112,2,87,103,112,136,168,216,168,136,112,2, + 102,102,48,120,252,252,120,48,2,102,102,48,104,228,228,104, + 48,2,102,102,48,88,156,156,88,48,2,102,102,48,72,132, + 252,120,48,2,102,102,48,120,252,132,72,48,2,102,102,48, + 88,156,132,72,48,2,102,102,48,104,228,132,72,48,18,89, + 105,8,56,120,120,248,120,120,56,8,2,89,105,128,224,240, + 240,248,240,240,224,128,0,108,108,252,252,252,252,204,132,132, + 204,252,252,252,252,0,108,108,252,252,252,204,180,120,120,180, + 204,252,252,252,6,102,102,252,252,252,204,180,120,0,102,102, + 120,180,204,252,252,252,5,51,99,32,64,128,53,51,99,128, + 64,32,50,51,99,32,64,128,2,51,99,128,64,32,5,99, + 99,48,72,132,2,99,99,132,72,48,2,85,101,8,24,56, + 120,248,2,85,101,128,192,224,240,248,2,85,101,248,240,224, + 192,128,2,85,101,248,120,56,24,8,2,85,101,112,136,136, + 136,112,2,85,101,248,232,232,232,248,2,85,101,248,184,184, + 184,248,2,85,101,248,248,232,200,248,2,85,101,248,152,184, + 248,248,2,85,101,248,168,168,168,248,2,87,103,32,32,80, + 112,168,136,248,2,87,103,32,32,112,112,232,232,248,2,87, + 103,32,32,112,112,184,184,248,2,103,103,48,72,132,132,132, + 72,48,2,85,101,248,168,232,136,248,2,85,101,248,136,232, + 168,248,2,85,101,248,136,184,168,248,2,85,101,248,168,184, + 136,248,2,85,101,112,168,232,136,112,2,85,101,112,136,232, + 168,112,2,85,101,112,136,184,168,112,2,85,101,112,168,184, + 136,112,3,85,101,248,144,160,192,128,3,85,101,248,72,40, + 24,8,3,85,101,128,192,160,144,248,20,68,100,240,144,144, + 240,19,68,100,240,240,240,240,20,68,100,240,144,144,240,20, + 68,100,240,240,240,240,3,85,101,8,24,40,72,248}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 7, '1' Height: 3 + Calculated Max Values w= 6 h=10 x= 1 y= 2 dx= 6 dy= 0 ascent= 9 len=10 + Font Bounding box w= 6 h=12 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 7 descent= 0 + X Font ascent = 7 descent= 0 + Max Font ascent = 9 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x12_75r[427] U8G_SECTION(".progmem.u8g_font_6x12_75r") = { + 1,6,12,0,254,7,1,41,0,0,32,79,0,9,255,7, + 0,2,85,101,248,248,248,248,248,2,85,101,248,136,136,136, + 248,2,85,101,112,136,136,136,112,2,85,101,248,136,168,136, + 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, + 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, + 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, + 248,20,51,99,224,224,224,20,51,99,224,160,224,3,101,101, + 252,252,252,252,252,3,101,101,252,132,132,132,252,17,74,106, + 240,240,240,240,240,240,240,240,240,240,17,74,106,240,144,144, + 144,144,144,144,144,144,240,4,99,99,60,120,240,4,99,99, + 60,72,240,2,87,103,32,32,112,112,248,248,248,2,87,103, + 32,32,80,80,136,136,248,3,85,101,32,32,112,112,248,3, + 85,101,32,32,80,80,248,18,71,103,128,192,224,240,224,192, + 128,18,71,103,128,192,160,144,160,192,128,19,53,101,128,192, + 224,192,128,19,53,101,128,192,160,192,128,3,101,101,192,240, + 252,240,192,3,101,101,192,176,140,176,192,2,87,103,248,248, + 248,112,112,32,32,2,87,103,248,136,136,80,80,32,32,2, + 85,101,248,112,112,32,32,2,85,101,248,80,80,32,32,18, + 71,103,16,48,112,240,112,48,16,18,71,103,16,48,80,144, + 80,48,16,19,53,101,32,96,224,96,32,19,53,101,32,96, + 160,96,32,3,101,101,12,60,252,60,12,3,101,101,12,52, + 196,52,12,3,85,101,32,112,248,112,32,3,85,101,32,80, + 136,80,32,3,85,101,32,80,168,80,32,2,102,102,48,72, + 180,180,72,48,2,87,103,32,80,80,136,80,80,32,2,102, + 102,48,72,132,132,72,48,2,102,102,32,8,128,4,64,16, + 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, + 136,112,2,102,102,48,120,252,252,120,48}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 6, '1' Height: 6 + Calculated Max Values w= 6 h=12 x= 2 y= 4 dx= 6 dy= 0 ascent=10 len=12 + Font Bounding box w= 6 h=12 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 6 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[2316] U8G_SECTION(".progmem.u8g_font_6x12_78_79") = { + 1,6,12,0,254,6,2,80,3,53,0,255,0,10,254,9, + 0,2,87,103,168,0,136,0,136,0,168,3,101,101,144,252, + 32,64,96,3,101,101,196,200,48,200,196,3,101,101,96,64, + 32,252,144,2,103,103,204,148,232,48,232,148,204,255,1,105, + 105,120,132,180,180,164,180,180,132,120,1,105,105,120,132,180, + 132,180,132,204,132,120,3,101,101,32,176,252,176,32,2,101, + 101,252,204,180,132,252,255,255,18,72,104,144,144,80,112,240, + 240,240,112,3,102,102,4,56,124,124,64,128,2,102,102,64, + 224,80,40,20,12,3,99,99,248,140,248,2,102,102,12,20, + 40,80,224,64,3,100,100,248,132,132,248,4,99,99,248,244, + 248,2,87,103,8,8,16,16,160,224,64,2,103,103,12,12, + 28,216,248,112,48,2,85,101,136,80,32,80,136,3,85,101, + 216,248,32,248,216,2,86,102,136,80,32,80,136,128,1,103, + 103,204,204,120,112,252,204,192,1,103,103,120,204,164,244,164, + 204,120,2,102,102,48,48,252,252,48,48,3,85,101,32,32, + 216,32,32,2,102,102,48,48,204,204,48,48,2,87,103,32, + 32,248,32,32,32,32,1,90,106,112,80,216,136,216,80,80, + 80,80,112,2,105,105,120,220,188,220,88,88,88,120,120,2, + 87,103,112,32,168,248,168,32,112,2,87,103,32,248,80,80, + 80,248,32,3,85,101,32,32,248,32,32,3,102,102,48,48, + 252,252,48,48,2,104,104,48,120,48,252,252,48,120,48,2, + 87,103,32,112,168,248,168,112,32,3,85,101,32,112,248,112, + 32,3,85,101,32,112,216,112,32,255,3,85,101,32,216,80, + 32,80,2,87,103,112,216,136,216,168,248,112,3,86,102,32, + 32,248,80,112,136,3,86,102,32,32,216,32,80,136,3,86, + 102,32,32,248,112,112,136,3,86,102,32,32,248,112,112,136, + 3,86,102,32,32,232,48,80,136,2,102,102,48,88,140,88, + 172,88,2,86,102,32,168,112,112,168,32,2,87,103,32,168, + 112,80,112,168,32,2,87,103,32,168,112,248,112,168,32,2, + 87,103,32,168,112,248,112,168,32,2,87,103,32,168,112,248, + 112,168,32,2,86,102,32,168,112,112,168,32,1,88,104,80, + 32,168,112,112,168,32,80,1,88,104,80,32,168,112,112,168, + 32,80,2,103,103,80,248,124,248,124,248,80,2,103,103,80, + 168,116,248,116,168,80,2,86,102,32,168,112,112,168,32,2, + 87,103,32,168,112,80,112,168,32,2,86,102,32,168,112,112, + 168,32,2,103,103,168,216,80,168,116,168,32,3,87,103,32, + 112,248,216,112,248,216,3,87,103,32,112,216,168,80,248,216, + 3,86,102,32,112,216,112,248,32,2,87,103,112,248,168,216, + 168,248,112,2,86,102,32,168,112,112,168,32,2,86,102,32, + 168,112,112,168,32,2,86,102,32,168,112,112,168,32,2,86, + 102,32,168,112,112,168,32,2,87,103,32,168,112,248,112,168, + 32,2,87,103,32,168,112,248,112,168,32,2,87,103,32,168, + 112,248,112,168,32,2,87,103,32,168,112,248,112,168,32,2, + 87,103,32,168,112,248,112,168,32,255,3,101,101,120,140,140, + 140,120,255,2,102,102,248,140,140,140,252,124,2,102,102,124, + 252,140,140,140,248,2,102,102,248,140,140,140,252,124,2,102, + 102,124,252,140,140,140,248,255,255,255,2,103,103,16,56,84, + 236,84,56,16,255,34,23,103,128,128,128,128,128,128,128,18, + 39,103,192,192,192,192,192,192,192,18,71,103,240,240,240,240, + 240,240,240,22,69,101,96,128,224,240,96,22,69,101,96,240, + 112,16,96,6,101,101,72,144,216,252,72,6,101,101,72,252, + 108,36,72,255,255,1,106,106,8,124,200,200,200,120,8,200, + 136,112,2,89,105,112,248,248,112,32,0,32,112,32,2,88, + 104,216,248,112,32,0,32,112,32,2,85,101,216,248,248,112, + 32,2,87,103,96,240,240,120,240,240,96,2,104,104,100,184, + 32,216,248,240,228,120,2,102,102,128,88,120,220,152,64,18, + 56,104,32,64,192,192,192,192,64,32,18,56,104,128,64,96, + 96,96,96,64,128,18,40,104,64,192,192,192,192,192,192,64, + 18,40,104,128,192,192,192,192,192,192,128,17,73,105,48,48, + 96,96,192,96,96,48,48,17,73,105,192,192,96,96,48,96, + 96,192,192,2,87,103,24,48,96,192,96,48,24,2,87,103, + 192,96,48,24,48,96,192,1,89,105,56,56,112,112,224,112, + 112,56,56,1,89,105,224,224,112,112,56,112,112,224,224,17, + 57,105,32,64,128,128,128,128,128,64,32,17,57,105,128,64, + 32,32,32,32,32,64,128,17,73,105,48,96,96,96,192,96, + 96,96,48,17,73,105,192,96,96,96,48,96,96,96,192,2, + 89,105,112,248,216,152,216,216,136,248,112,2,89,105,112,248, + 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, + 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, + 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, + 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, + 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, + 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, + 172,148,148,148,172,252,120,2,89,105,112,136,168,232,168,168, + 248,136,112,2,89,105,112,136,168,216,152,168,248,136,112,2, + 89,105,112,136,232,152,168,152,232,136,112,2,89,105,112,136, + 200,200,232,248,168,136,112,2,89,105,112,136,248,200,232,152, + 232,136,112,2,89,105,112,136,184,200,232,216,168,136,112,2, + 89,105,112,136,248,152,168,168,168,136,112,2,89,105,112,136, + 168,216,168,216,168,136,112,2,89,105,112,136,168,216,184,152, + 232,136,112,2,105,105,120,132,212,236,236,236,212,132,120,2, + 89,105,112,248,216,152,216,216,216,248,112,2,89,105,112,248, + 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, + 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, + 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, + 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, + 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, + 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, + 172,148,148,148,172,252,120,3,101,101,48,24,252,24,48,255, + 255,255,2,85,101,128,64,40,24,56,3,85,101,32,48,248, + 48,32,2,85,101,56,24,40,64,128,3,101,101,64,48,252, + 48,64,2,102,102,48,56,252,252,56,48,4,99,99,8,252, + 8,2,102,102,16,24,252,252,24,16,3,99,99,8,188,8, + 2,102,102,16,24,188,188,24,16,3,101,101,16,248,252,248, + 16,2,103,103,192,176,72,60,120,240,192,2,103,103,192,240, + 120,60,72,176,192,3,101,101,224,120,60,120,224,3,102,102, + 128,144,248,252,120,16,2,102,102,16,120,252,248,144,128,2, + 103,103,32,240,248,252,248,240,32,3,101,101,32,240,252,240, + 32,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, + 16,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, + 16,2,102,102,16,232,132,132,232,16,2,102,102,16,232,132, + 132,232,16,3,101,101,16,232,132,232,16,255,3,101,101,16, + 232,132,232,16,2,103,103,120,220,12,4,12,220,120,3,99, + 99,232,124,232,2,102,102,64,224,96,16,12,12,3,99,99, + 232,124,232,2,102,102,12,12,16,96,224,64,2,102,102,96, + 224,224,20,12,28,2,101,101,192,232,124,232,192,2,102,102, + 28,12,20,224,224,96,2,101,101,16,200,252,200,16,2,101, + 101,16,200,252,200,16,3,99,99,232,124,232,3,100,100,232, + 252,252,232,2,101,101,80,232,4,232,80,255,2,85,101,136, + 144,160,192,248,2,86,102,32,32,80,112,168,248,2,86,102, + 32,32,32,32,32,248,2,87,103,120,128,144,168,144,128,120, + 2,87,103,240,8,72,168,72,8,240,18,73,105,64,160,160, + 32,32,64,64,64,48,18,73,105,32,80,80,64,64,32,32, + 32,192,2,87,103,136,168,136,80,80,32,32,2,104,104,128, + 156,160,160,160,92,64,64,2,104,104,4,228,20,20,20,232, + 8,8,18,55,103,64,64,64,224,64,64,64,255,2,103,103, + 252,64,32,32,32,32,64,255,255,255,3,85,101,32,80,168, + 80,32,2,87,103,32,32,80,80,136,168,136,2,87,103,168, + 168,168,168,168,168,112,3,85,101,8,8,40,8,248,3,85, + 101,248,128,160,128,128,3,101,101,196,108,84,108,196,3,101, + 101,140,216,168,216,140,2,101,101,204,120,72,120,204,2,87, + 103,32,32,32,32,32,32,248,2,87,103,248,32,32,32,32, + 32,32,3,85,101,80,216,80,216,80,3,85,101,80,80,216, + 80,80,4,99,99,64,188,64,4,99,99,128,252,128,4,99, + 99,4,252,4,18,55,103,64,160,64,64,64,64,224,3,85, + 101,32,80,248,80,32,3,85,101,32,80,136,80,32,3,101, + 101,16,40,196,40,16,3,101,101,32,80,140,80,32,3,101, + 101,124,68,196,68,124,3,101,101,248,136,140,136,248,1,90, + 106,248,160,160,160,160,160,160,160,160,248,1,90,106,248,40, + 40,40,40,40,40,40,40,248,17,57,105,32,32,64,64,128, + 64,64,32,32,17,57,105,128,128,64,64,32,64,64,128,128, + 0,107,107,20,40,40,80,80,160,80,80,40,40,20,0,107, + 107,160,80,80,40,40,20,40,40,80,80,160,16,75,107,16, + 32,96,160,160,160,160,160,96,32,16,16,76,108,128,64,96, + 80,80,80,80,80,80,96,64,128,17,41,105,128,64,64,64, + 64,64,64,64,128,17,41,105,64,128,128,128,128,128,128,128, + 64,2,87,103,32,112,168,168,168,168,168,2,87,103,168,168, + 168,168,168,112,32,2,103,103,56,68,228,68,4,68,56,2, + 103,103,112,136,156,136,128,136,112,4,99,99,104,252,104,3, + 101,101,32,64,252,64,32,3,101,101,16,8,252,8,16,4, + 99,99,72,252,72,2,103,103,16,32,124,128,124,32,16,2, + 103,103,32,16,248,4,248,16,32,3,101,101,72,252,132,252, + 72,3,101,101,36,68,252,68,36,3,101,101,144,136,252,136, + 144,2,103,103,20,36,124,132,124,36,20,2,103,103,160,144, + 248,132,248,144,160,3,100,100,8,92,172,8}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 6 h=10 x= 2 y=10 dx= 6 dy= 0 ascent=10 len=10 + Font Bounding box w= 6 h=12 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =10 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x12[1933] U8G_SECTION(".progmem.u8g_font_6x12") = { + 1,6,12,0,254,7,1,53,2,107,32,255,254,10,254,8, + 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, + 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, + 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, + 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, + 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, + 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, + 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, + 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, + 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, + 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, + 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, + 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, + 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, + 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, + 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, + 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, + 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, + 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, + 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, + 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, + 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, + 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, + 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, + 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, + 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, + 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, + 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, + 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, + 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, + 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, + 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, + 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, + 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, + 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, + 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, + 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, + 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, + 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, + 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, + 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, + 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, + 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, + 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, + 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, + 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, + 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, + 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, + 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, + 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, + 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, + 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, + 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, + 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, + 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, + 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, + 144,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,12,0,96,34,23,103,128,0,128,128,128,128,128,1, + 87,103,32,112,168,160,168,112,32,2,87,103,48,72,64,224, + 64,72,176,2,85,101,168,80,136,80,168,2,87,103,136,80, + 248,32,248,32,32,34,23,103,128,128,128,0,128,128,128,18, + 72,104,112,128,96,144,144,96,16,224,25,49,97,160,2,103, + 103,120,132,148,164,148,132,120,22,53,101,96,160,96,0,224, + 2,85,101,40,80,160,80,40,3,83,99,248,8,8,21,49, + 97,224,2,103,103,120,132,180,164,164,132,120,9,81,97,248, + 23,68,100,96,144,144,96,2,87,103,32,32,248,32,32,0, + 248,23,53,101,64,160,32,64,224,23,53,101,192,32,64,32, + 192,23,51,99,32,64,128,0,87,103,136,136,136,152,232,128, + 128,2,88,104,120,232,232,232,104,40,40,40,37,34,98,192, + 192,16,50,98,32,192,23,53,101,64,192,64,64,224,23,53, + 101,64,160,64,0,224,2,85,101,160,80,40,80,160,2,90, + 106,64,192,64,64,80,48,80,120,16,16,2,90,106,64,192, + 64,64,80,40,8,16,32,56,2,90,106,192,32,64,32,208, + 48,80,120,16,16,2,87,103,32,0,32,32,64,136,112,2, + 90,106,64,32,0,112,136,136,248,136,136,136,2,90,106,16, + 32,0,112,136,136,248,136,136,136,2,90,106,32,80,0,112, + 136,136,248,136,136,136,2,90,106,104,176,0,112,136,136,248, + 136,136,136,2,89,105,80,0,112,136,136,248,136,136,136,2, + 90,106,32,80,32,112,136,136,248,136,136,136,2,87,103,120, + 160,160,240,160,160,184,0,89,105,112,136,128,128,128,136,112, + 16,96,2,90,106,64,32,0,248,128,128,240,128,128,248,2, + 90,106,16,32,0,248,128,128,240,128,128,248,2,90,106,32, + 80,0,248,128,128,240,128,128,248,2,89,105,80,0,248,128, + 128,240,128,128,248,18,58,106,128,64,0,224,64,64,64,64, + 64,224,18,58,106,32,64,0,224,64,64,64,64,64,224,18, + 58,106,64,160,0,224,64,64,64,64,64,224,18,57,105,160, + 0,224,64,64,64,64,64,224,2,87,103,112,72,72,232,72, + 72,112,2,90,106,104,176,0,136,136,200,168,152,136,136,2, + 90,106,64,32,0,112,136,136,136,136,136,112,2,90,106,16, + 32,0,112,136,136,136,136,136,112,2,90,106,32,80,0,112, + 136,136,136,136,136,112,2,90,106,104,176,0,112,136,136,136, + 136,136,112,2,89,105,80,0,112,136,136,136,136,136,112,3, + 85,101,136,80,32,80,136,1,89,105,8,112,152,168,168,168, + 200,112,128,2,90,106,64,32,0,136,136,136,136,136,136,112, + 2,90,106,16,32,0,136,136,136,136,136,136,112,2,90,106, + 32,80,0,136,136,136,136,136,136,112,2,89,105,80,0,136, + 136,136,136,136,136,112,2,90,106,16,32,0,136,136,80,32, + 32,32,32,18,71,103,128,224,144,144,144,224,128,2,87,103, + 112,136,144,160,144,136,176,2,88,104,64,32,0,112,8,120, + 136,120,2,88,104,16,32,0,112,8,120,136,120,2,88,104, + 32,80,0,112,8,120,136,120,2,88,104,104,176,0,112,8, + 120,136,120,2,87,103,80,0,112,8,120,136,120,2,88,104, + 32,80,32,112,8,120,136,120,2,85,101,112,40,112,160,120, + 0,87,103,112,136,128,136,112,16,96,2,88,104,64,32,0, + 112,136,240,128,112,2,88,104,16,32,0,112,136,240,128,112, + 2,88,104,32,80,0,112,136,240,128,112,2,87,103,80,0, + 112,136,240,128,112,18,56,104,128,64,0,192,64,64,64,224, + 18,56,104,32,64,0,192,64,64,64,224,18,56,104,64,160, + 0,192,64,64,64,224,18,55,103,160,0,192,64,64,64,224, + 2,89,105,80,32,80,8,120,136,136,136,112,2,88,104,104, + 176,0,176,200,136,136,136,2,88,104,64,32,0,112,136,136, + 136,112,2,88,104,16,32,0,112,136,136,136,112,2,88,104, + 32,80,0,112,136,136,136,112,2,88,104,104,176,0,112,136, + 136,136,112,2,87,103,80,0,112,136,136,136,112,3,85,101, + 32,0,248,0,32,2,85,101,120,152,168,200,240,2,88,104, + 64,32,0,136,136,136,136,112,2,88,104,16,32,0,136,136, + 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,87, + 103,80,0,136,136,136,136,112,0,90,106,16,32,0,136,136, + 136,80,32,64,128,0,89,105,128,128,240,136,136,136,240,128, + 128,0,89,105,80,0,136,136,136,80,32,64,128}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 5 h= 9 x= 2 y=10 dx= 6 dy= 0 ascent=10 len= 9 + Font Bounding box w= 6 h=12 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =10 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x12r[898] U8G_SECTION(".progmem.u8g_font_6x12r") = { + 1,6,12,0,254,7,1,53,2,107,32,127,254,10,254,8, + 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, + 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, + 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, + 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, + 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, + 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, + 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, + 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, + 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, + 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, + 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, + 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, + 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, + 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, + 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, + 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, + 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, + 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, + 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, + 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, + 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, + 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, + 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, + 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, + 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, + 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, + 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, + 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, + 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, + 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, + 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, + 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, + 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, + 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, + 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, + 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, + 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, + 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, + 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, + 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, + 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, + 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, + 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, + 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, + 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, + 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, + 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, + 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, + 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, + 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, + 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, + 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, + 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, + 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, + 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, + 144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 3, '1' Height: 9 + Calculated Max Values w= 6 h=13 x= 5 y= 9 dx= 6 dy= 0 ascent=11 len=13 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[2236] U8G_SECTION(".progmem.u8g_font_6x13_67_75") = { + 1,6,13,0,254,3,1,73,2,147,32,255,0,11,254,9, + 0,3,101,101,80,40,252,40,80,2,89,105,32,32,32,32, + 168,112,168,112,32,3,101,101,36,72,240,72,36,3,101,101, + 144,72,60,72,144,3,85,101,32,72,248,72,32,2,89,105, + 32,112,168,32,32,32,32,32,248,3,85,101,32,144,248,144, + 32,2,89,105,248,32,32,32,32,32,168,112,32,2,89,105, + 32,112,168,32,32,168,112,32,248,3,101,101,40,68,248,64, + 32,3,101,101,80,136,124,8,16,3,101,101,32,76,252,72, + 40,3,101,101,16,200,252,72,80,4,100,100,72,220,236,72, + 3,101,101,8,88,252,104,64,2,89,105,128,128,144,176,208, + 144,16,56,16,2,89,105,32,64,248,72,40,8,8,8,8, + 2,89,105,32,16,248,144,160,128,128,128,128,2,89,105,8, + 8,8,8,40,72,248,64,32,2,89,105,128,128,128,128,160, + 144,248,16,32,3,85,101,240,16,16,56,16,3,86,102,8, + 8,8,72,248,64,3,85,101,48,72,72,232,72,3,85,101, + 96,144,144,184,144,2,89,105,248,128,224,192,160,32,16,16, + 8,2,89,105,160,192,248,192,168,24,248,24,40,3,86,102, + 56,48,168,136,136,112,3,86,102,224,96,168,136,136,112,5, + 83,99,32,64,248,3,83,99,248,64,32,34,57,105,128,192, + 160,128,128,128,128,128,128,2,57,105,32,96,160,32,32,32, + 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, + 57,105,128,128,128,128,128,128,160,192,128,2,57,105,32,32, + 32,32,32,32,160,96,32,2,89,105,32,16,248,16,32,64, + 248,64,32,2,89,105,80,240,80,80,80,80,80,120,80,2, + 89,105,32,64,248,64,32,16,248,16,32,2,89,105,32,64, + 248,64,32,64,248,64,32,2,89,105,80,248,80,80,80,80, + 80,80,80,2,89,105,32,16,248,16,32,16,248,16,32,2, + 89,105,80,80,80,80,80,80,80,248,80,2,87,103,32,64, + 248,0,248,16,32,2,87,103,32,16,248,0,248,64,32,2, + 103,103,20,40,124,144,124,32,80,2,103,103,8,88,252,164, + 252,104,64,2,103,103,160,80,248,36,248,16,40,2,103,103, + 16,32,124,128,124,32,16,2,89,105,32,80,216,80,80,80, + 80,80,80,2,103,103,32,16,248,4,248,16,32,2,89,105, + 80,80,80,80,80,80,216,80,32,3,101,101,72,252,132,252, + 72,2,89,105,32,80,216,80,80,80,216,80,32,3,102,102, + 248,160,208,168,148,8,3,102,102,124,20,44,84,164,64,3, + 102,102,64,164,84,44,20,124,3,102,102,8,148,168,208,160, + 248,2,103,103,16,60,64,252,64,60,16,2,103,103,32,240, + 8,252,8,240,32,4,100,100,64,232,212,64,4,100,100,8, + 92,172,8,2,89,105,32,112,168,32,112,32,112,32,32,2, + 89,105,32,32,112,32,112,32,168,112,32,3,85,101,32,64, + 168,64,32,2,89,105,32,112,168,0,32,32,0,32,32,3, + 85,101,32,16,168,16,32,2,89,105,32,32,0,32,32,0, + 168,112,32,3,85,101,160,192,248,192,160,3,85,101,40,24, + 248,24,40,3,85,101,32,120,136,120,32,2,89,105,32,80, + 216,80,80,80,80,80,112,3,85,101,32,240,136,240,32,2, + 89,105,112,80,80,80,80,80,216,80,32,2,90,106,32,80, + 216,80,80,112,0,112,80,112,2,89,105,32,80,216,80,80, + 80,216,136,248,2,89,105,32,80,248,136,80,80,216,136,248, + 2,89,105,32,112,248,112,112,112,248,168,248,2,89,105,32, + 80,216,80,216,80,80,80,112,2,89,105,32,80,216,80,216, + 80,216,136,248,3,85,101,160,240,136,240,160,3,88,104,248, + 128,176,224,144,16,8,8,2,88,104,128,128,64,72,56,104, + 8,248,2,89,105,32,80,216,80,80,80,216,80,32,3,101, + 101,16,104,252,104,16,2,89,105,80,120,80,80,80,80,80, + 240,80,2,89,105,16,248,16,16,248,16,16,248,16,3,101, + 101,40,72,252,72,40,3,101,101,80,72,252,72,80,4,101, + 101,48,120,252,120,48,3,101,101,56,88,252,88,56,3,101, + 101,112,104,252,104,112,4,101,101,48,120,252,120,48,3,85, + 101,32,96,184,96,32,3,85,101,32,48,232,48,32,4,101, + 101,48,120,180,120,48,7,102,102,252,252,252,252,252,252,0, + 98,98,252,252,0,99,99,252,252,252,0,101,101,252,252,252, + 252,252,0,103,103,252,252,252,252,252,252,252,0,104,104,252, + 252,252,252,252,252,252,252,0,106,106,252,252,252,252,252,252, + 252,252,252,252,0,107,107,252,252,252,252,252,252,252,252,252, + 252,252,0,109,109,252,252,252,252,252,252,252,252,252,252,252, + 252,252,0,93,109,248,248,248,248,248,248,248,248,248,248,248, + 248,248,0,77,109,240,240,240,240,240,240,240,240,240,240,240, + 240,240,0,77,109,240,240,240,240,240,240,240,240,240,240,240, + 240,240,0,61,109,224,224,224,224,224,224,224,224,224,224,224, + 224,224,0,45,109,192,192,192,192,192,192,192,192,192,192,192, + 192,192,0,45,109,192,192,192,192,192,192,192,192,192,192,192, + 192,192,0,29,109,128,128,128,128,128,128,128,128,128,128,128, + 128,128,48,61,109,224,224,224,224,224,224,224,224,224,224,224, + 224,224,0,109,109,168,0,84,0,168,0,84,0,168,0,84, + 0,168,0,109,109,168,84,168,84,168,84,168,84,168,84,168, + 84,168,0,109,109,84,252,168,252,84,252,168,252,84,252,168, + 252,84,11,98,98,252,252,80,29,109,128,128,128,128,128,128, + 128,128,128,128,128,128,128,0,55,103,224,224,224,224,224,224, + 224,48,55,103,224,224,224,224,224,224,224,7,54,102,224,224, + 224,224,224,224,0,109,109,224,224,224,224,224,224,252,252,252, + 252,252,252,252,0,109,109,224,224,224,224,224,224,28,28,28, + 28,28,28,28,0,109,109,252,252,252,252,252,252,224,224,224, + 224,224,224,224,0,109,109,252,252,252,252,252,252,28,28,28, + 28,28,28,28,55,54,102,224,224,224,224,224,224,0,109,109, + 28,28,28,28,28,28,224,224,224,224,224,224,224,0,109,109, + 28,28,28,28,28,28,252,252,252,252,252,252,252,3,85,101, + 248,248,248,248,248,3,85,101,248,136,136,136,248,3,85,101, + 112,136,136,136,112,3,85,101,248,136,168,136,248,2,85,101, + 248,136,248,136,248,2,85,101,248,168,168,168,248,2,85,101, + 248,168,248,168,248,2,85,101,248,200,168,152,248,2,85,101, + 248,152,168,200,248,2,85,101,248,216,168,216,248,21,51,99, + 224,224,224,21,51,99,224,160,224,4,101,101,252,252,252,252, + 252,4,101,101,252,132,132,132,252,17,75,107,240,240,240,240, + 240,240,240,240,240,240,240,17,75,107,240,144,144,144,144,144, + 144,144,144,144,240,5,99,99,60,120,240,5,99,99,60,72, + 240,2,89,105,32,32,32,112,112,112,248,248,248,2,89,105, + 32,32,32,80,80,80,136,136,248,4,85,101,32,32,112,112, + 248,4,85,101,32,32,80,80,248,2,89,105,128,192,224,240, + 248,240,224,192,128,2,89,105,128,192,160,144,136,144,160,192, + 128,20,53,101,128,192,224,192,128,20,53,101,128,192,160,192, + 128,4,101,101,192,240,252,240,192,4,101,101,192,176,140,176, + 192,2,89,105,248,248,248,112,112,112,32,32,32,2,89,105, + 248,136,136,80,80,80,32,32,32,3,85,101,248,112,112,32, + 32,3,85,101,248,80,80,32,32,2,89,105,8,24,56,120, + 248,120,56,24,8,2,89,105,8,24,40,72,136,72,40,24, + 8,20,53,101,32,96,224,96,32,20,53,101,32,96,160,96, + 32,4,101,101,12,60,252,60,12,4,101,101,12,52,196,52, + 12,4,85,101,32,112,248,112,32,4,85,101,32,80,136,80, + 32,4,85,101,32,80,168,80,32,3,102,102,48,72,180,180, + 72,48,2,89,105,32,32,80,80,136,80,80,32,32,3,102, + 102,48,72,132,132,72,48,3,102,102,32,8,128,4,64,16, + 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, + 136,112,3,102,102,48,120,252,252,120,48,3,102,102,48,104, + 228,228,104,48,3,102,102,48,88,156,156,88,48,3,102,102, + 48,72,132,252,120,48,3,102,102,48,120,252,132,72,48,3, + 102,102,48,88,156,132,72,48,3,102,102,48,88,156,252,120, + 48,18,90,106,8,56,120,120,248,248,120,120,56,8,2,90, + 106,128,224,240,240,248,248,240,240,224,128,0,109,109,252,252, + 252,252,252,204,132,132,204,252,252,252,252,0,109,109,252,252, + 252,252,204,180,120,120,180,204,252,252,252,6,103,103,252,252, + 252,252,204,180,120,0,102,102,120,180,204,252,252,252,6,51, + 99,32,64,128,54,51,99,128,64,32,51,51,99,32,64,128, + 3,51,99,128,64,32,6,99,99,48,72,132,3,99,99,132, + 72,48,3,85,101,8,24,56,120,248,3,85,101,128,192,224, + 240,248,3,85,101,248,240,224,192,128,3,85,101,248,120,56, + 24,8,4,85,101,112,136,136,136,112,3,85,101,248,232,232, + 232,248,3,85,101,248,184,184,184,248,3,85,101,248,248,232, + 200,248,3,85,101,248,152,184,248,248,3,85,101,248,168,168, + 168,248,2,89,105,32,32,32,80,80,112,168,136,248,2,89, + 105,32,32,32,112,112,112,232,232,248,2,89,105,32,32,32, + 112,112,112,184,184,248,2,103,103,48,72,132,132,132,72,48, + 3,85,101,248,168,232,136,248,3,85,101,248,136,232,168,248, + 3,85,101,248,136,184,168,248,3,85,101,248,168,184,136,248, + 3,85,101,112,168,232,136,112,3,85,101,112,136,232,168,112, + 3,85,101,112,136,184,168,112,3,85,101,112,168,184,136,112, + 3,85,101,248,144,160,192,128,3,85,101,248,72,40,24,8, + 3,85,101,128,192,160,144,248,20,68,100,240,144,144,240,20, + 68,100,240,240,240,240,20,68,100,240,144,144,240,20,68,100, + 240,240,240,240,3,85,101,8,24,40,72,248}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 3 + Calculated Max Values w= 6 h=11 x= 1 y= 3 dx= 6 dy= 0 ascent=10 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13_75r[447] U8G_SECTION(".progmem.u8g_font_6x13_75r") = { + 1,6,13,0,254,9,1,57,0,0,32,79,0,10,255,9, + 0,3,85,101,248,248,248,248,248,3,85,101,248,136,136,136, + 248,3,85,101,112,136,136,136,112,3,85,101,248,136,168,136, + 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, + 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, + 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, + 248,21,51,99,224,224,224,21,51,99,224,160,224,4,101,101, + 252,252,252,252,252,4,101,101,252,132,132,132,252,17,75,107, + 240,240,240,240,240,240,240,240,240,240,240,17,75,107,240,144, + 144,144,144,144,144,144,144,144,240,5,99,99,60,120,240,5, + 99,99,60,72,240,2,89,105,32,32,32,112,112,112,248,248, + 248,2,89,105,32,32,32,80,80,80,136,136,248,4,85,101, + 32,32,112,112,248,4,85,101,32,32,80,80,248,2,89,105, + 128,192,224,240,248,240,224,192,128,2,89,105,128,192,160,144, + 136,144,160,192,128,20,53,101,128,192,224,192,128,20,53,101, + 128,192,160,192,128,4,101,101,192,240,252,240,192,4,101,101, + 192,176,140,176,192,2,89,105,248,248,248,112,112,112,32,32, + 32,2,89,105,248,136,136,80,80,80,32,32,32,3,85,101, + 248,112,112,32,32,3,85,101,248,80,80,32,32,2,89,105, + 8,24,56,120,248,120,56,24,8,2,89,105,8,24,40,72, + 136,72,40,24,8,20,53,101,32,96,224,96,32,20,53,101, + 32,96,160,96,32,4,101,101,12,60,252,60,12,4,101,101, + 12,52,196,52,12,4,85,101,32,112,248,112,32,4,85,101, + 32,80,136,80,32,4,85,101,32,80,168,80,32,3,102,102, + 48,72,180,180,72,48,2,89,105,32,32,80,80,136,80,80, + 32,32,3,102,102,48,72,132,132,72,48,3,102,102,32,8, + 128,4,64,16,2,85,101,112,168,168,168,112,2,87,103,112, + 136,168,216,168,136,112,3,102,102,48,120,252,252,120,48}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 0, '1' Height: 7 + Calculated Max Values w= 6 h=13 x= 2 y= 5 dx= 6 dy= 0 ascent=11 len=13 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[1470] U8G_SECTION(".progmem.u8g_font_6x13_78_79") = { + 1,6,13,0,254,7,1,42,2,11,32,255,0,11,254,10, + 0,2,87,103,112,32,168,248,168,32,112,255,2,104,104,48, + 48,48,252,252,48,48,48,2,89,105,32,112,32,168,248,168, + 32,112,32,2,89,105,32,112,32,168,248,168,32,112,32,2, + 89,105,32,112,32,168,248,168,32,112,32,4,85,101,32,112, + 248,112,32,4,85,101,32,80,136,80,32,255,4,86,102,32, + 32,248,80,112,136,2,89,105,112,216,216,0,136,136,112,248, + 112,4,86,102,32,32,248,80,112,136,4,86,102,32,32,248, + 112,112,136,4,86,102,32,32,248,112,112,136,4,86,102,32, + 32,248,112,112,136,4,86,102,32,32,248,112,112,136,4,102, + 102,48,48,252,88,120,204,3,87,103,32,168,112,112,112,168, + 32,3,87,103,32,168,112,80,112,168,32,3,87,103,32,168, + 112,248,112,168,32,3,87,103,32,168,112,248,112,168,32,3, + 87,103,32,168,112,248,112,168,32,3,87,103,32,168,112,112, + 112,168,32,3,87,103,80,80,248,32,248,80,80,3,87,103, + 80,112,248,112,248,112,80,255,255,3,87,103,32,168,168,112, + 168,168,32,3,87,103,32,168,168,80,168,168,32,3,87,103, + 32,168,168,112,168,168,32,3,87,103,32,168,168,80,168,168, + 32,4,85,101,32,248,80,112,216,255,255,255,3,87,103,32, + 168,168,112,168,168,32,3,87,103,32,168,168,112,168,168,32, + 3,87,103,32,168,168,112,168,168,32,3,87,103,32,168,168, + 112,168,168,32,3,87,103,32,168,112,248,112,168,32,3,87, + 103,32,168,112,248,112,168,32,3,87,103,32,168,168,112,168, + 168,32,3,87,103,32,168,112,248,112,168,32,3,87,103,32, + 168,112,248,112,168,32,255,2,102,102,120,140,140,140,140,120, + 255,2,102,102,248,136,140,140,252,60,2,102,102,60,252,140, + 140,136,248,2,102,102,248,140,140,140,252,124,2,102,102,124, + 252,140,140,140,248,255,255,255,2,89,105,32,112,32,80,248, + 80,32,112,32,255,34,25,105,128,128,128,128,128,128,128,128, + 128,18,57,105,224,224,224,224,224,224,224,224,224,2,89,105, + 248,248,248,248,248,248,248,248,248,23,53,101,96,128,224,224, + 64,23,53,101,64,224,224,32,192,7,101,101,108,144,252,252, + 72,7,101,101,72,252,252,36,216,255,255,2,106,106,8,124, + 232,232,120,8,104,104,72,48,18,57,105,64,224,224,64,64, + 0,64,224,64,2,89,105,80,248,248,112,32,0,32,112,32, + 2,87,103,80,248,248,248,112,32,32,2,103,103,96,240,248, + 124,248,240,96,2,89,105,104,176,16,216,248,240,96,104,48, + 2,104,104,64,144,184,124,92,188,184,80,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,2,89,105,112,248,216,152, + 216,216,136,248,112,2,89,105,112,248,216,168,232,216,136,248, + 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, + 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, + 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, + 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, + 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, + 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, + 120,2,89,105,112,136,168,232,168,168,168,136,112,2,89,105, + 112,136,168,216,152,168,248,136,112,2,89,105,112,136,168,216, + 168,152,232,136,112,2,89,105,112,136,200,200,232,248,168,136, + 112,2,89,105,112,136,248,200,232,152,232,136,112,2,89,105, + 112,136,184,200,232,216,168,136,112,2,89,105,112,136,248,152, + 168,168,168,136,112,2,89,105,112,136,168,216,168,216,168,136, + 112,2,89,105,112,136,168,216,184,152,232,136,112,2,105,105, + 120,132,212,236,236,236,212,132,120,2,89,105,112,248,216,152, + 216,216,216,248,112,2,89,105,112,248,216,168,232,216,136,248, + 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, + 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, + 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, + 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, + 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, + 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, + 120,4,102,102,48,24,252,252,24,48,255,255,255,4,85,101, + 128,64,40,24,56,4,85,101,32,48,248,48,32,4,85,101, + 56,24,40,64,128,3,103,103,64,32,48,252,48,32,64,3, + 104,104,32,48,24,252,252,24,48,32,4,101,101,16,24,252, + 24,16,4,102,102,16,24,252,252,24,16,4,102,102,16,24, + 188,188,24,16,3,103,103,32,48,184,188,184,48,32,3,103, + 103,32,48,248,252,248,48,32,255,255,4,101,101,192,112,60, + 112,192,3,103,103,32,176,248,252,120,48,32,3,103,103,32, + 48,120,252,248,176,32,0,109,109,32,32,48,240,248,248,252, + 248,248,240,48,32,32,255,255,255,255,255,255,255,255,255,255, + 1,107,107,120,252,220,204,4,0,4,204,220,248,120,255,4, + 102,102,32,32,224,20,12,28,4,101,101,144,200,124,200,144, + 4,102,102,28,12,20,224,32,32,4,102,102,32,32,224,20, + 12,28,4,101,101,144,200,124,200,144,4,102,102,28,12,20, + 224,32,32,4,101,101,16,8,252,8,16,4,101,101,16,200, + 252,200,16,5,99,99,232,124,232,4,101,101,208,216,124,216, + 208,2,105,105,160,80,40,244,4,244,40,80,160,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,1,91,107,248,160,160,160,160,160,160,160,160, + 160,248,1,91,107,248,40,40,40,40,40,40,40,40,40,248, + 17,75,107,16,32,32,64,64,128,64,64,32,32,16,17,75, + 107,128,64,64,32,32,16,32,32,64,64,128,1,107,107,20, + 40,40,80,80,160,80,80,40,40,20,1,107,107,160,80,80, + 40,40,20,40,40,80,80,160,255,255,255,255,255,255,255,255, + 255,3,101,101,32,64,252,64,32,3,101,101,16,8,252,8, + 16,4,99,99,72,252,72,2,103,103,16,32,124,128,124,32, + 16,2,103,103,32,16,248,4,248,16,32,3,101,101,72,252, + 132,252,72,3,101,101,36,68,252,68,36,3,101,101,144,136, + 252,136,144,2,103,103,20,36,124,132,124,36,20,2,103,103, + 160,144,248,132,248,144,160,4,100,100,8,92,172,8}; +/* + Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13B[2171] U8G_SECTION(".progmem.u8g_font_6x13B") = { + 1,6,13,0,254,9,1,99,2,211,32,255,254,11,254,10, + 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, + 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, + 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, + 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, + 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, + 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, + 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, + 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, + 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, + 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, + 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, + 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, + 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, + 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, + 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, + 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, + 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, + 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, + 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, + 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, + 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, + 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, + 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, + 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, + 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, + 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, + 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, + 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, + 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, + 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, + 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, + 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, + 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, + 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, + 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, + 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, + 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, + 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, + 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, + 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, + 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, + 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, + 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, + 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, + 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, + 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, + 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, + 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, + 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, + 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, + 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, + 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, + 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, + 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, + 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, + 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, + 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, + 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, + 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, + 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, + 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, + 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, + 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, + 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 13,0,96,34,42,106,192,192,0,192,192,192,192,192,192,192, + 3,104,104,16,120,212,208,208,212,120,16,2,105,105,56,108, + 96,96,248,96,96,100,248,3,102,102,204,252,72,72,252,204, + 2,105,105,204,204,120,120,252,48,252,48,48,34,42,106,192, + 192,192,192,0,0,192,192,192,192,2,106,106,120,204,192,120, + 204,204,120,12,204,120,9,98,98,204,204,2,105,105,120,204, + 180,236,228,236,180,204,120,4,103,103,248,12,252,140,252,0, + 252,3,103,103,52,104,208,160,208,104,52,4,100,100,252,252, + 4,4,22,65,97,240,2,105,105,120,204,188,172,188,180,172, + 204,120,9,82,98,248,248,7,100,100,120,204,204,120,2,105, + 105,48,48,252,252,48,48,0,252,252,6,70,102,224,176,48, + 96,192,240,6,70,102,224,176,96,48,176,224,26,50,98,96, + 192,0,104,104,204,204,204,204,204,252,128,128,2,105,105,124, + 252,244,244,244,116,52,52,52,38,34,98,192,192,16,50,98, + 96,192,6,70,102,96,224,96,96,96,240,5,87,103,112,248, + 136,248,112,0,248,3,103,103,176,88,44,20,44,88,176,2, + 106,106,96,224,96,96,100,252,28,52,60,12,2,106,106,96, + 224,96,96,120,236,12,24,48,60,2,106,106,224,176,96,48, + 180,236,28,52,60,12,2,106,106,48,48,0,48,48,96,192, + 204,204,120,2,106,106,96,48,0,48,120,204,204,252,204,204, + 2,106,106,24,48,0,48,120,204,204,252,204,204,2,106,106, + 56,108,0,48,120,204,204,252,204,204,2,106,106,52,88,0, + 48,120,204,204,252,204,204,2,106,106,204,204,0,48,120,204, + 204,252,204,204,2,106,106,48,72,120,48,120,204,204,252,204, + 204,2,105,105,124,176,176,176,184,240,240,176,188,0,107,107, + 120,204,192,192,192,192,192,204,120,48,96,2,106,106,96,48, + 0,252,192,192,248,192,192,252,2,106,106,24,48,0,252,192, + 192,248,192,192,252,2,106,106,56,108,0,252,192,192,248,192, + 192,252,2,106,106,204,204,0,252,192,192,248,192,192,252,18, + 74,106,192,96,0,240,96,96,96,96,96,240,18,74,106,48, + 96,0,240,96,96,96,96,96,240,2,90,106,112,216,0,120, + 48,48,48,48,48,120,2,106,106,204,204,0,120,48,48,48, + 48,48,120,2,105,105,248,108,108,108,236,108,108,108,248,2, + 106,106,52,88,0,204,236,236,252,220,220,204,2,106,106,96, + 48,0,120,204,204,204,204,204,120,2,106,106,24,48,0,120, + 204,204,204,204,204,120,2,106,106,56,108,0,120,204,204,204, + 204,204,120,2,106,106,52,88,0,120,204,204,204,204,204,120, + 2,106,106,204,204,0,120,204,204,204,204,204,120,3,101,101, + 204,120,48,120,204,1,105,105,4,120,220,220,204,236,236,120, + 128,2,106,106,96,48,0,204,204,204,204,204,204,120,2,106, + 106,24,48,0,204,204,204,204,204,204,120,2,106,106,56,108, + 0,204,204,204,204,204,204,120,2,106,106,108,108,0,204,204, + 204,204,204,204,120,2,106,106,24,48,0,204,72,120,48,48, + 48,48,2,105,105,192,248,204,204,204,248,192,192,192,1,105, + 105,120,204,204,248,204,204,204,248,128,2,105,105,96,48,0, + 120,12,124,204,220,108,2,105,105,24,48,0,120,12,124,204, + 220,108,2,105,105,56,108,0,120,12,124,204,220,108,2,105, + 105,52,88,0,120,12,124,204,220,108,2,105,105,108,108,0, + 120,12,124,204,220,108,2,106,106,56,40,56,0,120,12,124, + 204,220,108,2,102,102,120,52,120,176,180,104,0,104,104,120, + 204,192,192,204,120,48,96,2,105,105,96,48,0,120,204,252, + 192,192,120,2,105,105,24,48,0,120,204,252,192,192,120,2, + 105,105,56,108,0,120,204,252,192,192,120,2,105,105,108,108, + 0,120,204,252,192,192,120,18,73,105,192,96,0,224,96,96, + 96,96,240,18,73,105,48,96,0,224,96,96,96,96,240,2, + 89,105,112,216,0,112,48,48,48,48,120,2,89,105,216,216, + 0,112,48,48,48,48,120,2,106,106,216,112,240,152,120,204, + 204,204,204,120,2,105,105,52,88,0,216,236,204,204,204,204, + 2,105,105,96,48,0,120,204,204,204,204,120,2,105,105,24, + 48,0,120,204,204,204,204,120,2,105,105,56,108,0,120,204, + 204,204,204,120,2,105,105,52,88,0,120,204,204,204,204,120, + 2,105,105,204,204,0,120,204,204,204,204,120,3,103,103,48, + 48,0,252,0,48,48,1,105,105,4,120,204,220,204,236,204, + 120,128,2,105,105,96,48,0,204,204,204,204,220,108,2,105, + 105,24,48,0,204,204,204,204,220,108,2,105,105,56,108,0, + 204,204,204,204,220,108,2,105,105,204,204,0,204,204,204,204, + 220,108,0,107,107,24,48,0,204,204,204,220,108,12,204,120, + 0,106,106,192,192,216,236,204,236,216,192,192,192,0,107,107, + 204,204,0,204,204,204,220,108,12,204,120}; +/* + Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13Br[1040] U8G_SECTION(".progmem.u8g_font_6x13Br") = { + 1,6,13,0,254,9,1,99,2,211,32,127,254,11,254,10, + 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, + 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, + 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, + 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, + 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, + 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, + 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, + 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, + 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, + 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, + 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, + 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, + 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, + 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, + 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, + 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, + 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, + 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, + 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, + 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, + 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, + 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, + 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, + 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, + 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, + 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, + 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, + 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, + 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, + 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, + 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, + 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, + 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, + 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, + 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, + 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, + 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, + 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, + 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, + 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, + 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, + 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, + 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, + 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, + 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, + 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, + 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, + 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, + 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, + 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, + 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, + 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, + 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, + 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, + 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, + 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, + 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, + 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, + 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, + 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, + 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, + 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, + 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, + 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255 + }; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13[2160] U8G_SECTION(".progmem.u8g_font_6x13") = { + 1,6,13,0,254,9,1,102,2,214,32,255,254,11,254,10, + 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, + 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, + 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, + 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, + 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, + 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, + 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, + 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, + 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, + 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, + 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, + 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, + 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, + 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, + 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, + 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, + 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, + 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, + 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, + 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, + 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, + 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, + 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, + 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, + 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, + 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, + 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, + 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, + 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, + 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, + 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, + 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, + 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, + 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, + 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, + 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, + 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, + 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, + 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, + 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, + 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, + 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, + 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, + 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, + 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, + 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, + 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, + 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, + 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, + 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, + 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, + 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, + 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, + 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, + 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, + 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, + 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, + 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, + 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, + 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, + 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, + 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, + 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, + 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,13,0,96,34,25,105,128,0,128,128,128,128,128,128,128, + 3,88,104,32,112,168,160,160,168,112,32,2,89,105,48,72, + 64,64,224,64,64,72,176,3,86,102,136,112,80,80,112,136, + 2,89,105,136,136,80,80,248,32,248,32,32,34,25,105,128, + 128,128,128,0,128,128,128,128,18,74,106,96,144,128,96,144, + 144,96,16,144,96,26,50,98,160,160,3,89,105,112,136,168, + 216,200,216,168,136,112,4,87,103,112,8,120,136,120,0,248, + 3,86,102,40,80,160,160,80,40,4,83,99,248,8,8,22, + 49,97,224,3,89,105,112,136,232,216,216,232,216,136,112,10, + 81,97,248,23,68,100,96,144,144,96,3,87,103,32,32,248, + 32,32,0,248,7,53,101,64,160,32,64,224,7,53,101,64, + 160,64,32,192,42,34,98,64,128,0,88,104,136,136,136,136, + 152,232,128,128,2,89,105,120,232,232,232,232,104,40,40,40, + 38,33,97,192,32,34,98,64,128,7,53,101,64,192,64,64, + 224,4,87,103,112,136,136,136,112,0,248,3,86,102,160,80, + 40,40,80,160,2,90,106,64,192,64,64,224,8,24,40,56, + 8,2,90,106,64,192,64,64,224,16,40,8,16,56,2,90, + 106,64,160,64,32,160,72,24,40,56,8,2,89,105,32,0, + 32,32,64,128,136,136,112,2,90,106,64,32,0,32,80,136, + 136,248,136,136,2,90,106,16,32,0,32,80,136,136,248,136, + 136,2,90,106,48,72,0,32,80,136,136,248,136,136,2,90, + 106,40,80,0,32,80,136,136,248,136,136,2,90,106,80,80, + 0,32,80,136,136,248,136,136,2,90,106,32,80,32,32,80, + 136,136,248,136,136,2,89,105,88,160,160,160,176,224,160,160, + 184,0,91,107,112,136,128,128,128,128,128,136,112,32,64,2, + 90,106,64,32,0,248,128,128,240,128,128,248,2,90,106,16, + 32,0,248,128,128,240,128,128,248,2,90,106,48,72,0,248, + 128,128,240,128,128,248,2,90,106,80,80,0,248,128,128,240, + 128,128,248,18,58,106,128,64,0,224,64,64,64,64,64,224, + 18,58,106,32,64,0,224,64,64,64,64,64,224,18,74,106, + 96,144,0,224,64,64,64,64,64,224,18,58,106,160,160,0, + 224,64,64,64,64,64,224,2,89,105,240,72,72,72,232,72, + 72,72,240,2,90,106,40,80,0,136,136,200,168,152,136,136, + 2,90,106,64,32,0,112,136,136,136,136,136,112,2,90,106, + 16,32,0,112,136,136,136,136,136,112,2,90,106,48,72,0, + 112,136,136,136,136,136,112,2,90,106,40,80,0,112,136,136, + 136,136,136,112,2,90,106,80,80,0,112,136,136,136,136,136, + 112,3,85,101,136,80,32,80,136,1,91,107,8,112,152,152, + 168,168,168,200,200,112,128,2,90,106,64,32,0,136,136,136, + 136,136,136,112,2,90,106,16,32,0,136,136,136,136,136,136, + 112,2,90,106,48,72,0,136,136,136,136,136,136,112,2,90, + 106,80,80,0,136,136,136,136,136,136,112,2,90,106,16,32, + 0,136,136,80,32,32,32,32,2,89,105,128,240,136,136,136, + 240,128,128,128,2,89,105,96,144,144,160,160,144,136,136,176, + 2,89,105,64,32,0,112,8,120,136,152,104,2,89,105,16, + 32,0,112,8,120,136,152,104,2,89,105,48,72,0,112,8, + 120,136,152,104,2,89,105,40,80,0,112,8,120,136,152,104, + 2,89,105,80,80,0,112,8,120,136,152,104,2,90,106,48, + 72,48,0,112,8,120,136,152,104,2,86,102,112,40,112,160, + 168,80,0,88,104,112,136,128,128,136,112,32,64,2,89,105, + 64,32,0,112,136,248,128,136,112,2,89,105,16,32,0,112, + 136,248,128,136,112,2,89,105,48,72,0,112,136,248,128,136, + 112,2,89,105,80,80,0,112,136,248,128,136,112,18,57,105, + 128,64,0,192,64,64,64,64,224,18,57,105,32,64,0,192, + 64,64,64,64,224,18,73,105,96,144,0,192,64,64,64,64, + 224,18,57,105,160,160,0,192,64,64,64,64,224,2,90,106, + 80,32,96,16,112,136,136,136,136,112,2,89,105,40,80,0, + 176,200,136,136,136,136,2,89,105,64,32,0,112,136,136,136, + 136,112,2,89,105,16,32,0,112,136,136,136,136,112,2,89, + 105,48,72,0,112,136,136,136,136,112,2,89,105,40,80,0, + 112,136,136,136,136,112,2,89,105,80,80,0,112,136,136,136, + 136,112,3,87,103,32,32,0,248,0,32,32,1,88,104,8, + 112,152,168,168,200,112,128,2,89,105,64,32,0,136,136,136, + 136,152,104,2,89,105,16,32,0,136,136,136,136,152,104,2, + 89,105,48,72,0,136,136,136,136,152,104,2,89,105,80,80, + 0,136,136,136,136,152,104,0,91,107,16,32,0,136,136,136, + 152,104,8,136,112,0,90,106,128,128,176,200,136,136,200,176, + 128,128,0,91,107,80,80,0,136,136,136,152,104,8,136,112 + }; +/* + Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13O[2162] U8G_SECTION(".progmem.u8g_font_6x13O") = { + 1,6,13,0,254,9,1,104,2,216,32,255,254,11,254,10, + 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, + 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, + 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, + 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, + 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, + 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, + 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, + 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, + 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, + 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, + 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, + 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, + 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, + 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, + 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, + 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, + 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, + 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, + 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, + 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, + 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, + 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, + 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, + 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, + 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, + 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, + 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, + 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, + 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, + 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, + 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, + 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, + 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, + 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, + 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, + 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, + 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, + 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, + 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, + 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, + 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, + 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, + 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, + 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, + 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, + 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, + 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, + 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, + 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, + 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, + 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, + 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, + 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, + 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, + 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, + 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, + 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, + 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, + 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, + 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, + 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, + 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, + 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, + 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, + 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,13,0,96,34,41,105,64,0,64,64,64,128,128, + 128,128,3,104,104,16,56,84,80,160,168,112,32,2,105,105, + 24,36,32,32,112,32,64,72,176,3,102,102,68,56,40,80, + 112,136,2,105,105,68,68,40,40,124,32,248,32,32,34,41, + 105,64,64,64,64,0,128,128,128,128,18,90,106,48,72,64, + 48,72,72,48,16,144,96,58,50,98,160,160,2,105,105,56, + 68,84,108,100,216,168,136,112,4,103,103,56,4,124,136,120, + 0,248,19,86,102,40,80,160,160,160,80,20,83,99,248,8, + 16,38,49,97,224,3,105,105,56,68,116,108,108,232,216,136, + 112,26,81,97,248,23,68,100,96,144,144,96,19,71,103,32, + 32,240,64,64,0,240,23,69,101,32,80,32,64,224,23,69, + 101,96,16,96,32,192,58,34,98,64,128,0,104,104,36,36, + 68,72,88,168,128,128,18,89,105,120,232,232,232,232,80,80, + 80,80,54,33,97,192,32,34,98,64,128,23,53,101,32,96, + 64,64,224,4,103,103,56,68,68,136,112,0,248,19,86,102, + 80,40,40,40,80,160,18,90,106,32,96,64,64,224,8,56, + 80,112,16,18,90,106,32,96,64,64,224,16,40,16,32,112, + 18,90,106,96,16,96,32,192,8,56,80,112,16,2,89,105, + 16,0,16,16,32,64,136,136,112,2,106,106,32,16,0,16, + 40,68,68,248,136,136,2,106,106,8,16,0,16,40,68,68, + 248,136,136,2,106,106,24,36,0,16,40,68,68,248,136,136, + 2,106,106,20,40,0,16,40,68,68,248,136,136,2,106,106, + 40,40,0,16,40,68,68,248,136,136,2,106,106,16,40,16, + 16,40,68,68,248,136,136,2,105,105,44,80,80,80,88,224, + 160,160,184,0,107,107,56,68,64,64,64,128,128,136,112,32, + 64,2,106,106,32,16,0,124,64,64,120,128,128,248,2,106, + 106,8,16,0,124,64,64,120,128,128,248,2,106,106,24,36, + 0,124,64,64,120,128,128,248,2,106,106,40,40,0,124,64, + 64,120,128,128,248,18,74,106,64,32,0,112,32,32,32,64, + 64,224,18,74,106,16,32,0,112,32,32,32,64,64,224,18, + 90,106,48,72,0,112,32,32,32,64,64,224,18,74,106,80, + 80,0,112,32,32,32,64,64,224,2,105,105,120,36,36,36, + 116,36,72,72,240,2,106,106,20,40,0,68,68,100,88,136, + 136,136,2,106,106,32,16,0,56,68,68,68,136,136,112,2, + 106,106,8,16,0,56,68,68,68,136,136,112,2,106,106,24, + 36,0,56,68,68,68,136,136,112,2,106,106,20,40,0,56, + 68,68,68,136,136,112,2,106,106,40,40,0,56,68,68,68, + 136,136,112,3,101,101,68,40,48,80,136,1,107,107,4,60, + 76,76,84,84,168,232,232,112,128,2,106,106,32,16,0,68, + 68,68,136,136,136,112,2,106,106,8,16,0,68,68,68,136, + 136,136,112,2,106,106,24,36,0,68,68,68,136,136,136,112, + 2,106,106,40,40,0,68,68,68,136,136,136,112,18,90,106, + 16,32,0,136,136,80,32,64,64,64,2,105,105,64,120,68, + 68,72,240,128,128,128,2,89,105,48,72,72,80,80,144,136, + 136,176,2,105,105,32,16,0,56,4,124,136,152,104,2,105, + 105,8,16,0,56,4,124,136,152,104,2,105,105,24,36,0, + 56,4,124,136,152,104,2,105,105,20,40,0,56,4,124,136, + 152,104,2,105,105,40,40,0,56,4,124,136,152,104,2,106, + 106,24,36,24,0,56,4,124,136,152,104,2,102,102,56,20, + 120,160,168,80,0,104,104,56,68,64,128,136,112,32,64,2, + 105,105,32,16,0,56,68,124,128,136,112,2,105,105,8,16, + 0,56,68,124,128,136,112,2,105,105,24,36,0,56,68,124, + 128,136,112,2,105,105,40,40,0,56,68,124,128,136,112,18, + 57,105,64,32,0,96,32,32,64,64,224,18,73,105,16,32, + 0,96,32,32,64,64,224,18,89,105,48,72,0,96,32,32, + 64,64,224,18,73,105,80,80,0,96,32,32,64,64,224,2, + 106,106,32,24,48,8,56,68,68,136,136,112,2,105,105,20, + 40,0,88,100,68,136,136,136,2,105,105,32,16,0,56,68, + 68,136,136,112,2,105,105,8,16,0,56,68,68,136,136,112, + 2,105,105,24,36,0,56,68,68,136,136,112,2,105,105,20, + 40,0,56,68,68,136,136,112,2,105,105,40,40,0,56,68, + 68,136,136,112,19,87,103,32,32,0,248,0,64,64,1,104, + 104,4,56,76,84,168,200,112,128,2,105,105,32,16,0,68, + 68,68,136,152,104,2,105,105,8,16,0,68,68,68,136,152, + 104,2,105,105,24,36,0,68,68,68,136,152,104,2,105,105, + 40,40,0,68,68,68,136,152,104,0,107,107,8,16,0,68, + 68,136,152,104,8,144,96,0,106,106,64,64,88,100,68,136, + 200,176,128,128,0,107,107,40,40,0,68,68,136,152,104,8, + 144,96}; +/* + Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13Or[1043] U8G_SECTION(".progmem.u8g_font_6x13Or") = { + 1,6,13,0,254,9,1,104,2,216,32,127,254,11,254,10, + 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, + 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, + 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, + 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, + 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, + 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, + 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, + 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, + 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, + 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, + 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, + 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, + 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, + 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, + 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, + 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, + 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, + 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, + 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, + 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, + 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, + 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, + 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, + 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, + 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, + 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, + 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, + 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, + 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, + 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, + 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, + 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, + 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, + 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, + 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, + 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, + 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, + 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, + 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, + 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, + 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, + 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, + 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, + 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, + 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, + 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, + 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, + 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, + 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, + 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, + 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, + 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, + 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, + 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, + 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, + 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, + 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, + 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, + 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, + 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, + 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, + 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, + 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, + 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, + 168,144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 + Font Bounding box w= 6 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_6x13r[1041] U8G_SECTION(".progmem.u8g_font_6x13r") = { + 1,6,13,0,254,9,1,102,2,214,32,127,254,11,254,10, + 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, + 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, + 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, + 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, + 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, + 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, + 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, + 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, + 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, + 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, + 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, + 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, + 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, + 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, + 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, + 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, + 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, + 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, + 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, + 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, + 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, + 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, + 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, + 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, + 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, + 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, + 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, + 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, + 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, + 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, + 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, + 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, + 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, + 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, + 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, + 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, + 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, + 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, + 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, + 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, + 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, + 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, + 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, + 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, + 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, + 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, + 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, + 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, + 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, + 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, + 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, + 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, + 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, + 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, + 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, + 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, + 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, + 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, + 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, + 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, + 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, + 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, + 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, + 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, + 255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 3, '1' Height: 10 + Calculated Max Values w= 7 h=13 x= 6 y= 9 dx= 7 dy= 0 ascent=11 len=13 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[2197] U8G_SECTION(".progmem.u8g_font_7x13_67_75") = { + 1,7,13,0,254,3,1,91,2,178,32,255,0,11,254,10, + 0,4,117,117,72,36,254,36,72,18,89,121,32,32,32,168, + 112,32,168,112,32,4,101,117,36,72,248,72,36,4,101,117, + 144,72,124,72,144,4,101,117,36,68,252,68,36,18,89,121, + 32,112,168,32,32,32,32,32,248,4,101,117,144,136,252,136, + 144,18,89,121,248,32,32,32,32,32,168,112,32,18,89,121, + 32,112,168,32,32,168,112,32,248,4,117,117,36,66,252,64, + 32,4,117,117,72,132,126,4,8,4,117,117,36,74,252,72, + 40,4,117,117,72,164,126,36,40,4,117,117,40,84,238,68, + 40,4,117,117,40,84,254,84,40,2,106,122,64,64,128,152, + 104,8,16,84,56,16,2,106,122,32,64,252,68,36,4,4, + 4,4,4,2,106,122,16,8,252,136,144,128,128,128,128,128, + 2,106,122,4,4,4,4,4,36,68,252,64,32,2,106,122, + 128,128,128,128,128,144,136,252,8,16,2,104,120,240,16,16, + 16,16,84,56,16,2,90,122,8,8,8,8,8,40,72,248, + 64,32,4,119,119,28,34,34,34,170,112,32,4,119,119,112, + 136,136,136,170,28,8,2,120,120,254,0,224,192,160,16,8, + 4,2,121,121,144,160,254,160,146,10,254,10,18,4,119,119, + 72,156,170,136,136,136,112,4,119,119,36,114,170,34,34,34, + 28,6,99,115,32,64,252,4,99,115,252,64,32,50,57,121, + 128,192,160,128,128,128,128,128,128,18,57,121,32,96,160,32, + 32,32,32,32,32,6,99,115,16,8,252,4,99,115,252,8, + 16,50,57,121,128,128,128,128,128,128,160,192,128,18,57,121, + 32,32,32,32,32,32,160,96,32,2,105,121,16,8,252,8, + 48,64,252,64,32,2,122,122,40,120,168,40,40,40,40,42, + 60,40,2,105,121,32,64,252,64,48,8,252,8,16,2,105, + 121,32,64,252,64,32,64,252,64,32,2,121,121,68,238,68, + 68,68,68,68,68,68,2,105,121,16,8,252,8,16,8,252, + 8,16,2,122,122,68,68,68,68,68,68,68,68,238,68,3, + 103,119,32,64,252,0,252,8,16,3,103,119,16,8,252,0, + 252,64,32,3,119,119,16,34,126,132,126,40,16,4,117,117, + 40,124,146,124,40,3,119,119,16,40,252,66,252,136,16,3, + 119,119,16,32,126,128,126,32,16,2,121,121,16,40,108,170, + 40,40,40,40,40,3,119,119,16,8,252,2,252,8,16,2, + 121,121,40,40,40,40,40,170,108,40,16,4,117,117,40,124, + 130,124,40,2,122,122,16,40,108,170,40,40,170,108,40,16, + 2,119,119,252,144,136,196,162,144,8,2,119,119,126,18,34, + 70,138,18,32,2,119,119,32,18,138,70,34,18,126,2,119, + 119,8,144,162,196,136,144,252,2,121,121,8,16,62,64,254, + 64,62,16,8,2,121,121,32,16,248,4,254,4,248,16,32, + 4,117,117,32,72,254,68,32,4,117,117,8,36,254,68,8, + 18,89,121,32,112,168,32,248,32,248,32,32,18,89,121,32, + 32,248,32,248,32,168,112,32,3,119,119,16,32,64,182,64, + 32,16,2,122,122,16,40,84,146,0,16,16,0,16,16,3, + 119,119,16,8,4,218,4,8,16,2,122,122,16,16,0,16, + 16,0,146,84,40,16,4,117,117,144,160,254,160,144,4,117, + 117,18,10,254,10,18,3,119,119,16,48,94,130,94,48,16, + 2,121,121,16,40,68,238,40,40,40,40,56,3,119,119,16, + 24,244,130,244,24,16,2,121,121,56,40,40,40,40,238,68, + 40,16,1,124,124,16,40,68,238,40,40,40,56,0,56,40, + 56,1,122,122,16,40,68,238,40,40,40,108,68,124,1,122, + 122,16,40,68,254,40,40,40,108,68,124,1,122,122,16,40, + 68,254,56,56,56,124,68,124,2,121,121,16,40,68,238,68, + 238,40,40,56,1,122,122,16,40,68,238,68,238,40,108,68, + 124,3,119,119,144,152,244,130,244,152,144,2,119,119,254,128, + 188,176,168,164,130,2,119,119,130,74,42,26,122,2,254,2, + 121,121,16,40,68,238,40,238,68,40,16,255,255,255,255,255, + 255,255,255,255,255,255,255,7,118,118,254,254,254,254,254,254, + 0,114,114,254,254,0,115,115,254,254,254,0,117,117,254,254, + 254,254,254,0,119,119,254,254,254,254,254,254,254,0,120,120, + 254,254,254,254,254,254,254,254,0,122,122,254,254,254,254,254, + 254,254,254,254,254,0,123,123,254,254,254,254,254,254,254,254, + 254,254,254,0,125,125,254,254,254,254,254,254,254,254,254,254, + 254,254,254,0,109,125,252,252,252,252,252,252,252,252,252,252, + 252,252,252,0,93,125,248,248,248,248,248,248,248,248,248,248, + 248,248,248,0,77,125,240,240,240,240,240,240,240,240,240,240, + 240,240,240,0,77,125,240,240,240,240,240,240,240,240,240,240, + 240,240,240,0,61,125,224,224,224,224,224,224,224,224,224,224, + 224,224,224,0,45,125,192,192,192,192,192,192,192,192,192,192, + 192,192,192,0,29,125,128,128,128,128,128,128,128,128,128,128, + 128,128,128,64,61,125,224,224,224,224,224,224,224,224,224,224, + 224,224,224,1,123,123,84,0,170,0,84,0,170,0,84,0, + 170,0,125,125,170,84,170,84,170,84,170,84,170,84,170,84, + 170,0,125,125,254,84,254,170,254,84,254,170,254,84,254,170, + 254,11,114,114,254,254,96,29,125,128,128,128,128,128,128,128, + 128,128,128,128,128,128,0,71,119,240,240,240,240,240,240,240, + 64,55,119,224,224,224,224,224,224,224,7,70,118,240,240,240, + 240,240,240,0,125,125,240,240,240,240,240,240,254,254,254,254, + 254,254,254,0,125,125,240,240,240,240,240,240,14,14,14,14, + 14,14,14,0,125,125,254,254,254,254,254,254,240,240,240,240, + 240,240,240,0,125,125,254,254,254,254,254,254,14,14,14,14, + 14,14,14,71,54,118,224,224,224,224,224,224,0,125,125,14, + 14,14,14,14,14,240,240,240,240,240,240,240,0,125,125,14, + 14,14,14,14,14,254,254,254,254,254,254,254,3,119,119,254, + 254,254,254,254,254,254,3,119,119,254,130,130,130,130,130,254, + 3,119,119,124,130,130,130,130,130,124,3,119,119,254,130,186, + 186,186,130,254,3,119,119,254,130,254,130,254,130,254,3,119, + 119,254,170,170,170,170,170,254,3,119,119,254,170,254,170,254, + 170,254,3,119,119,254,146,138,198,162,146,254,3,119,119,254, + 146,162,198,138,146,254,3,119,119,254,214,170,214,170,214,254, + 20,85,117,248,248,248,248,248,20,85,117,248,136,136,136,248, + 4,117,117,254,254,254,254,254,4,117,117,254,130,130,130,254, + 19,87,119,248,248,248,248,248,248,248,19,87,119,248,136,136, + 136,136,136,248,4,117,117,62,126,254,252,248,4,117,117,62, + 66,130,132,248,2,120,120,16,16,56,56,124,124,254,254,2, + 120,120,16,16,40,40,68,68,130,254,19,86,118,32,32,112, + 112,248,248,19,86,118,32,32,80,80,136,248,3,119,119,128, + 224,248,254,248,224,128,3,119,119,128,224,152,134,152,224,128, + 4,101,117,192,240,252,240,192,4,101,117,192,176,140,176,192, + 4,117,117,128,240,254,240,128,4,117,117,128,240,142,240,128, + 2,120,120,254,254,124,124,56,56,16,16,2,120,120,254,130, + 68,68,40,40,16,16,19,86,118,248,248,112,112,32,32,19, + 86,118,248,136,80,80,32,32,3,119,119,2,14,62,254,62, + 14,2,3,119,119,2,14,50,194,50,14,2,4,101,117,12, + 60,252,60,12,4,101,117,12,52,196,52,12,4,117,117,2, + 30,254,30,2,4,117,117,2,30,226,30,2,2,119,119,16, + 56,124,254,124,56,16,2,119,119,16,40,68,130,68,40,16, + 2,119,119,16,40,84,186,84,40,16,3,119,119,56,68,146, + 186,146,68,56,18,89,121,32,32,80,80,136,80,80,32,32, + 3,119,119,56,68,130,130,130,68,56,3,119,119,40,0,130, + 0,130,0,40,3,119,119,56,108,170,170,170,108,56,3,119, + 119,56,68,146,170,146,68,56,3,119,119,56,124,254,254,254, + 124,56,3,119,119,56,116,242,242,242,116,56,3,119,119,56, + 92,158,158,158,92,56,3,119,119,56,68,130,254,254,124,56, + 3,119,119,56,124,254,254,130,68,56,3,119,119,56,92,158, + 158,130,68,56,3,119,119,56,76,142,142,254,124,56,51,71, + 119,192,224,240,240,240,224,192,3,71,119,48,112,240,240,240, + 112,48,0,125,125,254,254,254,254,198,130,130,130,198,254,254, + 254,254,0,125,125,254,254,254,254,198,186,186,186,198,254,254, + 254,254,6,119,119,254,254,254,254,198,186,186,0,119,119,186, + 186,198,254,254,254,254,6,68,116,48,64,128,128,54,68,116, + 192,32,16,16,51,68,116,16,16,32,192,3,68,116,128,128, + 64,48,6,116,116,56,68,130,130,3,116,116,130,130,68,56, + 3,119,119,2,6,14,30,62,126,254,3,119,119,128,192,224, + 240,248,252,254,3,119,119,254,252,248,240,224,192,128,3,119, + 119,254,126,62,30,14,6,2,20,85,117,112,136,136,136,112, + 3,119,119,254,226,226,226,226,226,254,3,119,119,254,142,142, + 142,142,142,254,3,119,119,254,254,250,242,226,194,254,3,119, + 119,254,134,142,158,190,254,254,3,119,119,254,146,146,146,146, + 146,254,2,120,120,16,16,40,40,84,124,146,254,2,120,120, + 16,16,56,56,116,116,242,254,2,120,120,16,16,56,56,92, + 92,158,254,3,119,119,56,68,130,130,130,68,56,2,119,119, + 254,146,146,242,130,130,254,2,119,119,254,130,130,242,146,146, + 254,2,119,119,254,130,130,158,146,146,254,2,119,119,254,146, + 146,158,130,130,254,2,119,119,56,84,146,242,130,68,56,2, + 119,119,56,68,130,242,146,84,56,2,119,119,56,68,130,158, + 146,84,56,2,119,119,56,84,146,158,130,68,56,255,255,255, + 255,255,255,255,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 7, '1' Height: 5 + Calculated Max Values w= 7 h= 9 x= 1 y= 2 dx= 7 dy= 0 ascent= 9 len= 9 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 7 descent= 0 + X Font ascent = 8 descent= 0 + Max Font ascent = 9 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13_75r[471] U8G_SECTION(".progmem.u8g_font_7x13_75r") = { + 1,7,13,0,254,7,1,71,0,0,32,79,0,9,0,8, + 0,3,119,119,254,254,254,254,254,254,254,3,119,119,254,130, + 130,130,130,130,254,3,119,119,124,130,130,130,130,130,124,3, + 119,119,254,130,186,186,186,130,254,3,119,119,254,130,254,130, + 254,130,254,3,119,119,254,170,170,170,170,170,254,3,119,119, + 254,170,254,170,254,170,254,3,119,119,254,146,138,198,162,146, + 254,3,119,119,254,146,162,198,138,146,254,3,119,119,254,214, + 170,214,170,214,254,20,85,117,248,248,248,248,248,20,85,117, + 248,136,136,136,248,4,117,117,254,254,254,254,254,4,117,117, + 254,130,130,130,254,19,87,119,248,248,248,248,248,248,248,19, + 87,119,248,136,136,136,136,136,248,4,117,117,62,126,254,252, + 248,4,117,117,62,66,130,132,248,2,120,120,16,16,56,56, + 124,124,254,254,2,120,120,16,16,40,40,68,68,130,254,19, + 86,118,32,32,112,112,248,248,19,86,118,32,32,80,80,136, + 248,3,119,119,128,224,248,254,248,224,128,3,119,119,128,224, + 152,134,152,224,128,4,101,117,192,240,252,240,192,4,101,117, + 192,176,140,176,192,4,117,117,128,240,254,240,128,4,117,117, + 128,240,142,240,128,2,120,120,254,254,124,124,56,56,16,16, + 2,120,120,254,130,68,68,40,40,16,16,19,86,118,248,248, + 112,112,32,32,19,86,118,248,136,80,80,32,32,3,119,119, + 2,14,62,254,62,14,2,3,119,119,2,14,50,194,50,14, + 2,4,101,117,12,60,252,60,12,4,101,117,12,52,196,52, + 12,4,117,117,2,30,254,30,2,4,117,117,2,30,226,30, + 2,2,119,119,16,56,124,254,124,56,16,2,119,119,16,40, + 68,130,68,40,16,2,119,119,16,40,84,186,84,40,16,3, + 119,119,56,68,146,186,146,68,56,18,89,121,32,32,80,80, + 136,80,80,32,32,3,119,119,56,68,130,130,130,68,56,3, + 119,119,40,0,130,0,130,0,40,3,119,119,56,108,170,170, + 170,108,56,3,119,119,56,68,146,170,146,68,56,3,119,119, + 56,124,254,254,254,124,56}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13B[2172] U8G_SECTION(".progmem.u8g_font_7x13B") = { + 1,7,13,0,254,9,1,105,2,216,32,255,254,11,254,9, + 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, + 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, + 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, + 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, + 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, + 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, + 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, + 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, + 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, + 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, + 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, + 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, + 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, + 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, + 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, + 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, + 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, + 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, + 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, + 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, + 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, + 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, + 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, + 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, + 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, + 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, + 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, + 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, + 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, + 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, + 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, + 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, + 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, + 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, + 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, + 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, + 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, + 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, + 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, + 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, + 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, + 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, + 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, + 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, + 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, + 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, + 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, + 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, + 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, + 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, + 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, + 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, + 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, + 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, + 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, + 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, + 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, + 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, + 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, + 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, + 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, + 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, + 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, + 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,13,0,112,34,42,122,192,192,0,192,192,192,192,192,192, + 192,3,104,120,16,124,212,208,208,212,124,16,2,105,121,56, + 108,96,96,248,96,96,108,184,3,102,118,204,252,72,72,252, + 204,2,105,121,204,204,120,120,252,48,252,48,48,34,42,122, + 192,192,192,192,0,0,192,192,192,192,2,106,122,120,204,192, + 120,204,204,120,12,204,120,26,82,114,216,216,2,106,122,120, + 204,132,180,228,228,180,132,204,120,20,87,119,240,24,248,152, + 248,0,248,3,103,119,52,104,208,160,208,104,52,3,100,116, + 252,12,12,12,21,65,113,240,2,106,122,120,204,132,188,172, + 188,180,172,204,120,27,81,113,248,7,100,116,120,204,204,120, + 3,103,119,48,48,252,48,48,0,252,6,70,118,224,176,48, + 96,192,240,6,70,118,224,176,96,48,176,224,25,67,115,48, + 96,192,1,103,119,204,204,204,204,204,252,128,2,105,121,124, + 252,244,244,244,116,52,52,52,38,34,114,192,192,16,50,114, + 96,192,6,70,118,96,224,96,96,96,240,21,87,119,112,248, + 136,248,112,0,248,3,103,119,176,88,44,20,44,88,176,2, + 106,122,96,224,96,96,100,252,28,52,60,12,2,106,122,96, + 224,96,96,120,236,12,24,48,60,2,106,122,224,176,96,48, + 180,236,28,52,60,12,2,106,122,48,48,0,48,48,96,192, + 204,204,120,2,106,122,96,48,0,48,120,204,204,252,204,204, + 2,106,122,24,48,0,48,120,204,204,252,204,204,2,106,122, + 56,108,0,48,120,204,204,252,204,204,2,106,122,52,88,0, + 48,120,204,204,252,204,204,2,106,122,204,204,0,48,120,204, + 204,252,204,204,2,106,122,120,72,120,48,120,204,204,252,204, + 204,2,105,121,124,248,216,216,220,248,216,216,220,0,107,123, + 120,204,192,192,192,192,192,204,120,48,96,2,106,122,96,48, + 0,252,192,192,240,192,192,252,2,106,122,24,48,0,252,192, + 192,240,192,192,252,2,106,122,56,108,0,252,192,192,240,192, + 192,252,2,106,122,204,204,0,252,192,192,240,192,192,252,2, + 106,122,96,48,0,252,48,48,48,48,48,252,2,106,122,24, + 48,0,252,48,48,48,48,48,252,2,106,122,56,108,0,252, + 48,48,48,48,48,252,2,106,122,204,204,0,252,48,48,48, + 48,48,252,2,105,121,248,108,108,108,236,108,108,108,248,2, + 106,122,52,88,0,204,204,236,252,220,204,204,2,106,122,96, + 48,0,120,204,204,204,204,204,120,2,106,122,24,48,0,120, + 204,204,204,204,204,120,2,106,122,56,108,0,120,204,204,204, + 204,204,120,2,106,122,52,88,0,120,204,204,204,204,204,120, + 2,106,122,204,204,0,120,204,204,204,204,204,120,3,101,117, + 204,120,48,120,204,1,106,122,4,120,220,220,220,236,236,236, + 120,128,2,106,122,96,48,0,204,204,204,204,204,204,120,2, + 106,122,24,48,0,204,204,204,204,204,204,120,2,106,122,56, + 108,0,204,204,204,204,204,204,120,2,106,122,204,204,0,204, + 204,204,204,204,204,120,2,106,122,24,48,0,204,72,120,48, + 48,48,48,2,105,121,192,248,204,204,204,248,192,192,192,2, + 105,121,120,204,204,216,216,204,204,204,216,2,105,121,48,24, + 0,120,12,124,204,220,124,2,105,121,24,48,0,120,12,124, + 204,220,124,2,105,121,56,108,0,120,12,124,204,220,124,2, + 105,121,52,88,0,120,12,124,204,220,124,2,105,121,108,108, + 0,120,12,124,204,220,124,2,106,122,56,40,56,0,120,12, + 124,204,220,124,2,102,118,120,52,124,176,180,104,0,104,120, + 120,204,192,192,204,120,48,96,2,105,121,48,24,0,120,204, + 252,192,204,120,2,105,121,24,48,0,120,204,252,192,204,120, + 2,105,121,56,108,0,120,204,252,192,204,120,2,105,121,108, + 108,0,120,204,252,192,204,120,18,73,121,192,96,0,224,96, + 96,96,96,240,18,73,121,48,96,0,224,96,96,96,96,240, + 2,89,121,112,216,0,112,48,48,48,48,120,18,89,121,216, + 216,0,224,96,96,96,96,240,2,106,122,104,48,120,12,124, + 204,204,204,204,120,2,105,121,52,88,0,248,236,204,204,204, + 204,2,105,121,96,48,0,120,204,204,204,204,120,2,105,121, + 24,48,0,120,204,204,204,204,120,2,105,121,56,108,0,120, + 204,204,204,204,120,2,105,121,52,88,0,120,204,204,204,204, + 120,2,105,121,108,108,0,120,204,204,204,204,120,3,103,119, + 48,48,0,252,0,48,48,1,105,121,4,120,204,220,204,236, + 204,120,128,2,105,121,96,48,0,204,204,204,204,220,124,2, + 105,121,24,48,0,204,204,204,204,220,124,2,105,121,56,108, + 0,204,204,204,204,220,124,2,105,121,108,108,0,204,204,204, + 204,220,124,0,107,123,24,48,0,204,204,204,220,124,12,204, + 120,0,106,122,192,192,216,236,204,204,236,216,192,192,0,107, + 123,108,108,0,204,204,204,220,108,12,204,120}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13Br[1041] U8G_SECTION(".progmem.u8g_font_7x13Br") = { + 1,7,13,0,254,9,1,105,2,216,32,127,254,11,254,9, + 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, + 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, + 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, + 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, + 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, + 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, + 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, + 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, + 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, + 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, + 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, + 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, + 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, + 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, + 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, + 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, + 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, + 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, + 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, + 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, + 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, + 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, + 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, + 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, + 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, + 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, + 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, + 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, + 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, + 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, + 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, + 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, + 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, + 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, + 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, + 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, + 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, + 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, + 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, + 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, + 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, + 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, + 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, + 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, + 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, + 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, + 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, + 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, + 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, + 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, + 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, + 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, + 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, + 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, + 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, + 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, + 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, + 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, + 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, + 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, + 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, + 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, + 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, + 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, + 255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13[2157] U8G_SECTION(".progmem.u8g_font_7x13") = { + 1,7,13,0,254,9,1,95,2,207,32,255,254,11,254,10, + 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, + 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, + 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, + 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, + 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, + 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, + 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, + 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, + 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, + 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, + 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, + 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, + 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, + 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, + 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, + 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, + 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, + 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, + 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, + 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, + 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, + 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, + 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, + 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, + 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, + 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, + 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, + 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, + 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, + 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, + 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, + 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, + 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, + 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, + 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, + 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, + 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, + 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, + 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, + 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, + 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, + 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, + 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, + 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, + 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, + 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, + 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, + 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, + 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, + 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, + 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, + 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, + 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, + 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, + 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, + 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, + 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, + 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, + 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, + 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, + 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, + 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, + 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, + 16,16,224,24,83,115,72,168,144,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,13,0,112,50,25,121, + 128,0,128,128,128,128,128,128,128,19,88,120,32,112,168,160, + 160,168,112,32,2,105,121,56,68,64,64,224,64,64,68,184, + 3,102,118,132,120,72,72,120,132,2,89,121,136,136,80,80, + 248,32,248,32,32,50,25,121,128,128,128,128,0,128,128,128, + 128,18,74,122,96,144,128,96,144,144,96,16,144,96,25,66, + 114,144,144,2,105,121,120,132,180,164,164,164,180,132,120,20, + 87,119,112,8,120,136,120,0,248,3,103,119,20,40,80,160, + 80,40,20,20,83,115,248,8,8,22,65,113,240,2,105,121, + 120,132,180,172,172,180,172,132,120,26,81,113,248,23,68,116, + 96,144,144,96,19,87,119,32,32,248,32,32,0,248,22,54, + 118,64,160,32,64,128,224,22,54,118,224,32,64,32,160,64, + 42,34,114,64,128,1,103,119,132,132,132,132,204,180,128,2, + 105,121,124,232,232,232,104,40,40,40,40,38,33,113,192,32, + 34,114,64,128,22,54,118,64,192,64,64,64,224,21,70,118, + 96,144,144,96,0,240,3,103,119,160,80,40,20,40,80,160, + 2,106,122,64,192,64,64,68,236,20,20,28,4,2,106,122, + 64,192,64,64,72,244,4,8,16,28,2,106,122,224,32,64, + 32,164,76,20,20,28,4,2,105,121,32,0,32,32,64,128, + 132,132,120,2,106,122,32,16,0,48,72,132,132,252,132,132, + 2,106,122,16,32,0,48,72,132,132,252,132,132,2,106,122, + 48,72,0,48,72,132,132,252,132,132,2,106,122,100,152,0, + 48,72,132,132,252,132,132,2,106,122,72,72,0,48,72,132, + 132,252,132,132,2,106,122,48,72,48,48,72,132,132,252,132, + 132,2,105,121,92,160,160,160,184,224,160,160,188,0,107,123, + 120,132,128,128,128,128,128,132,120,16,32,2,106,122,32,16, + 0,252,128,128,240,128,128,252,2,106,122,16,32,0,252,128, + 128,240,128,128,252,2,106,122,48,72,0,252,128,128,240,128, + 128,252,2,106,122,72,72,0,252,128,128,240,128,128,252,18, + 90,122,64,32,0,248,32,32,32,32,32,248,18,90,122,32, + 64,0,248,32,32,32,32,32,248,18,90,122,32,80,0,248, + 32,32,32,32,32,248,18,90,122,136,136,0,248,32,32,32, + 32,32,248,2,105,121,248,68,68,68,228,68,68,68,248,2, + 106,122,100,152,0,132,196,164,164,148,140,132,2,106,122,32, + 16,0,120,132,132,132,132,132,120,2,106,122,16,32,0,120, + 132,132,132,132,132,120,2,106,122,48,72,0,120,132,132,132, + 132,132,120,2,106,122,100,152,0,120,132,132,132,132,132,120, + 2,106,122,72,72,0,120,132,132,132,132,132,120,3,102,118, + 132,72,48,48,72,132,1,107,123,4,120,140,148,148,164,164, + 164,196,120,128,2,106,122,32,16,0,132,132,132,132,132,132, + 120,2,106,122,16,32,0,132,132,132,132,132,132,120,2,106, + 122,48,72,0,132,132,132,132,132,132,120,2,106,122,72,72, + 0,132,132,132,132,132,132,120,18,90,122,16,32,0,136,136, + 80,32,32,32,32,2,105,121,128,248,132,132,132,248,128,128, + 128,18,89,121,96,144,144,160,160,144,136,136,176,2,105,121, + 32,16,0,120,4,124,132,140,116,2,105,121,16,32,0,120, + 4,124,132,140,116,2,105,121,48,72,0,120,4,124,132,140, + 116,2,105,121,100,152,0,120,4,124,132,140,116,2,105,121, + 72,72,0,120,4,124,132,140,116,2,106,122,48,72,48,0, + 120,4,124,132,140,116,2,102,118,104,20,124,144,148,104,0, + 104,120,120,132,128,128,132,120,16,32,2,105,121,32,16,0, + 120,132,252,128,132,120,2,105,121,16,32,0,120,132,252,128, + 132,120,2,105,121,48,72,0,120,132,252,128,132,120,2,105, + 121,72,72,0,120,132,252,128,132,120,18,89,121,64,32,0, + 96,32,32,32,32,248,18,89,121,32,64,0,96,32,32,32, + 32,248,18,89,121,96,144,0,96,32,32,32,32,248,18,89, + 121,144,144,0,96,32,32,32,32,248,2,106,122,72,48,80, + 8,120,132,132,132,132,120,2,105,121,100,152,0,184,196,132, + 132,132,132,2,105,121,32,16,0,120,132,132,132,132,120,2, + 105,121,16,32,0,120,132,132,132,132,120,2,105,121,48,72, + 0,120,132,132,132,132,120,2,105,121,100,152,0,120,132,132, + 132,132,120,2,105,121,72,72,0,120,132,132,132,132,120,19, + 87,119,32,32,0,248,0,32,32,1,104,120,4,120,140,148, + 164,196,120,128,2,105,121,32,16,0,132,132,132,132,140,116, + 2,105,121,16,32,0,132,132,132,132,140,116,2,105,121,48, + 72,0,132,132,132,132,140,116,2,105,121,72,72,0,132,132, + 132,132,140,116,0,107,123,16,32,0,132,132,132,140,116,4, + 132,120,0,106,122,128,128,184,196,132,132,196,184,128,128,0, + 107,123,72,72,0,132,132,132,140,116,4,132,120}; +/* + Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13O[2158] U8G_SECTION(".progmem.u8g_font_7x13O") = { + 1,7,13,0,254,9,1,96,2,208,32,255,254,11,254,10, + 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, + 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, + 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, + 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, + 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, + 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, + 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, + 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, + 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, + 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, + 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, + 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, + 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, + 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, + 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, + 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, + 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, + 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, + 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, + 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, + 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, + 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, + 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, + 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, + 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, + 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, + 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, + 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, + 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, + 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, + 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, + 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, + 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, + 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, + 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, + 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, + 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, + 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, + 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, + 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, + 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, + 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, + 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, + 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, + 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, + 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, + 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, + 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, + 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, + 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, + 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, + 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, + 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, + 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, + 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, + 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, + 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, + 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, + 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, + 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, + 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, + 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, + 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, + 16,16,16,224,24,83,115,72,168,144,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,13,0,112,34,41, + 121,64,0,64,64,64,128,128,128,128,3,104,120,16,56,84, + 80,160,168,112,32,2,121,121,28,34,32,32,112,32,64,68, + 184,3,118,118,66,60,36,72,120,132,2,105,121,68,68,40, + 40,124,16,248,32,32,34,41,121,64,64,64,64,0,128,128, + 128,128,2,106,122,24,36,32,48,72,72,48,16,144,96,25, + 66,114,144,144,2,121,121,60,66,90,82,82,164,180,132,120, + 4,103,119,56,4,60,68,60,0,248,3,103,119,20,40,80, + 160,160,80,40,20,83,115,248,16,16,22,65,113,240,2,121, + 121,60,66,90,86,172,180,172,132,120,26,81,113,248,23,68, + 116,96,144,144,96,19,87,119,16,16,120,32,32,0,248,22, + 70,118,32,80,16,96,128,224,22,70,118,96,16,96,32,160, + 64,42,34,114,64,128,1,119,119,66,66,66,132,204,180,128, + 2,105,121,124,232,232,232,40,80,80,80,80,38,33,113,192, + 32,34,114,64,128,38,54,118,32,96,32,64,64,224,21,86, + 118,48,72,72,48,0,240,3,103,119,80,40,20,20,40,80, + 160,2,106,122,32,96,32,64,68,236,20,40,56,8,2,106, + 122,32,96,32,64,72,244,4,24,32,56,2,106,122,96,16, + 96,32,164,76,20,40,56,8,2,105,121,16,0,16,16,32, + 64,132,132,120,2,122,122,16,8,0,24,36,66,66,124,132, + 132,2,122,122,8,16,0,24,36,66,66,124,132,132,2,122, + 122,24,36,0,24,36,66,66,124,132,132,2,122,122,50,76, + 0,24,36,66,66,124,132,132,2,122,122,36,36,0,24,36, + 66,66,124,132,132,2,122,122,24,36,24,24,36,66,66,124, + 132,132,2,121,121,46,80,80,80,124,160,160,160,188,0,123, + 123,60,66,64,64,64,128,128,132,120,16,32,2,122,122,16, + 8,0,126,64,64,112,128,128,252,2,122,122,8,16,0,126, + 64,64,112,128,128,252,2,122,122,24,36,0,126,64,64,112, + 128,128,252,2,122,122,36,36,0,126,64,64,112,128,128,252, + 2,106,122,32,16,0,124,16,16,32,32,32,248,2,106,122, + 16,32,0,124,16,16,32,32,32,248,2,106,122,16,40,0, + 124,16,16,32,32,32,248,2,106,122,68,68,0,124,16,16, + 32,32,32,248,2,121,121,124,34,34,34,242,68,68,68,248, + 2,122,122,50,76,0,66,98,82,82,140,140,132,2,122,122, + 16,8,0,60,66,66,132,132,132,120,2,122,122,8,16,0, + 60,66,66,132,132,132,120,2,122,122,24,36,0,60,66,66, + 132,132,132,120,2,122,122,50,76,0,60,66,66,132,132,132, + 120,2,122,122,36,36,0,60,66,66,132,132,132,120,3,118, + 118,66,36,24,48,72,132,1,123,123,2,60,70,74,74,82, + 164,164,196,120,128,2,122,122,16,8,0,66,66,66,132,132, + 132,120,2,122,122,8,16,0,66,66,66,132,132,132,120,2, + 122,122,24,36,0,66,66,66,132,132,132,120,2,122,122,36, + 36,0,66,66,66,132,132,132,120,18,90,122,16,32,0,136, + 136,80,32,32,64,64,2,121,121,64,124,66,66,66,124,128, + 128,128,18,89,121,48,72,72,80,80,144,136,136,176,2,121, + 121,16,8,0,60,2,124,132,140,116,2,121,121,8,16,0, + 60,2,124,132,140,116,2,121,121,24,36,0,60,2,124,132, + 140,116,2,121,121,50,76,0,60,2,124,132,140,116,2,121, + 121,36,36,0,60,2,124,132,140,116,2,122,122,24,36,24, + 0,60,2,124,132,140,116,2,118,118,52,10,124,144,148,104, + 0,120,120,60,66,128,128,132,120,16,32,2,121,121,16,8, + 0,60,66,124,128,132,120,2,121,121,8,16,0,60,66,124, + 128,132,120,2,121,121,24,36,0,60,66,124,128,132,120,2, + 121,121,36,36,0,60,66,124,128,132,120,18,89,121,32,16, + 0,48,16,32,32,32,248,18,89,121,16,32,0,48,16,32, + 32,32,248,18,89,121,48,72,0,48,16,32,32,32,248,18, + 89,121,72,72,0,48,16,32,32,32,248,2,122,122,36,24, + 40,4,60,66,66,132,132,120,2,121,121,50,76,0,92,98, + 66,132,132,132,2,121,121,16,8,0,60,66,66,132,132,120, + 2,121,121,8,16,0,60,66,66,132,132,120,2,121,121,24, + 36,0,60,66,66,132,132,120,2,121,121,50,76,0,60,66, + 66,132,132,120,2,121,121,36,36,0,60,66,66,132,132,120, + 19,71,119,32,32,0,240,0,64,64,1,120,120,2,60,74, + 82,164,196,120,128,2,121,121,16,8,0,66,66,66,132,140, + 116,2,121,121,8,16,0,66,66,66,132,140,116,2,121,121, + 24,36,0,66,66,66,132,140,116,2,121,121,36,36,0,66, + 66,66,132,140,116,0,123,123,8,16,0,66,66,132,140,116, + 4,132,120,0,122,122,64,64,92,98,66,132,196,184,128,128, + 0,123,123,36,36,0,66,66,132,140,116,4,132,120}; +/* + Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13Or[1035] U8G_SECTION(".progmem.u8g_font_7x13Or") = { + 1,7,13,0,254,9,1,96,2,208,32,127,254,11,254,10, + 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, + 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, + 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, + 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, + 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, + 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, + 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, + 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, + 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, + 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, + 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, + 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, + 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, + 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, + 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, + 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, + 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, + 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, + 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, + 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, + 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, + 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, + 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, + 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, + 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, + 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, + 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, + 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, + 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, + 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, + 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, + 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, + 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, + 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, + 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, + 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, + 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, + 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, + 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, + 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, + 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, + 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, + 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, + 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, + 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, + 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, + 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, + 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, + 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, + 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, + 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, + 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, + 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, + 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, + 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, + 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, + 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, + 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, + 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, + 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, + 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, + 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, + 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, + 16,16,16,224,24,83,115,72,168,144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 + Font Bounding box w= 7 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x13r[1034] U8G_SECTION(".progmem.u8g_font_7x13r") = { + 1,7,13,0,254,9,1,95,2,207,32,127,254,11,254,10, + 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, + 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, + 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, + 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, + 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, + 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, + 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, + 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, + 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, + 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, + 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, + 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, + 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, + 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, + 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, + 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, + 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, + 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, + 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, + 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, + 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, + 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, + 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, + 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, + 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, + 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, + 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, + 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, + 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, + 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, + 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, + 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, + 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, + 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, + 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, + 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, + 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, + 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, + 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, + 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, + 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, + 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, + 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, + 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, + 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, + 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, + 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, + 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, + 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, + 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, + 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, + 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, + 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, + 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, + 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, + 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, + 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, + 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, + 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, + 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, + 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, + 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, + 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, + 16,16,224,24,83,115,72,168,144,255}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=14 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=14 + Font Bounding box w= 7 h=14 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x14B[2390] U8G_SECTION(".progmem.u8g_font_7x14B") = { + 1,7,14,0,254,10,1,137,3,30,32,255,254,12,254,11, + 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, + 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, + 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, + 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, + 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, + 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, + 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, + 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, + 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, + 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, + 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, + 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, + 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, + 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, + 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, + 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, + 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, + 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, + 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, + 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, + 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, + 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, + 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, + 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, + 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, + 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, + 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, + 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, + 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, + 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, + 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, + 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, + 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, + 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, + 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, + 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, + 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, + 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, + 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, + 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, + 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, + 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, + 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, + 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, + 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, + 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, + 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, + 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, + 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, + 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, + 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, + 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, + 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, + 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, + 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, + 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, + 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, + 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, + 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, + 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, + 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, + 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, + 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, + 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, + 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, + 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, + 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, + 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, + 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, + 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, + 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, + 0,112,34,42,122,192,192,0,192,192,192,192,192,192,192,1, + 105,121,48,124,180,176,176,176,180,124,48,2,105,121,56,108, + 96,96,240,96,96,248,108,4,102,118,204,120,104,88,120,204, + 2,106,122,132,204,120,252,48,48,252,48,48,48,34,42,122, + 192,192,192,192,0,0,192,192,192,192,2,107,123,120,204,96, + 48,120,204,120,48,24,204,120,27,82,114,216,216,2,107,123, + 120,204,252,236,236,236,236,236,252,204,120,21,88,120,112,216, + 120,216,216,120,0,248,2,103,119,28,60,120,240,120,60,28, + 2,101,117,252,252,12,12,12,22,65,113,240,2,107,123,120, + 204,252,236,236,252,236,236,236,204,120,28,81,113,248,25,84, + 116,112,216,216,112,2,102,118,48,48,252,48,48,252,22,87, + 119,112,216,24,48,96,192,248,22,87,119,112,216,24,112,24, + 216,112,26,67,115,48,96,192,0,104,120,204,204,204,204,220, + 252,192,192,0,108,124,124,236,236,236,236,108,44,44,44,44, + 44,60,39,34,114,192,192,32,51,115,96,96,192,22,54,118, + 96,224,96,96,96,96,22,86,118,112,216,216,112,0,248,2, + 103,119,224,112,56,28,56,112,224,2,106,122,100,236,104,120, + 120,52,108,92,220,140,2,106,122,100,236,104,120,120,56,116, + 76,216,156,2,106,122,196,108,232,120,240,60,108,220,156,12, + 0,107,123,96,96,0,96,96,96,96,96,204,204,120,2,108, + 124,96,48,0,120,252,204,204,204,252,204,204,204,2,108,124, + 24,48,0,120,252,204,204,204,252,204,204,204,2,108,124,48, + 120,0,120,252,204,204,204,252,204,204,204,2,108,124,104,176, + 0,120,252,204,204,204,252,204,204,204,2,108,124,204,204,0, + 120,252,204,204,204,252,204,204,204,2,108,124,48,72,48,0, + 120,252,204,204,252,204,204,204,2,122,122,126,216,216,216,220, + 248,216,216,216,222,0,108,124,120,204,204,192,192,192,192,204, + 204,120,48,96,2,108,124,96,48,0,252,192,192,192,248,192, + 192,192,252,2,108,124,24,48,0,252,192,192,192,248,192,192, + 192,252,2,108,124,48,120,0,252,192,192,192,248,192,192,192, + 252,2,108,124,204,204,0,252,192,192,192,248,192,192,192,252, + 2,108,124,96,48,0,252,48,48,48,48,48,48,48,252,2, + 108,124,24,48,0,252,48,48,48,48,48,48,48,252,2,108, + 124,48,120,0,252,48,48,48,48,48,48,48,252,2,108,124, + 204,204,0,252,48,48,48,48,48,48,48,252,2,122,122,120, + 108,102,102,254,102,102,102,108,120,2,108,124,104,176,0,204, + 236,236,236,220,220,220,204,204,2,108,124,96,48,0,120,204, + 204,204,204,204,204,204,120,2,108,124,24,48,0,120,204,204, + 204,204,204,204,204,120,2,108,124,48,120,0,120,204,204,204, + 204,204,204,204,120,2,108,124,104,176,0,120,204,204,204,204, + 204,204,204,120,2,108,124,204,204,0,120,204,204,204,204,204, + 204,204,120,2,119,119,198,108,56,56,108,198,130,0,110,126, + 4,4,120,220,220,220,220,236,236,236,236,120,128,128,2,108, + 124,96,48,0,204,204,204,204,204,204,204,204,120,2,108,124, + 24,48,0,204,204,204,204,204,204,204,204,120,2,108,124,48, + 120,0,204,204,204,204,204,204,204,204,120,2,108,124,204,204, + 0,204,204,204,204,204,204,204,204,120,2,108,124,24,48,0, + 204,204,204,120,120,120,48,48,48,2,106,122,192,192,248,204, + 204,204,204,248,192,192,2,106,122,56,108,108,108,120,108,108, + 108,108,248,2,106,122,96,48,0,120,204,60,108,204,204,124, + 2,106,122,24,48,0,120,204,60,108,204,204,124,2,106,122, + 48,120,0,120,204,60,108,204,204,124,2,106,122,104,176,0, + 120,204,60,108,204,204,124,2,106,122,204,204,0,120,204,60, + 108,204,204,124,2,107,123,48,72,48,0,120,204,60,108,204, + 204,124,2,119,119,124,218,58,94,216,222,124,0,105,121,120, + 204,192,192,192,204,120,48,96,2,106,122,96,48,0,120,204, + 204,252,192,204,120,2,106,122,24,48,0,120,204,204,252,192, + 204,120,2,106,122,48,120,0,120,204,204,252,192,204,120,2, + 106,122,204,204,0,120,204,204,252,192,204,120,34,58,122,192, + 96,0,96,96,96,96,96,96,96,34,58,122,96,192,0,192, + 192,192,192,192,192,192,18,74,122,96,240,0,96,96,96,96, + 96,96,96,2,106,122,204,204,0,48,48,48,48,48,48,48, + 2,107,123,216,112,240,152,12,124,204,204,204,204,120,2,106, + 122,104,176,0,248,204,204,204,204,204,204,2,106,122,96,48, + 0,120,204,204,204,204,204,120,2,106,122,24,48,0,120,204, + 204,204,204,204,120,2,106,122,48,120,0,120,204,204,204,204, + 204,120,2,106,122,104,176,0,120,204,204,204,204,204,120,2, + 106,122,204,204,0,120,204,204,204,204,204,120,2,104,120,48, + 48,0,252,252,0,48,48,0,107,123,4,8,120,220,220,236, + 236,204,120,128,128,2,106,122,96,48,0,204,204,204,204,204, + 204,124,2,106,122,24,48,0,204,204,204,204,204,204,124,2, + 106,122,48,120,0,204,204,204,204,204,204,124,2,106,122,204, + 204,0,204,204,204,204,204,204,124,0,108,124,24,48,0,204, + 204,204,120,56,56,48,240,96,0,108,124,192,192,192,248,204, + 204,204,204,204,248,192,192,0,108,124,204,204,0,204,204,204, + 120,56,56,48,240,96}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 6 h=13 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=13 + Font Bounding box w= 7 h=14 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x14Br[1151] U8G_SECTION(".progmem.u8g_font_7x14Br") = { + 1,7,14,0,254,10,1,137,3,30,32,127,254,12,254,11, + 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, + 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, + 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, + 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, + 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, + 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, + 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, + 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, + 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, + 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, + 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, + 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, + 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, + 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, + 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, + 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, + 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, + 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, + 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, + 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, + 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, + 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, + 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, + 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, + 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, + 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, + 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, + 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, + 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, + 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, + 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, + 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, + 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, + 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, + 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, + 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, + 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, + 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, + 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, + 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, + 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, + 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, + 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, + 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, + 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, + 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, + 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, + 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, + 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, + 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, + 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, + 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, + 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, + 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, + 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, + 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, + 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, + 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, + 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, + 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, + 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, + 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, + 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, + 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, + 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, + 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, + 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, + 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, + 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, + 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, + 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=14 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=14 + Font Bounding box w= 7 h=14 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x14[2374] U8G_SECTION(".progmem.u8g_font_7x14") = { + 1,7,14,0,254,10,1,138,3,30,32,255,254,12,254,11, + 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, + 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, + 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, + 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, + 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, + 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, + 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, + 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, + 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, + 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, + 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, + 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, + 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, + 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, + 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, + 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, + 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, + 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, + 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, + 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, + 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, + 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, + 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, + 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, + 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, + 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, + 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, + 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, + 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, + 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, + 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, + 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, + 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, + 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, + 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, + 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, + 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, + 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, + 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, + 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, + 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, + 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, + 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, + 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, + 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, + 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, + 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, + 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, + 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, + 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, + 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, + 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, + 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, + 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, + 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, + 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, + 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, + 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, + 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, + 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, + 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, + 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, + 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, + 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, + 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, + 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, + 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, + 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, + 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, + 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, + 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, + 0,112,50,26,122,128,128,0,128,128,128,128,128,128,128,1, + 105,121,32,120,164,160,160,160,164,120,32,18,89,121,48,72, + 64,64,240,64,64,240,72,4,102,118,132,120,72,72,120,132, + 18,90,122,136,80,80,32,248,32,248,32,32,32,50,26,122, + 128,128,128,128,0,0,128,128,128,128,2,107,123,120,132,64, + 48,72,132,72,48,8,132,120,27,66,114,144,144,2,107,123, + 120,132,180,204,196,196,196,204,180,132,120,21,88,120,112,136, + 120,136,152,104,0,248,2,103,119,20,40,80,160,80,40,20, + 18,84,116,248,8,8,8,22,65,113,240,2,107,123,120,132, + 244,204,204,244,204,204,204,132,120,27,81,113,248,25,68,116, + 96,144,144,96,18,86,118,32,32,248,32,32,248,22,71,119, + 96,144,16,32,64,128,240,22,71,119,96,144,16,96,16,144, + 96,42,51,115,32,64,128,16,88,120,136,136,136,136,216,168, + 128,128,16,92,124,120,168,168,168,168,104,40,40,40,40,40, + 56,55,17,113,128,32,35,115,64,64,128,38,55,119,64,192, + 64,64,64,64,224,22,70,118,96,144,144,96,0,240,2,103, + 119,160,80,40,20,40,80,160,2,106,122,64,196,72,72,80, + 36,44,84,156,132,2,106,122,64,196,72,72,80,40,52,68, + 136,156,2,106,122,196,36,72,48,208,36,76,84,156,4,0, + 107,123,32,32,0,32,32,32,32,64,132,132,120,2,108,124, + 32,16,0,48,72,132,132,252,132,132,132,132,2,108,124,16, + 32,0,48,72,132,132,252,132,132,132,132,2,108,124,48,72, + 0,48,72,132,132,252,132,132,132,132,2,108,124,100,152,0, + 48,72,132,132,252,132,132,132,132,2,107,123,72,0,48,72, + 132,132,252,132,132,132,132,2,107,123,48,72,48,72,132,132, + 252,132,132,132,132,2,106,122,60,80,144,144,252,144,144,144, + 144,156,0,108,124,120,132,132,128,128,128,128,132,132,120,16, + 32,2,108,124,32,16,0,252,128,128,128,248,128,128,128,252, + 2,108,124,16,32,0,252,128,128,128,248,128,128,128,252,2, + 108,124,48,72,0,252,128,128,128,248,128,128,128,252,2,107, + 123,72,0,252,128,128,128,248,128,128,128,252,18,92,124,64, + 32,0,248,32,32,32,32,32,32,32,248,18,92,124,16,32, + 0,248,32,32,32,32,32,32,32,248,18,92,124,32,80,0, + 248,32,32,32,32,32,32,32,248,18,91,123,80,0,248,32, + 32,32,32,32,32,32,248,2,122,122,120,68,66,66,242,66, + 66,66,68,120,2,108,124,100,152,0,196,196,164,164,148,148, + 148,140,140,2,108,124,32,16,0,120,132,132,132,132,132,132, + 132,120,2,108,124,16,32,0,120,132,132,132,132,132,132,132, + 120,2,108,124,48,72,0,120,132,132,132,132,132,132,132,120, + 2,108,124,100,152,0,120,132,132,132,132,132,132,132,120,2, + 107,123,72,0,120,132,132,132,132,132,132,132,120,2,119,119, + 130,68,40,16,40,68,130,0,110,126,4,4,120,140,148,148, + 148,164,164,164,196,120,128,128,2,108,124,32,16,0,132,132, + 132,132,132,132,132,132,120,2,108,124,16,32,0,132,132,132, + 132,132,132,132,132,120,2,108,124,48,72,0,132,132,132,132, + 132,132,132,132,120,2,107,123,72,0,132,132,132,132,132,132, + 132,132,120,18,92,124,16,32,0,136,136,80,80,32,32,32, + 32,32,2,106,122,128,128,248,132,132,132,132,248,128,128,2, + 106,122,48,72,72,72,112,72,68,68,68,248,2,106,122,32, + 16,0,120,132,4,124,132,132,124,2,106,122,8,16,0,120, + 132,4,124,132,132,124,2,106,122,48,72,0,120,132,4,124, + 132,132,124,2,106,122,100,152,0,120,132,4,124,132,132,124, + 2,105,121,72,0,120,132,4,124,132,132,124,2,107,123,48, + 72,48,0,120,132,4,124,132,132,124,2,119,119,124,146,50, + 94,144,146,124,0,105,121,120,132,128,128,128,132,120,16,32, + 2,106,122,32,16,0,120,132,132,252,128,132,120,2,106,122, + 16,32,0,120,132,132,252,128,132,120,2,106,122,48,72,0, + 120,132,132,252,128,132,120,2,105,121,72,0,120,132,132,252, + 128,132,120,18,90,122,64,32,0,96,32,32,32,32,32,248, + 18,90,122,16,32,0,96,32,32,32,32,32,248,18,90,122, + 96,144,0,96,32,32,32,32,32,248,18,89,121,80,0,96, + 32,32,32,32,32,248,18,91,123,80,32,80,8,120,136,136, + 136,136,136,112,2,106,122,100,152,0,184,196,132,132,132,132, + 132,2,106,122,32,16,0,120,132,132,132,132,132,120,2,106, + 122,16,32,0,120,132,132,132,132,132,120,2,106,122,48,72, + 0,120,132,132,132,132,132,120,2,106,122,100,152,0,120,132, + 132,132,132,132,120,2,105,121,72,0,120,132,132,132,132,132, + 120,2,101,117,48,0,252,0,48,0,107,123,4,8,120,148, + 148,164,164,196,120,128,128,2,106,122,32,16,0,132,132,132, + 132,132,140,116,2,106,122,16,32,0,132,132,132,132,132,140, + 116,2,106,122,48,72,0,132,132,132,132,132,140,116,2,105, + 121,72,0,132,132,132,132,132,140,116,0,108,124,16,32,0, + 132,132,68,72,40,56,16,144,96,0,108,124,128,128,128,184, + 196,132,132,132,196,184,128,128,0,107,123,72,0,132,132,68, + 72,40,56,16,144,96}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=13 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=13 + Font Bounding box w= 7 h=14 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_7x14r[1151] U8G_SECTION(".progmem.u8g_font_7x14r") = { + 1,7,14,0,254,10,1,138,3,30,32,127,254,12,254,11, + 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, + 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, + 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, + 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, + 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, + 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, + 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, + 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, + 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, + 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, + 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, + 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, + 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, + 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, + 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, + 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, + 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, + 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, + 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, + 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, + 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, + 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, + 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, + 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, + 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, + 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, + 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, + 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, + 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, + 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, + 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, + 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, + 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, + 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, + 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, + 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, + 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, + 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, + 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, + 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, + 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, + 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, + 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, + 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, + 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, + 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, + 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, + 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, + 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, + 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, + 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, + 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, + 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, + 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, + 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, + 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, + 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, + 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, + 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, + 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, + 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, + 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, + 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, + 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, + 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, + 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, + 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, + 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, + 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, + 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, + 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 3, '1' Height: 10 + Calculated Max Values w= 8 h=13 x= 7 y= 9 dx= 8 dy= 0 ascent=11 len=13 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[2420] U8G_SECTION(".progmem.u8g_font_8x13_67_75") = { + 1,8,13,0,254,3,1,94,2,193,32,255,0,11,254,10, + 0,3,133,133,36,18,255,18,36,18,88,136,32,32,168,112, + 32,168,112,32,2,119,135,16,34,68,248,68,34,16,18,119, + 135,16,136,68,62,68,136,16,3,133,133,32,65,255,65,32, + 18,89,137,32,112,168,32,32,32,32,32,112,3,133,133,4, + 130,255,130,4,18,89,137,112,32,32,32,32,32,168,112,32, + 2,122,138,16,56,84,16,16,16,84,56,16,254,3,133,133, + 34,65,254,64,32,3,133,133,68,130,127,2,4,3,133,133, + 34,69,254,68,36,3,133,133,68,162,127,34,36,3,133,133, + 36,90,231,66,36,3,133,133,36,82,255,82,36,18,106,138, + 64,64,128,152,104,8,16,84,56,16,18,106,138,32,64,252, + 68,36,4,4,4,4,4,18,106,138,16,8,252,136,144,128, + 128,128,128,128,18,106,138,4,4,4,4,4,36,68,252,64, + 32,18,106,138,128,128,128,128,128,144,136,252,8,16,18,104, + 136,240,16,16,16,16,84,56,16,18,90,138,8,8,8,8, + 8,40,72,248,64,32,4,135,135,12,18,33,33,169,112,32, + 4,135,135,48,72,132,132,149,14,4,2,136,136,255,0,112, + 96,80,8,4,2,2,136,136,136,144,190,144,9,125,9,17, + 4,135,135,100,142,149,132,132,72,48,4,135,135,38,113,169, + 33,33,18,12,5,131,131,32,64,255,3,131,131,255,64,32, + 50,57,137,128,192,160,128,128,128,128,128,128,34,57,137,32, + 96,160,32,32,32,32,32,32,5,131,131,4,2,255,3,131, + 131,255,2,4,50,57,137,128,128,128,128,128,128,160,192,128, + 34,57,137,32,32,32,32,32,32,160,96,32,2,121,137,8, + 4,254,4,40,64,254,64,32,2,138,138,36,116,172,36,36, + 36,36,53,46,36,2,121,137,32,64,254,64,40,4,254,4, + 8,2,139,139,32,64,255,64,32,0,32,64,255,64,32,2, + 122,138,68,238,68,68,68,68,68,68,68,68,2,139,139,4, + 2,255,2,4,0,4,2,255,2,4,2,122,138,68,68,68, + 68,68,68,68,68,238,68,2,119,135,32,64,254,0,254,4, + 8,2,119,135,8,4,254,0,254,64,32,2,135,135,16,33, + 127,130,127,36,16,3,133,133,36,126,153,126,36,2,135,135, + 8,36,254,65,254,132,8,2,135,135,16,32,127,128,127,32, + 16,18,121,137,16,40,108,170,40,40,40,40,40,2,135,135, + 8,4,254,1,254,4,8,2,121,137,40,40,40,40,40,170, + 108,40,16,3,133,133,36,126,129,126,36,2,123,139,16,40, + 108,170,40,40,40,170,108,40,16,2,119,135,252,144,136,196, + 162,144,8,18,119,135,126,18,34,70,138,18,32,18,119,135, + 32,18,138,70,34,18,126,2,119,135,8,144,162,196,136,144, + 252,2,137,137,8,16,63,64,255,64,63,16,8,2,137,137, + 16,8,252,2,255,2,252,8,16,2,135,135,16,32,72,245, + 66,32,16,2,135,135,8,4,18,175,66,4,8,2,122,138, + 16,56,84,146,16,124,16,124,16,16,2,122,138,16,16,124, + 16,124,16,146,84,56,16,2,119,135,16,32,64,182,64,32, + 16,2,122,138,16,40,84,146,0,16,16,0,16,16,18,119, + 135,16,8,4,218,4,8,16,2,122,138,16,16,0,16,16, + 0,146,84,40,16,3,117,133,144,160,254,160,144,19,117,133, + 18,10,254,10,18,2,135,135,16,48,95,129,95,48,16,2, + 121,137,16,40,68,238,40,40,40,40,56,2,135,135,8,12, + 250,129,250,12,8,2,121,137,56,40,40,40,40,238,68,40, + 16,1,123,139,16,40,68,238,40,40,56,0,56,40,56,1, + 122,138,16,40,68,238,40,40,40,108,68,124,1,122,138,16, + 40,68,254,40,40,40,108,68,124,1,122,138,16,40,68,254, + 56,56,56,124,68,124,2,121,137,16,40,68,238,68,238,40, + 40,56,1,122,138,16,40,68,238,68,238,40,108,68,124,2, + 135,135,136,140,250,129,250,140,136,2,119,135,254,128,188,176, + 168,164,130,2,119,135,130,74,42,26,122,2,254,2,121,137, + 16,40,68,238,40,238,68,40,16,4,133,133,36,82,255,82, + 36,2,138,138,36,46,53,36,36,36,36,172,116,36,0,141, + 141,4,2,255,2,4,2,255,2,4,2,255,2,4,4,117, + 133,40,72,254,72,40,20,117,133,40,36,254,36,40,4,117, + 133,16,84,254,84,16,4,133,133,42,74,255,74,42,4,133, + 133,84,82,255,82,84,4,133,133,24,90,255,90,24,3,135, + 135,16,48,80,159,80,48,16,3,135,135,8,12,10,249,10, + 12,8,4,133,133,36,102,189,102,36,7,134,134,255,255,255, + 255,255,255,0,130,130,255,255,0,131,131,255,255,255,0,133, + 133,255,255,255,255,255,0,135,135,255,255,255,255,255,255,255, + 0,136,136,255,255,255,255,255,255,255,255,0,138,138,255,255, + 255,255,255,255,255,255,255,255,0,139,139,255,255,255,255,255, + 255,255,255,255,255,255,0,141,141,255,255,255,255,255,255,255, + 255,255,255,255,255,255,0,125,141,254,254,254,254,254,254,254, + 254,254,254,254,254,254,0,109,141,252,252,252,252,252,252,252, + 252,252,252,252,252,252,0,93,141,248,248,248,248,248,248,248, + 248,248,248,248,248,248,0,77,141,240,240,240,240,240,240,240, + 240,240,240,240,240,240,0,61,141,224,224,224,224,224,224,224, + 224,224,224,224,224,224,0,45,141,192,192,192,192,192,192,192, + 192,192,192,192,192,192,0,29,141,128,128,128,128,128,128,128, + 128,128,128,128,128,128,64,77,141,240,240,240,240,240,240,240, + 240,240,240,240,240,240,1,139,139,85,0,170,0,85,0,170, + 0,85,0,170,0,141,141,170,85,170,85,170,85,170,85,170, + 85,170,85,170,0,141,141,255,85,255,170,255,85,255,170,255, + 85,255,170,255,11,130,130,255,255,112,29,141,128,128,128,128, + 128,128,128,128,128,128,128,128,128,0,71,135,240,240,240,240, + 240,240,240,64,71,135,240,240,240,240,240,240,240,7,70,134, + 240,240,240,240,240,240,0,141,141,240,240,240,240,240,240,255, + 255,255,255,255,255,255,0,141,141,240,240,240,240,240,240,15, + 15,15,15,15,15,15,0,141,141,255,255,255,255,255,255,240, + 240,240,240,240,240,240,0,141,141,255,255,255,255,255,255,15, + 15,15,15,15,15,15,71,70,134,240,240,240,240,240,240,0, + 141,141,15,15,15,15,15,15,240,240,240,240,240,240,240,0, + 141,141,15,15,15,15,15,15,255,255,255,255,255,255,255,2, + 119,135,254,254,254,254,254,254,254,2,119,135,254,130,130,130, + 130,130,254,2,119,135,124,130,130,130,130,130,124,2,119,135, + 254,130,186,186,186,130,254,2,119,135,254,130,254,130,254,130, + 254,2,119,135,254,170,170,170,170,170,254,2,119,135,254,170, + 254,170,254,170,254,2,119,135,254,146,138,198,162,146,254,2, + 119,135,254,146,162,198,138,146,254,2,119,135,254,214,170,214, + 170,214,254,37,51,131,224,224,224,37,51,131,224,160,224,21, + 100,132,252,252,252,252,21,100,132,252,132,132,252,18,89,137, + 248,248,248,248,248,248,248,248,248,18,89,137,248,136,136,136, + 136,136,136,136,248,5,132,132,31,62,124,248,5,132,132,31, + 34,68,248,2,136,136,24,24,60,60,126,126,255,255,2,136, + 136,24,24,36,36,66,66,129,255,18,102,134,48,48,120,120, + 252,252,18,102,134,48,48,72,72,132,252,18,107,139,128,192, + 224,240,248,252,248,240,224,192,128,18,107,139,128,192,160,144, + 136,132,136,144,160,192,128,20,101,133,192,240,252,240,192,20, + 101,133,192,176,140,176,192,3,119,135,128,224,248,254,248,224, + 128,3,119,135,128,224,152,134,152,224,128,2,136,136,255,255, + 126,126,60,60,24,24,2,136,136,255,129,66,66,36,36,24, + 24,18,102,134,252,252,120,120,48,48,18,102,134,252,132,72, + 72,48,48,18,107,139,4,12,28,60,124,252,124,60,28,12, + 4,18,107,139,4,12,20,36,68,132,68,36,20,12,4,20, + 101,133,12,60,252,60,12,20,101,133,12,52,196,52,12,3, + 119,135,2,14,62,254,62,14,2,3,119,135,2,14,50,194, + 50,14,2,3,119,135,16,56,124,254,124,56,16,3,119,135, + 16,40,68,130,68,40,16,3,119,135,16,40,84,186,84,40, + 16,3,119,135,56,68,146,186,146,68,56,18,105,137,48,48, + 72,72,132,72,72,48,48,2,136,136,60,66,129,129,129,129, + 66,60,2,136,136,24,66,0,129,129,0,66,24,2,136,136, + 60,106,171,171,171,171,106,60,2,136,136,60,66,153,165,165, + 153,66,60,2,136,136,60,126,255,255,255,255,126,60,2,136, + 136,60,114,241,241,241,241,114,60,2,136,136,60,78,143,143, + 143,143,78,60,2,136,136,60,66,129,129,255,255,126,60,2, + 136,136,60,126,255,255,129,129,66,60,2,136,136,60,78,143, + 143,129,129,66,60,2,136,136,60,78,143,143,255,255,126,60, + 2,72,136,48,112,240,240,240,240,112,48,66,72,136,192,224, + 240,240,240,240,224,192,0,141,141,255,255,255,255,195,129,129, + 129,129,195,255,255,255,0,141,141,255,255,255,255,195,153,189, + 189,153,195,255,255,255,6,135,135,255,255,255,255,195,153,189, + 0,134,134,189,153,195,255,255,255,6,68,132,48,64,128,128, + 70,68,132,192,32,16,16,66,68,132,16,16,32,192,2,68, + 132,128,128,64,48,6,132,132,60,66,129,129,2,132,132,129, + 129,66,60,2,136,136,1,3,7,15,31,63,127,255,2,136, + 136,128,192,224,240,248,252,254,255,2,136,136,255,254,252,248, + 240,224,192,128,2,136,136,255,127,63,31,15,7,3,1,20, + 85,133,112,136,136,136,112,2,120,136,254,226,226,226,226,226, + 226,254,2,120,136,254,142,142,142,142,142,142,254,2,120,136, + 254,254,250,242,226,194,130,254,2,120,136,254,130,134,142,158, + 190,254,254,2,120,136,254,146,146,146,146,146,146,254,2,122, + 138,16,16,40,40,68,84,124,146,130,254,2,122,138,16,16, + 56,56,116,116,116,242,242,254,2,122,138,16,16,56,56,92, + 92,92,158,158,254,2,136,136,60,66,129,129,129,129,66,60, + 2,119,135,254,146,146,242,130,130,254,2,119,135,254,130,130, + 242,146,146,254,2,119,135,254,130,130,158,146,146,254,2,119, + 135,254,146,146,158,130,130,254,2,119,135,124,146,146,242,130, + 130,124,2,119,135,124,130,130,242,146,146,124,2,119,135,124, + 130,130,158,146,146,124,2,119,135,124,146,146,158,130,130,124, + 19,102,134,252,136,144,160,192,128,19,102,134,252,68,36,20, + 12,4,19,102,134,128,192,160,144,136,252,19,102,134,252,132, + 132,132,132,252,19,102,134,252,252,252,252,252,252,37,68,132, + 240,144,144,240,37,68,132,240,240,240,240,19,102,134,4,12, + 20,36,68,252}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 11, '1' Height: 4 + Calculated Max Values w= 8 h=11 x= 2 y= 3 dx= 8 dy= 0 ascent=11 len=11 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =11 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13_75r[496] U8G_SECTION(".progmem.u8g_font_8x13_75r") = { + 1,8,13,0,254,11,1,83,0,0,32,79,0,11,0,11, + 0,2,119,135,254,254,254,254,254,254,254,2,119,135,254,130, + 130,130,130,130,254,2,119,135,124,130,130,130,130,130,124,2, + 119,135,254,130,186,186,186,130,254,2,119,135,254,130,254,130, + 254,130,254,2,119,135,254,170,170,170,170,170,254,2,119,135, + 254,170,254,170,254,170,254,2,119,135,254,146,138,198,162,146, + 254,2,119,135,254,146,162,198,138,146,254,2,119,135,254,214, + 170,214,170,214,254,37,51,131,224,224,224,37,51,131,224,160, + 224,21,100,132,252,252,252,252,21,100,132,252,132,132,252,18, + 89,137,248,248,248,248,248,248,248,248,248,18,89,137,248,136, + 136,136,136,136,136,136,248,5,132,132,31,62,124,248,5,132, + 132,31,34,68,248,2,136,136,24,24,60,60,126,126,255,255, + 2,136,136,24,24,36,36,66,66,129,255,18,102,134,48,48, + 120,120,252,252,18,102,134,48,48,72,72,132,252,18,107,139, + 128,192,224,240,248,252,248,240,224,192,128,18,107,139,128,192, + 160,144,136,132,136,144,160,192,128,20,101,133,192,240,252,240, + 192,20,101,133,192,176,140,176,192,3,119,135,128,224,248,254, + 248,224,128,3,119,135,128,224,152,134,152,224,128,2,136,136, + 255,255,126,126,60,60,24,24,2,136,136,255,129,66,66,36, + 36,24,24,18,102,134,252,252,120,120,48,48,18,102,134,252, + 132,72,72,48,48,18,107,139,4,12,28,60,124,252,124,60, + 28,12,4,18,107,139,4,12,20,36,68,132,68,36,20,12, + 4,20,101,133,12,60,252,60,12,20,101,133,12,52,196,52, + 12,3,119,135,2,14,62,254,62,14,2,3,119,135,2,14, + 50,194,50,14,2,3,119,135,16,56,124,254,124,56,16,3, + 119,135,16,40,68,130,68,40,16,3,119,135,16,40,84,186, + 84,40,16,3,119,135,56,68,146,186,146,68,56,18,105,137, + 48,48,72,72,132,72,72,48,48,2,136,136,60,66,129,129, + 129,129,66,60,2,136,136,24,66,0,129,129,0,66,24,2, + 136,136,60,106,171,171,171,171,106,60,2,136,136,60,66,153, + 165,165,153,66,60,2,136,136,60,126,255,255,255,255,126,60 + }; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=12 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=12 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13B[2302] U8G_SECTION(".progmem.u8g_font_8x13B") = { + 1,8,13,0,254,10,1,127,3,12,32,255,254,11,254,10, + 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, + 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, + 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, + 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, + 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, + 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, + 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, + 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, + 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, + 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, + 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, + 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, + 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, + 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, + 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, + 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, + 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, + 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, + 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, + 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, + 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, + 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, + 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, + 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, + 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, + 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, + 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, + 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, + 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, + 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, + 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, + 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, + 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, + 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, + 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, + 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, + 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, + 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, + 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, + 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, + 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, + 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, + 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, + 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, + 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, + 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, + 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, + 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, + 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, + 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, + 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, + 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, + 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, + 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, + 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, + 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, + 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, + 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, + 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, + 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, + 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, + 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, + 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, + 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, + 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, + 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, + 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, + 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, + 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, + 254,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,13,0,128,50,42,138,192,192,0,192,192,192,192, + 192,192,192,3,104,136,16,124,212,208,208,212,124,16,1,123, + 139,60,102,96,96,252,96,96,96,240,190,224,3,119,135,198, + 254,108,68,108,254,198,18,106,138,204,204,204,120,120,252,48, + 252,48,48,50,42,138,192,192,192,192,0,0,192,192,192,192, + 18,106,138,120,204,192,120,204,204,120,12,204,120,26,82,130, + 216,216,3,121,137,124,198,186,234,226,234,186,198,124,21,87, + 135,240,24,248,152,248,0,248,3,119,135,54,108,216,176,216, + 108,54,3,101,133,252,252,4,4,4,22,81,129,248,3,121, + 137,124,198,186,170,186,178,170,198,124,28,97,129,252,24,100, + 132,120,204,204,120,19,103,135,48,48,252,48,48,0,252,22, + 70,134,224,176,48,96,192,240,22,70,134,224,176,96,48,176, + 224,41,67,131,48,96,192,0,121,137,198,198,198,198,198,238, + 252,192,192,1,123,139,62,122,202,202,202,122,58,10,10,10, + 14,54,34,130,192,192,16,67,131,48,144,96,22,70,134,96, + 224,96,96,96,240,21,87,135,112,248,136,248,112,0,248,3, + 119,135,216,108,54,26,54,108,216,2,122,138,96,224,96,96, + 98,246,14,26,30,6,2,122,138,96,224,96,96,124,246,6, + 12,24,30,2,122,138,224,176,96,48,178,230,14,26,30,6, + 18,106,138,48,48,0,48,48,96,192,204,204,120,2,122,138, + 48,24,0,56,124,198,198,254,198,198,2,122,138,24,48,0, + 56,124,198,198,254,198,198,2,122,138,56,108,0,56,124,198, + 198,254,198,198,2,122,138,52,88,0,56,124,198,198,254,198, + 198,2,122,138,108,108,0,56,124,198,198,254,198,198,2,123, + 139,24,36,24,0,56,124,198,198,254,198,198,2,122,138,126, + 248,216,216,216,252,216,216,216,222,0,124,140,124,230,192,192, + 192,192,192,230,124,24,72,48,2,122,138,48,24,0,254,192, + 192,248,192,192,254,2,122,138,24,48,0,254,192,192,248,192, + 192,254,2,122,138,56,108,0,254,192,192,248,192,192,254,2, + 122,138,108,108,0,254,192,192,248,192,192,254,34,74,138,192, + 96,0,240,96,96,96,96,96,240,34,74,138,48,96,0,240, + 96,96,96,96,96,240,34,90,138,112,216,0,240,96,96,96, + 96,96,240,34,90,138,216,216,0,240,96,96,96,96,96,240, + 2,120,136,252,102,102,246,102,102,102,252,2,122,138,52,88, + 0,198,230,246,214,222,206,198,2,123,139,48,24,0,124,198, + 198,198,198,198,198,124,2,123,139,24,48,0,124,198,198,198, + 198,198,198,124,2,123,139,56,108,0,124,198,198,198,198,198, + 198,124,2,123,139,52,88,0,124,198,198,198,198,198,198,124, + 2,123,139,108,108,0,124,198,198,198,198,198,198,124,2,119, + 135,198,198,124,56,124,198,198,1,122,138,2,124,206,214,214, + 214,214,230,124,128,2,122,138,48,24,0,198,198,198,198,198, + 198,124,2,122,138,24,48,0,198,198,198,198,198,198,124,2, + 122,138,56,108,0,198,198,198,198,198,198,124,2,122,138,108, + 108,0,198,198,198,198,198,198,124,18,106,138,24,48,0,204, + 72,120,48,48,48,48,2,121,137,192,252,198,198,198,252,192, + 192,192,2,122,138,60,102,102,108,236,108,102,102,102,108,2, + 122,138,48,24,0,124,6,126,198,198,206,118,2,122,138,24, + 48,0,124,6,126,198,198,206,118,2,122,138,56,108,0,124, + 6,126,198,198,206,118,2,122,138,52,88,0,124,6,126,198, + 198,206,118,2,122,138,108,108,0,124,6,126,198,198,206,118, + 2,123,139,24,36,24,0,124,6,126,198,198,206,118,2,119, + 135,108,218,26,124,216,218,108,0,122,138,124,230,192,192,192, + 230,124,24,72,48,2,122,138,48,24,0,124,198,198,254,192, + 198,124,2,122,138,24,48,0,124,198,198,254,192,198,124,2, + 122,138,56,108,0,124,198,198,254,192,198,124,2,122,138,108, + 108,0,124,198,198,254,192,198,124,34,74,138,192,96,0,224, + 96,96,96,96,96,240,34,74,138,96,192,0,224,96,96,96, + 96,96,240,18,90,138,112,216,0,112,48,48,48,48,48,120, + 18,90,138,216,216,0,112,48,48,48,48,48,120,2,122,138, + 108,56,120,12,126,198,198,198,198,124,2,122,138,52,88,0, + 220,230,198,198,198,198,198,2,122,138,48,24,0,124,198,198, + 198,198,198,124,2,122,138,24,48,0,124,198,198,198,198,198, + 124,2,122,138,56,108,0,124,198,198,198,198,198,124,2,122, + 138,52,88,0,124,198,198,198,198,198,124,2,122,138,108,108, + 0,124,198,198,198,198,198,124,19,103,135,48,48,0,252,0, + 48,48,1,121,137,2,124,206,214,214,214,230,124,128,2,122, + 138,48,24,0,198,198,198,198,198,206,118,2,122,138,24,48, + 0,198,198,198,198,198,206,118,2,122,138,56,108,0,198,198, + 198,198,198,206,118,2,122,138,108,108,0,198,198,198,198,198, + 206,118,0,124,140,24,48,0,198,198,198,198,206,118,6,198, + 124,0,123,139,192,192,220,230,198,198,198,230,220,192,192,0, + 124,140,108,108,0,198,198,198,198,206,118,6,198,124}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =10 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13Br[1123] U8G_SECTION(".progmem.u8g_font_8x13Br") = { + 1,8,13,0,254,10,1,127,3,12,32,127,254,11,254,10, + 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, + 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, + 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, + 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, + 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, + 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, + 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, + 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, + 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, + 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, + 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, + 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, + 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, + 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, + 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, + 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, + 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, + 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, + 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, + 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, + 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, + 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, + 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, + 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, + 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, + 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, + 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, + 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, + 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, + 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, + 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, + 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, + 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, + 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, + 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, + 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, + 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, + 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, + 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, + 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, + 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, + 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, + 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, + 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, + 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, + 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, + 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, + 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, + 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, + 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, + 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, + 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, + 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, + 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, + 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, + 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, + 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, + 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, + 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, + 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, + 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, + 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, + 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, + 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, + 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, + 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, + 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, + 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, + 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, + 254,156,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13[2152] U8G_SECTION(".progmem.u8g_font_8x13") = { + 1,8,13,0,254,9,1,97,2,205,32,255,254,11,254,9, + 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, + 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, + 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, + 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, + 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, + 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, + 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, + 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, + 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, + 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, + 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, + 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, + 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, + 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, + 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, + 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, + 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, + 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, + 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, + 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, + 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, + 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, + 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, + 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, + 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, + 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, + 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, + 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, + 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, + 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, + 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, + 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, + 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, + 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, + 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, + 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, + 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, + 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, + 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, + 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, + 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, + 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, + 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, + 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, + 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, + 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, + 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, + 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, + 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, + 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, + 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, + 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, + 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, + 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, + 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, + 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, + 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, + 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, + 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, + 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, + 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, + 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, + 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, + 72,168,144,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,13,0,128,50,25,137,128,0,128,128,128,128, + 128,128,128,19,88,136,32,112,168,160,160,168,112,32,2,121, + 137,28,34,32,112,32,32,32,98,220,19,102,134,132,120,72, + 72,120,132,2,121,137,130,130,68,40,124,16,124,16,16,50, + 25,137,128,128,128,128,0,128,128,128,128,34,74,138,96,144, + 128,96,144,144,96,16,144,96,42,66,130,144,144,3,121,137, + 56,68,146,170,162,170,146,68,56,20,87,135,112,8,120,136, + 120,0,248,3,119,135,18,36,72,144,72,36,18,19,100,132, + 252,4,4,4,38,65,129,240,3,121,137,56,68,146,170,170, + 178,170,68,56,26,97,129,252,39,68,132,96,144,144,96,19, + 87,135,32,32,248,32,32,0,248,22,70,134,96,144,16,96, + 128,240,22,70,134,96,144,32,16,144,96,58,34,130,64,128, + 17,103,135,132,132,132,132,204,180,128,18,105,137,124,232,232, + 232,104,40,40,40,40,54,33,129,192,48,34,130,64,192,22, + 54,134,64,192,64,64,64,224,21,70,134,96,144,144,96,0, + 240,3,119,135,144,72,36,18,36,72,144,2,122,138,64,192, + 64,64,66,230,10,18,26,6,2,122,138,64,192,64,64,76, + 242,2,12,16,30,2,122,138,96,144,32,16,146,102,10,18, + 26,6,18,105,137,32,0,32,32,64,128,132,132,120,18,106, + 138,32,16,0,48,72,132,132,252,132,132,18,106,138,16,32, + 0,48,72,132,132,252,132,132,18,106,138,48,72,0,48,72, + 132,132,252,132,132,18,106,138,100,152,0,48,72,132,132,252, + 132,132,18,106,138,72,72,0,48,72,132,132,252,132,132,18, + 106,138,48,72,48,48,72,132,132,252,132,132,2,121,137,110, + 144,144,144,156,240,144,144,158,16,107,139,120,132,128,128,128, + 128,128,132,120,16,32,18,106,138,32,16,0,252,128,128,240, + 128,128,252,18,106,138,16,32,0,252,128,128,240,128,128,252, + 18,106,138,48,72,0,252,128,128,240,128,128,252,18,106,138, + 72,72,0,252,128,128,240,128,128,252,18,90,138,64,32,0, + 248,32,32,32,32,32,248,18,90,138,16,32,0,248,32,32, + 32,32,32,248,18,90,138,48,72,0,248,32,32,32,32,32, + 248,18,90,138,136,136,0,248,32,32,32,32,32,248,2,121, + 137,120,68,66,66,226,66,66,68,120,2,122,138,100,152,0, + 130,194,162,146,138,134,130,2,122,138,32,16,0,124,130,130, + 130,130,130,124,2,122,138,8,16,0,124,130,130,130,130,130, + 124,2,122,138,24,36,0,124,130,130,130,130,130,124,2,122, + 138,100,152,0,124,130,130,130,130,130,124,2,122,138,68,68, + 0,124,130,130,130,130,130,124,19,102,134,132,72,48,48,72, + 132,17,107,139,4,120,140,148,148,164,164,164,196,120,128,18, + 106,138,64,32,0,132,132,132,132,132,132,120,18,106,138,16, + 32,0,132,132,132,132,132,132,120,18,106,138,48,72,0,132, + 132,132,132,132,132,120,18,106,138,72,72,0,132,132,132,132, + 132,132,120,18,90,138,16,32,0,136,136,80,32,32,32,32, + 18,105,137,128,248,132,132,132,248,128,128,128,18,105,137,112, + 136,136,144,160,152,132,132,184,18,105,137,32,16,0,120,4, + 124,132,140,116,18,105,137,8,16,0,120,4,124,132,140,116, + 18,105,137,48,72,0,120,4,124,132,140,116,18,105,137,100, + 152,0,120,4,124,132,140,116,18,105,137,72,72,0,120,4, + 124,132,140,116,18,106,138,48,72,48,0,120,4,124,132,140, + 116,2,118,134,108,18,124,144,146,108,16,104,136,120,132,128, + 128,132,120,16,32,18,105,137,32,16,0,120,132,252,128,132, + 120,18,105,137,16,32,0,120,132,252,128,132,120,18,105,137, + 48,72,0,120,132,252,128,132,120,18,105,137,72,72,0,120, + 132,252,128,132,120,18,89,137,64,32,0,96,32,32,32,32, + 248,18,89,137,32,64,0,96,32,32,32,32,248,18,89,137, + 96,144,0,96,32,32,32,32,248,18,89,137,144,144,0,96, + 32,32,32,32,248,18,106,138,72,48,80,8,120,132,132,132, + 132,120,18,105,137,100,152,0,184,196,132,132,132,132,18,105, + 137,64,32,0,120,132,132,132,132,120,18,105,137,16,32,0, + 120,132,132,132,132,120,18,105,137,48,72,0,120,132,132,132, + 132,120,18,105,137,100,152,0,120,132,132,132,132,120,18,105, + 137,72,72,0,120,132,132,132,132,120,19,87,135,32,32,0, + 248,0,32,32,17,104,136,4,120,140,148,164,196,120,128,18, + 105,137,64,32,0,136,136,136,136,136,116,18,105,137,16,32, + 0,136,136,136,136,136,116,18,105,137,48,72,0,136,136,136, + 136,136,116,18,105,137,80,80,0,136,136,136,136,136,116,16, + 107,139,16,32,0,132,132,132,140,116,4,132,120,16,106,138, + 128,128,184,196,132,132,196,184,128,128,16,107,139,72,72,0, + 132,132,132,140,116,4,132,120}; +/* + Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 8 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13O[2153] U8G_SECTION(".progmem.u8g_font_8x13O") = { + 1,8,13,0,254,9,1,98,2,206,32,255,254,11,254,9, + 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, + 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, + 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, + 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, + 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, + 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, + 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, + 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, + 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, + 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, + 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, + 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, + 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, + 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, + 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, + 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, + 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, + 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, + 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, + 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, + 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, + 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, + 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, + 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, + 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, + 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, + 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, + 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, + 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, + 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, + 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, + 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, + 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, + 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, + 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, + 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, + 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, + 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, + 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, + 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, + 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, + 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, + 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, + 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, + 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, + 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, + 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, + 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, + 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, + 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, + 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, + 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, + 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, + 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, + 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, + 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, + 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, + 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, + 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, + 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, + 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, + 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, + 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, + 131,72,168,144,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,13,0,128,50,41,137,64,0,64,64,64, + 128,128,128,128,19,104,136,16,56,84,80,160,168,112,32,2, + 137,137,14,17,16,56,16,32,32,98,220,3,118,134,66,60, + 36,72,120,132,2,121,137,130,130,68,40,124,16,248,32,32, + 50,41,137,64,64,64,64,0,128,128,128,128,18,90,138,48, + 72,64,48,72,144,96,16,144,96,42,66,130,144,144,2,137, + 137,28,34,73,85,162,170,146,68,56,20,103,135,56,4,120, + 136,120,0,248,3,119,135,18,36,72,144,144,72,36,19,100, + 132,252,4,8,8,38,65,129,240,2,137,137,28,34,89,85, + 170,178,170,68,56,26,97,129,252,39,68,132,96,144,144,96, + 19,103,135,16,16,124,32,32,0,248,22,86,134,48,72,8, + 112,128,240,22,86,134,112,8,48,16,144,96,58,34,130,64, + 128,1,119,135,66,66,66,132,204,180,128,18,105,137,124,232, + 232,232,104,80,80,80,80,54,33,129,192,48,34,130,64,192, + 38,54,134,32,96,32,64,64,224,21,102,134,24,36,72,48, + 0,240,3,119,135,72,36,18,18,36,72,144,18,106,138,32, + 96,32,64,68,236,20,40,60,8,2,122,138,32,96,32,64, + 76,242,4,24,32,60,18,106,138,112,8,48,16,148,108,20, + 40,60,8,18,105,137,16,0,16,16,32,64,132,136,112,2, + 122,138,16,8,0,24,36,66,66,124,132,132,2,122,138,8, + 16,0,24,36,66,66,124,132,132,2,122,138,24,36,0,24, + 36,66,66,124,132,132,2,122,138,50,76,0,24,36,66,66, + 124,132,132,2,122,138,36,36,0,24,36,66,66,124,132,132, + 2,122,138,24,36,24,24,36,66,66,124,132,132,2,137,137, + 55,72,72,72,78,112,144,144,158,0,123,139,60,66,64,64, + 64,128,128,132,120,16,32,2,122,138,16,8,0,126,64,64, + 112,128,128,252,2,122,138,8,16,0,126,64,64,112,128,128, + 252,2,122,138,24,36,0,126,64,64,112,128,128,252,2,122, + 138,36,36,0,126,64,64,112,128,128,252,18,106,138,32,16, + 0,124,16,16,32,32,32,248,18,106,138,8,16,0,124,16, + 16,32,32,32,248,18,106,138,24,36,0,124,16,16,32,32, + 32,248,18,106,138,68,68,0,124,16,16,32,32,32,248,2, + 121,137,120,68,66,66,226,68,132,136,240,2,138,138,50,76, + 0,65,97,81,146,138,134,130,2,138,138,16,8,0,62,65, + 65,130,130,130,124,2,138,138,4,8,0,62,65,65,130,130, + 130,124,2,138,138,12,18,0,62,65,65,130,130,130,124,2, + 138,138,50,76,0,62,65,65,130,130,130,124,2,138,138,34, + 34,0,62,65,65,130,130,130,124,3,118,134,66,36,24,48, + 72,132,1,123,139,2,60,70,74,74,82,164,164,196,120,128, + 2,122,138,32,16,0,66,66,66,132,132,132,120,2,122,138, + 8,16,0,66,66,66,132,132,132,120,2,122,138,24,36,0, + 66,66,66,132,132,132,120,2,122,138,36,36,0,66,66,66, + 132,132,132,120,18,90,138,16,32,0,136,136,80,96,64,64, + 64,2,121,137,64,124,66,66,66,124,128,128,128,18,105,137, + 56,68,68,72,80,136,132,132,184,2,121,137,16,8,0,60, + 2,124,132,140,116,2,121,137,4,8,0,60,2,124,132,140, + 116,2,121,137,24,36,0,60,2,124,132,140,116,2,121,137, + 50,76,0,60,2,124,132,140,116,2,121,137,36,36,0,60, + 2,124,132,140,116,2,122,138,24,36,24,0,60,2,124,132, + 140,116,2,134,134,54,9,126,144,146,108,0,120,136,60,66, + 128,128,132,120,16,32,2,121,137,16,8,0,60,66,124,128, + 132,120,2,121,137,8,16,0,60,66,124,128,132,120,2,121, + 137,24,36,0,60,66,124,128,132,120,2,121,137,36,36,0, + 60,66,124,128,132,120,18,89,137,32,16,0,48,16,16,32, + 32,248,18,89,137,16,32,0,48,16,16,32,32,248,18,89, + 137,48,72,0,48,16,16,32,32,248,18,89,137,72,72,0, + 48,16,16,32,32,248,2,122,138,36,24,40,4,60,66,66, + 132,132,120,2,121,137,50,76,0,92,98,66,132,132,132,2, + 121,137,32,16,0,60,66,66,132,132,120,2,121,137,8,16, + 0,60,66,66,132,132,120,2,121,137,24,36,0,60,66,66, + 132,132,120,2,121,137,50,76,0,60,66,66,132,132,120,2, + 121,137,36,36,0,60,66,66,132,132,120,19,103,135,16,16, + 0,252,0,32,32,1,120,136,2,60,70,90,164,196,120,128, + 18,105,137,32,16,0,68,68,68,136,136,116,18,105,137,8, + 16,0,68,68,68,136,136,116,18,105,137,24,36,0,68,68, + 68,136,136,116,18,105,137,40,40,0,68,68,68,136,136,116, + 0,123,139,8,16,0,66,66,132,140,116,4,132,120,0,122, + 138,64,64,92,98,66,132,196,184,128,128,0,123,139,36,36, + 0,66,66,132,140,116,4,132,120}; +/* + Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 8 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13Or[1029] U8G_SECTION(".progmem.u8g_font_8x13Or") = { + 1,8,13,0,254,9,1,98,2,206,32,127,254,11,254,9, + 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, + 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, + 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, + 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, + 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, + 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, + 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, + 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, + 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, + 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, + 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, + 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, + 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, + 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, + 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, + 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, + 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, + 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, + 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, + 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, + 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, + 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, + 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, + 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, + 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, + 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, + 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, + 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, + 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, + 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, + 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, + 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, + 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, + 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, + 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, + 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, + 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, + 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, + 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, + 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, + 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, + 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, + 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, + 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, + 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, + 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, + 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, + 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, + 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, + 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, + 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, + 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, + 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, + 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, + 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, + 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, + 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, + 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, + 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, + 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, + 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, + 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, + 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, + 131,72,168,144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 7 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 + Font Bounding box w= 8 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-2 + X Font ascent = 9 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_8x13r[1028] U8G_SECTION(".progmem.u8g_font_8x13r") = { + 1,8,13,0,254,9,1,97,2,205,32,127,254,11,254,9, + 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, + 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, + 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, + 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, + 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, + 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, + 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, + 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, + 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, + 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, + 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, + 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, + 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, + 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, + 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, + 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, + 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, + 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, + 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, + 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, + 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, + 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, + 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, + 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, + 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, + 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, + 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, + 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, + 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, + 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, + 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, + 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, + 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, + 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, + 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, + 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, + 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, + 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, + 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, + 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, + 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, + 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, + 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, + 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, + 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, + 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, + 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, + 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, + 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, + 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, + 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, + 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, + 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, + 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, + 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, + 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, + 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, + 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, + 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, + 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, + 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, + 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, + 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, + 72,168,144,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 4, '1' Height: 10 + Calculated Max Values w= 9 h=15 x= 8 y=10 dx= 9 dy= 0 ascent=12 len=30 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent = 4 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[3804] U8G_SECTION(".progmem.u8g_font_9x15_67_75") = { + 0,9,15,0,253,4,1,255,4,34,32,255,0,12,253,10, + 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, + 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, + 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, + 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, + 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, + 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, + 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, + 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, + 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, + 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, + 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, + 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, + 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, + 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, + 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, + 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, + 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, + 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, + 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, + 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, + 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, + 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, + 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, + 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, + 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, + 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, + 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, + 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, + 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, + 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, + 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, + 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, + 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, + 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, + 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, + 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, + 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, + 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, + 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, + 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, + 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, + 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, + 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, + 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, + 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, + 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, + 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, + 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, + 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, + 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, + 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, + 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, + 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, + 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, + 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, + 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, + 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, + 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, + 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, + 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, + 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, + 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, + 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, + 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, + 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, + 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, + 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, + 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, + 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, + 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, + 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, + 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, + 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, + 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, + 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, + 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, + 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, + 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, + 124,7,11,11,9,1,255,16,40,68,238,68,238,40,40,40, + 40,56,7,11,11,9,1,255,16,40,68,238,68,238,40,40, + 108,68,124,9,7,14,9,0,1,132,0,134,0,253,0,128, + 128,253,0,134,0,132,0,7,7,7,9,1,0,254,128,188, + 176,168,164,130,7,7,7,9,1,0,130,74,42,26,122,2, + 254,7,11,11,9,1,255,16,40,68,238,40,40,40,238,68, + 40,16,9,7,14,9,0,1,4,0,50,0,73,0,255,128, + 73,0,50,0,4,0,9,10,20,9,0,0,34,0,39,0, + 42,128,34,0,34,0,34,0,34,0,170,0,114,0,34,0, + 7,13,13,9,1,254,8,4,254,4,8,4,254,4,8,4, + 254,4,8,8,5,5,9,0,2,36,68,255,68,36,8,5, + 5,9,0,2,36,34,255,34,36,9,5,10,9,0,2,42, + 0,73,0,255,128,73,0,42,0,8,5,5,9,0,2,42, + 74,255,74,42,8,5,5,9,0,2,84,82,255,82,84,9, + 5,10,9,0,2,85,0,148,128,255,128,148,128,85,0,7, + 7,7,9,1,1,16,48,80,158,80,48,16,7,7,7,9, + 1,1,16,24,20,242,20,24,16,8,5,5,9,0,2,36, + 102,189,102,36,9,7,14,9,0,5,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,9,2,4,9,0,253,255,128, + 255,128,9,4,8,9,0,253,255,128,255,128,255,128,255,128, + 9,6,12,9,0,253,255,128,255,128,255,128,255,128,255,128, + 255,128,9,8,16,9,0,253,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,9,9,18,9,0,253,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 9,11,22,9,0,253,255,128,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,9,13,26,9, + 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,9,15,30,9, + 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 8,15,15,9,0,253,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,7,15,15,9,0,253,254,254,254,254,254, + 254,254,254,254,254,254,254,254,254,254,6,15,15,9,0,253, + 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, + 15,15,9,0,253,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,3,15,15,9,0,253,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,2,15,15,9,0,253,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,1,15, + 15,9,0,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,4,15,15,9,5,253,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,9,15,30,9,0,253,170,128, + 0,0,85,0,0,0,170,128,0,0,85,0,0,0,170,128, + 0,0,85,0,0,0,170,128,0,0,85,0,9,15,30,9, + 0,253,170,128,85,0,170,128,85,0,170,128,85,0,170,128, + 85,0,170,128,85,0,170,128,85,0,170,128,85,0,170,128, + 9,15,30,9,0,253,255,128,85,0,255,128,170,128,255,128, + 85,0,255,128,170,128,255,128,85,0,255,128,170,128,255,128, + 85,0,255,128,9,2,4,9,0,10,255,128,255,128,1,15, + 15,9,8,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,5,8,8,9,0,253,248,248,248,248,248,248,248, + 248,4,8,8,9,5,253,240,240,240,240,240,240,240,240,5, + 7,7,9,0,5,248,248,248,248,248,248,248,9,15,30,9, + 0,253,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 9,15,30,9,0,253,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,9,15,30,9,0,253,255,128,255,128,255,128, + 255,128,255,128,255,128,255,128,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,9,15,30,9,0,253,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,4,7,7,9, + 5,5,240,240,240,240,240,240,240,9,15,30,9,0,253,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,9,15,30, + 9,0,253,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, + 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, + 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, + 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, + 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, + 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, + 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, + 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, + 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, + 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, + 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, + 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, + 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, + 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, + 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, + 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, + 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, + 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, + 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, + 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, + 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, + 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, + 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, + 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, + 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, + 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, + 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, + 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, + 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, + 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, + 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, + 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, + 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, + 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, + 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, + 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, + 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, + 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, + 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, + 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, + 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, + 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, + 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, + 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, + 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, + 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, + 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, + 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, + 1,56,124,254,254,254,124,56,7,7,7,9,1,1,56,116, + 242,242,242,116,56,7,7,7,9,1,1,56,92,158,158,158, + 92,56,7,7,7,9,1,1,56,68,130,254,254,124,56,7, + 7,7,9,1,1,56,124,254,254,130,68,56,7,7,7,9, + 1,1,56,92,158,158,130,68,56,7,7,7,9,1,1,56, + 92,158,254,254,124,56,4,7,7,9,1,1,48,112,240,240, + 240,112,48,4,7,7,9,4,1,192,224,240,240,240,224,192, + 9,15,30,9,0,253,255,128,255,128,255,128,255,128,255,128, + 227,128,193,128,193,128,193,128,227,128,255,128,255,128,255,128, + 255,128,255,128,9,15,30,9,0,253,255,128,255,128,255,128, + 255,128,227,128,221,128,190,128,190,128,190,128,221,128,227,128, + 255,128,255,128,255,128,255,128,9,8,16,9,0,4,255,128, + 255,128,255,128,255,128,227,128,221,128,190,128,190,128,9,8, + 16,9,0,253,190,128,190,128,221,128,227,128,255,128,255,128, + 255,128,255,128,4,4,4,9,1,4,48,64,128,128,4,4, + 4,9,4,4,192,32,16,16,4,4,4,9,4,1,16,16, + 32,192,4,4,4,9,1,1,128,128,64,48,7,4,4,9, + 1,4,56,68,130,130,7,4,4,9,1,1,130,130,68,56, + 7,7,7,9,1,1,2,6,14,30,62,126,254,7,7,7, + 9,1,1,128,192,224,240,248,252,254,7,7,7,9,1,1, + 254,252,248,240,224,192,128,7,7,7,9,1,1,254,126,62, + 30,14,6,2,5,5,5,9,2,2,112,136,136,136,112,7, + 7,7,9,1,1,254,242,242,242,242,242,254,7,7,7,9, + 1,1,254,158,158,158,158,158,254,7,7,7,9,1,1,254, + 254,250,242,226,194,254,7,7,7,9,1,1,254,134,142,158, + 190,254,254,7,7,7,9,1,1,254,146,146,146,146,146,254, + 9,10,20,9,0,0,8,0,8,0,20,0,20,0,34,0, + 42,0,93,0,73,0,128,128,255,128,9,10,20,9,0,0, + 8,0,8,0,28,0,28,0,58,0,58,0,121,0,121,0, + 248,128,255,128,9,10,20,9,0,0,8,0,8,0,28,0, + 28,0,46,0,46,0,79,0,79,0,143,128,255,128,9,9, + 18,9,0,0,62,0,65,0,128,128,128,128,128,128,128,128, + 128,128,65,0,62,0,7,7,7,9,1,1,254,146,146,242, + 130,130,254,7,7,7,9,1,1,254,130,130,242,146,146,254, + 7,7,7,9,1,1,254,130,130,158,146,146,254,7,7,7, + 9,1,1,254,146,146,158,130,130,254,7,7,7,9,1,1, + 124,146,146,242,130,130,124,7,7,7,9,1,1,124,130,130, + 242,146,146,124,7,7,7,9,1,1,124,130,130,158,146,146, + 124,7,7,7,9,1,1,124,146,146,158,130,130,124,6,6, + 6,9,1,1,252,136,144,160,192,128,6,6,6,9,1,1, + 252,68,36,20,12,4,6,6,6,9,1,1,128,192,160,144, + 136,252,6,6,6,9,1,1,252,132,132,132,132,252,6,6, + 6,9,1,1,252,252,252,252,252,252,5,5,5,9,2,1, + 248,136,136,136,248,5,5,5,9,2,1,248,248,248,248,248, + 6,6,6,9,1,1,4,12,20,36,68,252}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 5 + Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15_75r[792] U8G_SECTION(".progmem.u8g_font_9x15_75r") = { + 0,9,15,0,253,9,2,33,0,0,32,79,0,10,0,9, + 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, + 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, + 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, + 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, + 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, + 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, + 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, + 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, + 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, + 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, + 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, + 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, + 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, + 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, + 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, + 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, + 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, + 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, + 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, + 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, + 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, + 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, + 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, + 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, + 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, + 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, + 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, + 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, + 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, + 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, + 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, + 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, + 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, + 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, + 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, + 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, + 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, + 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, + 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, + 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, + 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, + 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, + 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, + 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, + 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, + 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, + 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, + 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, + 1,56,124,254,254,254,124,56}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w= 9 h=13 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=26 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[3795] U8G_SECTION(".progmem.u8g_font_9x15_78_79") = { + 0,9,15,0,253,9,2,231,4,175,32,255,0,12,254,11, + 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, + 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, + 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, + 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, + 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, + 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, + 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, + 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, + 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, + 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, + 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, + 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, + 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, + 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, + 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, + 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, + 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, + 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, + 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, + 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, + 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, + 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, + 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, + 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, + 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, + 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, + 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, + 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, + 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, + 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, + 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, + 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, + 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, + 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, + 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, + 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, + 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, + 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, + 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, + 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, + 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, + 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, + 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, + 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, + 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, + 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, + 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, + 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, + 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, + 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, + 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, + 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, + 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, + 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, + 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, + 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, + 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, + 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, + 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, + 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, + 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, + 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, + 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, + 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, + 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, + 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, + 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, + 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, + 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, + 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, + 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, + 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, + 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, + 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, + 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, + 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, + 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, + 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, + 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, + 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, + 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, + 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, + 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, + 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, + 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, + 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, + 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, + 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, + 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, + 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, + 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, + 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, + 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, + 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, + 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, + 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, + 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, + 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, + 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, + 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, + 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, + 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, + 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, + 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, + 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, + 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, + 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, + 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, + 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, + 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, + 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, + 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, + 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, + 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, + 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, + 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, + 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, + 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, + 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, + 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, + 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, + 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, + 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, + 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, + 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, + 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, + 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, + 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, + 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, + 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, + 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, + 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, + 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, + 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, + 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, + 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, + 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, + 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, + 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, + 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, + 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, + 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, + 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, + 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, + 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, + 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, + 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, + 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, + 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, + 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, + 10,0,20,0,255,7,7,7,9,1,0,130,132,136,144,160, + 192,254,9,10,20,9,0,0,8,0,8,0,20,0,20,0, + 42,0,42,0,85,0,93,0,128,128,255,128,7,10,10,9, + 1,0,16,16,16,16,16,16,16,16,16,254,7,7,7,9, + 1,1,62,64,132,138,132,64,62,7,7,7,9,1,1,248, + 4,66,162,66,4,248,5,12,12,9,2,255,112,136,136,16, + 16,32,32,64,64,128,128,112,5,12,12,9,2,255,112,136, + 136,64,64,32,32,16,16,8,8,112,7,8,8,9,1,0, + 130,146,84,68,40,40,16,16,8,10,10,9,0,255,128,143, + 144,80,80,80,80,47,32,32,8,10,10,9,0,255,1,241, + 9,10,10,10,10,244,4,4,3,10,10,9,3,0,64,64, + 64,64,224,64,64,64,64,64,255,255,255,255,255,9,9,18, + 9,0,0,8,0,20,0,34,0,65,0,136,128,65,0,34, + 0,20,0,8,0,7,8,8,9,1,0,16,16,40,40,68, + 84,146,130,7,7,7,9,1,1,146,146,146,146,146,84,56, + 7,7,7,9,1,1,2,2,2,18,2,2,254,7,7,7, + 9,1,1,254,128,128,144,128,128,128,8,11,11,9,0,255, + 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, + 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, + 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, + 85,0,99,0,99,0,193,128,9,13,26,9,0,254,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,255,128,9,13,26,9,0,254,255,128, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,7,7,7,9,1,1,40,40, + 238,40,238,40,40,7,7,7,9,1,1,40,40,40,238,40, + 40,40,7,3,3,9,1,3,64,190,64,9,5,10,9,0, + 2,128,0,128,0,255,128,128,0,128,0,9,5,10,9,0, + 2,0,128,0,128,255,128,0,128,0,128,5,10,10,9,2, + 0,32,80,32,32,32,32,32,32,32,248,5,9,9,9,2, + 0,32,32,80,80,248,80,80,32,32,7,9,9,9,1,0, + 16,16,16,40,198,40,16,16,16,8,9,9,9,0,0,8, + 8,8,20,227,20,8,8,8,8,9,9,9,1,0,16,16, + 16,40,199,40,16,16,16,8,7,7,9,0,1,127,65,65, + 193,65,65,127,8,7,7,9,1,1,254,130,130,131,130,130, + 254,5,12,12,9,2,255,248,160,160,160,160,160,160,160,160, + 160,160,248,5,12,12,9,2,255,248,40,40,40,40,40,40, + 40,40,40,40,248,3,10,10,9,3,0,32,32,64,64,128, + 128,64,64,32,32,3,10,10,9,3,0,128,128,64,64,32, + 32,64,64,128,128,6,10,10,9,1,0,36,36,72,72,144, + 144,72,72,36,36,6,10,10,9,2,0,144,144,72,72,36, + 36,72,72,144,144,255,255,255,255,9,11,22,9,0,0,8, + 0,20,0,54,0,85,0,213,128,85,0,85,0,85,0,85, + 0,85,0,85,0,9,11,22,9,0,255,85,0,85,0,85, + 0,85,0,85,0,85,0,213,128,85,0,54,0,20,0,8, + 0,8,8,8,9,0,0,28,34,169,113,33,1,34,28,8, + 8,8,9,0,0,56,68,149,142,132,128,68,56,9,5,10, + 9,0,2,114,0,169,0,255,128,169,0,114,0,9,5,10, + 9,0,2,32,0,64,0,255,128,64,0,32,0,9,5,10, + 9,0,2,2,0,1,0,255,128,1,0,2,0,9,5,10, + 9,0,2,34,0,65,0,255,128,65,0,34,0,9,7,14, + 9,0,1,16,0,32,0,127,128,128,0,127,128,32,0,16, + 0,9,7,14,9,0,1,4,0,2,0,255,0,0,128,255, + 0,2,0,4,0,9,7,14,9,0,1,20,0,34,0,127, + 0,128,128,127,0,34,0,20,0,9,5,10,9,0,2,32, + 128,64,128,255,128,64,128,32,128,9,5,10,9,0,2,130, + 0,129,0,255,128,129,0,130,0,9,7,14,9,0,1,16, + 128,32,128,127,128,128,128,127,128,32,128,16,128,9,7,14, + 9,0,1,132,0,130,0,255,0,128,128,255,0,130,0,132, + 0,9,6,12,9,0,1,2,0,1,0,85,128,170,128,1, + 0,2,0}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 9 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=20 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15B[2990] U8G_SECTION(".progmem.u8g_font_9x15B") = { + 0,9,15,0,253,10,1,232,3,214,32,255,253,12,253,11, + 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, + 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, + 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, + 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, + 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, + 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, + 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, + 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, + 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, + 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, + 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, + 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, + 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, + 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, + 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, + 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, + 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, + 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, + 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, + 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, + 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, + 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, + 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, + 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, + 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, + 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, + 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, + 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, + 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, + 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, + 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, + 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, + 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, + 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, + 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, + 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, + 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, + 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, + 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, + 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, + 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, + 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, + 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, + 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, + 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, + 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, + 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, + 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, + 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, + 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, + 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, + 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, + 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, + 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, + 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, + 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, + 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, + 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, + 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, + 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, + 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, + 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, + 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, + 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, + 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, + 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, + 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, + 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, + 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, + 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, + 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, + 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, + 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, + 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, + 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, + 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, + 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, + 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, + 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, + 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, + 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, + 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, + 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, + 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, + 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, + 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, + 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, + 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, + 0,0,9,0,12,2,10,10,9,4,0,192,0,192,192,192, + 192,192,192,192,192,7,8,8,9,1,0,4,124,206,208,208, + 230,124,64,8,10,10,9,0,255,30,51,48,48,124,48,48, + 248,191,224,7,7,7,9,1,2,198,254,108,68,108,254,198, + 8,10,10,9,0,0,195,195,102,60,126,24,126,24,24,24, + 2,11,11,9,4,255,192,192,192,192,192,0,0,192,192,192, + 192,6,11,11,9,1,255,120,204,192,120,204,204,204,120,12, + 204,120,6,2,2,9,1,9,204,204,8,11,11,9,0,0, + 60,126,195,189,165,161,165,189,195,126,60,5,7,7,9,1, + 3,240,24,248,152,248,0,248,8,8,8,9,0,1,27,54, + 108,216,216,108,54,27,7,5,5,9,1,2,254,254,6,6, + 6,6,1,1,9,1,4,252,8,11,11,9,0,0,60,126, + 195,189,165,189,169,173,195,126,60,6,2,2,9,1,9,252, + 252,6,4,4,9,2,6,120,204,204,120,8,10,10,9,0, + 0,24,24,24,255,255,24,24,24,255,255,5,7,7,9,1, + 4,112,152,24,48,96,192,248,5,7,7,9,1,4,112,152, + 24,48,24,152,112,4,3,3,9,2,8,48,96,192,7,10, + 10,9,1,253,198,198,198,198,198,238,250,192,192,192,7,10, + 10,9,1,0,126,254,246,246,246,118,54,54,54,54,3,3, + 3,9,3,3,64,224,64,5,3,3,9,2,253,24,216,112, + 4,7,7,9,1,4,96,224,96,96,96,96,240,5,6,6, + 9,1,4,112,216,216,112,0,248,8,8,8,9,0,1,216, + 108,54,27,27,54,108,216,8,11,11,9,0,0,96,224,96, + 96,97,99,247,15,27,31,3,8,11,11,9,0,0,96,224, + 96,96,110,115,243,6,12,24,31,8,11,11,9,0,0,112, + 152,24,48,25,155,119,15,27,31,3,7,10,10,9,1,0, + 24,24,0,24,48,96,192,198,198,124,8,12,12,9,0,0, + 96,48,24,0,60,102,195,195,255,195,195,195,8,12,12,9, + 0,0,6,12,24,0,60,102,195,195,255,195,195,195,8,12, + 12,9,0,0,24,60,102,0,60,102,195,195,255,195,195,195, + 8,12,12,9,0,0,50,126,76,0,60,102,195,195,255,195, + 195,195,8,11,11,9,0,0,102,102,0,60,102,195,195,255, + 195,195,195,8,12,12,9,0,0,24,36,36,24,60,102,195, + 195,255,195,195,195,8,10,10,9,0,0,31,60,108,108,204, + 255,204,204,204,207,8,13,13,9,0,253,62,99,193,192,192, + 192,192,193,99,62,12,108,56,7,12,12,9,1,0,96,48, + 24,0,254,192,192,252,192,192,192,254,7,12,12,9,1,0, + 12,24,48,0,254,192,192,252,192,192,192,254,7,12,12,9, + 1,0,24,60,102,0,254,192,192,252,192,192,192,254,7,11, + 11,9,1,0,102,102,0,254,192,192,252,192,192,192,254,6, + 12,12,9,1,0,192,96,48,0,252,48,48,48,48,48,48, + 252,6,12,12,9,1,0,24,48,96,0,252,48,48,48,48, + 48,48,252,6,12,12,9,1,0,48,120,204,0,252,48,48, + 48,48,48,48,252,6,11,11,9,1,0,204,204,0,252,48, + 48,48,48,48,48,252,9,10,20,9,0,0,126,0,99,0, + 97,128,97,128,249,128,249,128,97,128,97,128,99,0,126,0, + 8,12,12,9,0,0,50,126,76,0,195,227,243,251,223,207, + 199,195,8,12,12,9,0,0,96,48,24,0,60,102,195,195, + 195,195,102,60,8,12,12,9,0,0,6,12,24,0,60,102, + 195,195,195,195,102,60,8,12,12,9,0,0,24,60,102,0, + 60,102,195,195,195,195,102,60,8,12,12,9,0,0,50,126, + 76,0,60,102,195,195,195,195,102,60,8,11,11,9,0,0, + 102,102,0,60,102,195,195,195,195,102,60,7,8,8,9,1, + 0,130,198,108,56,56,108,198,130,8,12,12,9,0,255,1, + 63,102,199,203,203,211,211,227,102,252,128,8,12,12,9,0, + 0,96,48,24,0,195,195,195,195,195,195,102,60,8,12,12, + 9,0,0,6,12,24,0,195,195,195,195,195,195,102,60,8, + 12,12,9,0,0,24,60,102,0,195,195,195,195,195,195,102, + 60,8,11,11,9,0,0,102,102,0,195,195,195,195,195,195, + 102,60,8,12,12,9,0,0,6,12,24,0,195,102,60,24, + 24,24,24,24,7,10,10,9,1,0,240,96,124,102,102,102, + 124,96,96,240,7,10,10,9,1,0,60,102,198,204,216,204, + 198,198,198,220,8,11,11,9,0,0,96,48,24,0,62,67, + 3,127,195,199,123,8,11,11,9,0,0,12,24,48,0,62, + 67,3,127,195,199,123,8,11,11,9,0,0,24,60,102,0, + 62,67,3,127,195,199,123,8,11,11,9,0,0,50,126,76, + 0,62,67,3,127,195,199,123,8,10,10,9,0,0,102,102, + 0,62,67,3,127,195,199,123,8,11,11,9,0,0,24,36, + 36,24,62,67,3,127,195,199,123,8,7,7,9,0,0,118, + 155,27,126,216,217,110,8,10,10,9,0,253,62,99,192,192, + 192,99,62,12,108,56,8,11,11,9,0,0,96,48,24,0, + 60,102,195,255,192,99,62,8,11,11,9,0,0,12,24,48, + 0,60,102,195,255,192,99,62,8,11,11,9,0,0,24,60, + 102,0,60,102,195,255,192,99,62,8,10,10,9,0,0,102, + 102,0,60,102,195,255,192,99,62,6,11,11,9,1,0,192, + 96,48,0,112,48,48,48,48,48,252,6,11,11,9,1,0, + 24,48,96,0,112,48,48,48,48,48,252,6,11,11,9,1, + 0,48,120,204,0,112,48,48,48,48,48,252,6,10,10,9, + 1,0,204,204,0,112,48,48,48,48,48,252,8,12,12,9, + 0,0,136,216,112,112,216,140,62,103,195,195,102,60,8,11, + 11,9,0,0,50,126,76,0,220,230,195,195,195,195,195,8, + 11,11,9,0,0,96,48,24,0,60,102,195,195,195,102,60, + 8,11,11,9,0,0,12,24,48,0,60,102,195,195,195,102, + 60,8,11,11,9,0,0,24,60,102,0,60,102,195,195,195, + 102,60,8,11,11,9,0,0,50,126,76,0,60,102,195,195, + 195,102,60,8,10,10,9,0,0,102,102,0,60,102,195,195, + 195,102,60,8,10,10,9,0,0,24,24,0,0,255,255,0, + 0,24,24,8,9,9,9,0,255,1,63,102,207,219,243,102, + 252,128,8,11,11,9,0,0,96,48,24,0,195,195,195,195, + 195,103,59,8,11,11,9,0,0,12,24,48,0,195,195,195, + 195,195,103,59,8,11,11,9,0,0,24,60,102,0,195,195, + 195,195,195,103,59,8,10,10,9,0,0,102,102,0,195,195, + 195,195,195,103,59,8,14,14,9,0,253,12,24,48,0,195, + 195,195,195,195,103,59,3,198,124,7,12,12,9,1,253,224, + 96,96,124,102,102,102,102,124,96,96,224,8,13,13,9,0, + 253,102,102,0,195,195,195,195,195,103,59,3,198,124}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 8 h=13 x= 3 y=12 dx= 9 dy= 0 ascent=12 len=13 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15Br[1423] U8G_SECTION(".progmem.u8g_font_9x15Br") = { + 0,9,15,0,253,10,1,232,3,214,32,127,253,12,253,11, + 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, + 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, + 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, + 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, + 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, + 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, + 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, + 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, + 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, + 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, + 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, + 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, + 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, + 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, + 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, + 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, + 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, + 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, + 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, + 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, + 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, + 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, + 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, + 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, + 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, + 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, + 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, + 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, + 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, + 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, + 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, + 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, + 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, + 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, + 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, + 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, + 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, + 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, + 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, + 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, + 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, + 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, + 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, + 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, + 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, + 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, + 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, + 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, + 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, + 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, + 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, + 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, + 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, + 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, + 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, + 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, + 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, + 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, + 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, + 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, + 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, + 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, + 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, + 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, + 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, + 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, + 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, + 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, + 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, + 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, + 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, + 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, + 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, + 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, + 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, + 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, + 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, + 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, + 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, + 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, + 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, + 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, + 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, + 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, + 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, + 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, + 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, + 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 8 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=14 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15[2959] U8G_SECTION(".progmem.u8g_font_9x15") = { + 0,9,15,0,253,10,1,232,3,216,32,255,253,12,253,11, + 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, + 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, + 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, + 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, + 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, + 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, + 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, + 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, + 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, + 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, + 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, + 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, + 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, + 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, + 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, + 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, + 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, + 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, + 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, + 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, + 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, + 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, + 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, + 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, + 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, + 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, + 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, + 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, + 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, + 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, + 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, + 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, + 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, + 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, + 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, + 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, + 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, + 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, + 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, + 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, + 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, + 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, + 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, + 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, + 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, + 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, + 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, + 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, + 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, + 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, + 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, + 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, + 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, + 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, + 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, + 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, + 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, + 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, + 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, + 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, + 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, + 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, + 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, + 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, + 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, + 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, + 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, + 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, + 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, + 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, + 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, + 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, + 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, + 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, + 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, + 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, + 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, + 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, + 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, + 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, + 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, + 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, + 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, + 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, + 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, + 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, + 146,140,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,9,0,12,1,11,11,9,4,0,128, + 128,0,0,128,128,128,128,128,128,128,6,8,8,9,1,0, + 8,120,148,144,160,164,120,64,7,10,10,9,1,0,28,34, + 32,32,248,32,32,96,162,92,7,6,6,9,1,3,130,124, + 68,68,124,130,7,10,10,9,1,0,130,130,68,40,124,16, + 124,16,16,16,1,11,11,9,4,255,128,128,128,128,128,0, + 128,128,128,128,128,4,11,11,9,2,255,96,144,128,96,144, + 144,144,96,16,144,96,5,2,2,9,2,9,136,136,8,9, + 9,9,0,1,60,66,153,165,161,165,153,66,60,5,7,7, + 9,1,3,96,144,112,144,120,0,248,7,8,8,9,1,1, + 18,36,72,144,144,72,36,18,6,4,4,9,1,2,252,4, + 4,4,5,1,1,9,2,4,248,8,9,9,9,0,1,60, + 66,185,165,185,169,165,66,60,6,1,1,9,1,9,252,4, + 4,4,9,3,6,96,144,144,96,7,9,9,9,1,1,16, + 16,16,254,16,16,16,0,254,4,6,6,9,1,4,96,144, + 16,96,128,240,4,6,6,9,1,4,96,144,32,16,144,96, + 3,3,3,9,3,8,32,64,128,7,9,9,9,1,254,130, + 130,130,130,130,198,186,128,128,7,10,10,9,1,0,126,138, + 138,138,122,10,10,10,10,10,2,2,2,9,4,4,192,192, + 4,3,3,9,2,253,48,144,96,3,6,6,9,1,4,64, + 192,64,64,64,224,5,6,6,9,1,4,112,136,136,112,0, + 248,7,8,8,9,1,1,144,72,36,18,18,36,72,144,7, + 10,10,9,1,0,64,192,64,64,66,230,10,18,26,6,7, + 10,10,9,1,0,64,192,64,64,76,242,2,12,16,30,7, + 10,10,9,1,0,96,144,32,16,146,102,10,18,26,6,7, + 10,10,9,1,0,16,0,16,16,32,64,128,130,130,124,7, + 12,12,9,1,0,64,32,16,0,56,68,130,130,254,130,130, + 130,7,12,12,9,1,0,4,8,16,0,56,68,130,130,254, + 130,130,130,7,12,12,9,1,0,16,40,68,0,56,68,130, + 130,254,130,130,130,7,11,11,9,1,0,98,156,0,56,68, + 130,130,254,130,130,130,7,11,11,9,1,0,68,68,0,56, + 68,130,130,254,130,130,130,7,11,11,9,1,0,56,68,56, + 40,68,130,130,254,130,130,130,7,10,10,9,1,0,110,144, + 144,144,144,252,144,144,144,158,7,13,13,9,1,253,124,130, + 128,128,128,128,128,128,130,124,24,72,48,7,12,12,9,1, + 0,64,32,16,0,254,64,64,120,64,64,64,254,7,12,12, + 9,1,0,4,8,16,0,254,64,64,120,64,64,64,254,7, + 12,12,9,1,0,16,40,68,0,254,64,64,120,64,64,64, + 254,7,11,11,9,1,0,68,68,0,254,64,64,120,64,64, + 64,254,5,12,12,9,2,0,128,64,32,0,248,32,32,32, + 32,32,32,248,5,12,12,9,2,0,8,16,32,0,248,32, + 32,32,32,32,32,248,5,12,12,9,2,0,32,80,136,0, + 248,32,32,32,32,32,32,248,5,11,11,9,2,0,136,136, + 0,248,32,32,32,32,32,32,248,8,10,10,9,0,0,124, + 66,65,65,225,65,65,65,66,124,7,11,11,9,1,0,98, + 156,0,130,194,162,146,146,138,134,130,7,12,12,9,1,0, + 64,32,16,0,124,130,130,130,130,130,130,124,7,12,12,9, + 1,0,4,8,16,0,124,130,130,130,130,130,130,124,7,12, + 12,9,1,0,16,40,68,0,124,130,130,130,130,130,130,124, + 7,11,11,9,1,0,98,156,0,124,130,130,130,130,130,130, + 124,7,11,11,9,1,0,68,68,0,124,130,130,130,130,130, + 130,124,7,7,7,9,1,1,130,68,40,16,40,68,130,7, + 12,12,9,1,255,2,124,134,138,138,146,146,162,162,194,124, + 128,7,12,12,9,1,0,64,32,16,0,130,130,130,130,130, + 130,130,124,7,12,12,9,1,0,4,8,16,0,130,130,130, + 130,130,130,130,124,7,12,12,9,1,0,16,40,68,0,130, + 130,130,130,130,130,130,124,7,11,11,9,1,0,68,68,0, + 130,130,130,130,130,130,130,124,7,12,12,9,1,0,4,8, + 16,0,130,130,68,40,16,16,16,16,7,10,10,9,1,0, + 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, + 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, + 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, + 0,4,8,16,0,124,2,2,126,130,134,122,7,11,11,9, + 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, + 9,1,0,50,76,0,124,2,2,126,130,134,122,7,10,10, + 9,1,0,68,68,0,124,2,2,126,130,134,122,7,11,11, + 9,1,0,24,36,24,0,124,2,2,126,130,134,122,7,7, + 7,9,1,0,108,146,18,124,144,146,110,7,10,10,9,1, + 253,124,130,128,128,128,130,124,24,72,48,7,11,11,9,1, + 0,64,32,16,0,124,130,130,254,128,128,124,7,11,11,9, + 1,0,4,8,16,0,124,130,130,254,128,128,124,7,11,11, + 9,1,0,16,40,68,0,124,130,130,254,128,128,124,7,10, + 10,9,1,0,68,68,0,124,130,130,254,128,128,124,5,11, + 11,9,2,0,128,64,32,0,224,32,32,32,32,32,248,5, + 11,11,9,2,0,16,32,64,0,224,32,32,32,32,32,248, + 6,11,11,9,1,0,32,80,136,0,112,16,16,16,16,16, + 124,5,10,10,9,2,0,144,144,0,224,32,32,32,32,32, + 248,7,11,11,9,1,0,72,48,80,8,124,130,130,130,130, + 130,124,7,10,10,9,1,0,98,156,0,188,194,130,130,130, + 130,130,7,11,11,9,1,0,64,32,16,0,124,130,130,130, + 130,130,124,7,11,11,9,1,0,4,8,16,0,124,130,130, + 130,130,130,124,7,11,11,9,1,0,16,40,68,0,124,130, + 130,130,130,130,124,7,10,10,9,1,0,98,156,0,124,130, + 130,130,130,130,124,7,10,10,9,1,0,68,68,0,124,130, + 130,130,130,130,124,7,9,9,9,1,0,16,56,16,0,254, + 0,16,56,16,7,9,9,9,1,255,2,124,138,138,146,162, + 162,124,128,7,11,11,9,1,0,64,32,16,0,132,132,132, + 132,132,132,122,7,11,11,9,1,0,4,8,16,0,132,132, + 132,132,132,132,122,7,11,11,9,1,0,16,40,68,0,132, + 132,132,132,132,132,122,7,10,10,9,1,0,72,72,0,132, + 132,132,132,132,132,122,6,14,14,9,1,253,8,16,32,0, + 132,132,132,132,132,140,116,4,132,120,7,12,12,9,1,253, + 128,128,128,188,194,130,130,194,188,128,128,128,6,13,13,9, + 1,253,72,72,0,132,132,132,132,132,140,116,4,132,120}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 8 h=13 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=13 + Font Bounding box w= 9 h=15 x= 0 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x15r[1427] U8G_SECTION(".progmem.u8g_font_9x15r") = { + 0,9,15,0,253,10,1,232,3,216,32,127,253,12,253,11, + 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, + 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, + 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, + 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, + 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, + 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, + 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, + 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, + 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, + 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, + 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, + 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, + 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, + 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, + 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, + 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, + 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, + 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, + 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, + 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, + 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, + 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, + 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, + 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, + 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, + 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, + 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, + 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, + 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, + 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, + 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, + 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, + 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, + 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, + 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, + 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, + 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, + 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, + 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, + 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, + 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, + 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, + 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, + 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, + 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, + 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, + 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, + 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, + 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, + 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, + 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, + 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, + 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, + 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, + 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, + 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, + 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, + 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, + 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, + 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, + 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, + 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, + 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, + 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, + 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, + 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, + 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, + 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, + 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, + 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, + 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, + 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, + 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, + 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, + 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, + 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, + 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, + 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, + 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, + 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, + 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, + 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, + 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, + 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, + 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, + 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, + 146,140,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 4, '1' Height: 10 + Calculated Max Values w= 9 h=18 x= 8 y=12 dx= 9 dy= 0 ascent=14 len=36 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent = 4 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[3936] U8G_SECTION(".progmem.u8g_font_9x18_67_75") = { + 0,9,18,0,252,4,1,255,4,34,32,255,0,14,252,10, + 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, + 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, + 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, + 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, + 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, + 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, + 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, + 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, + 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, + 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, + 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, + 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, + 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, + 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, + 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, + 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, + 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, + 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, + 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, + 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, + 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, + 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, + 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, + 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, + 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, + 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, + 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, + 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, + 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, + 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, + 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, + 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, + 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, + 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, + 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, + 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, + 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, + 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, + 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, + 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, + 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, + 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, + 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, + 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, + 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, + 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, + 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, + 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, + 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, + 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, + 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, + 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, + 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, + 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, + 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, + 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, + 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, + 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, + 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, + 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, + 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, + 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, + 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, + 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, + 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, + 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, + 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, + 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, + 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, + 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, + 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, + 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, + 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, + 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, + 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, + 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, + 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, + 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, + 124,7,10,10,9,1,0,16,40,68,238,68,238,40,40,40, + 56,7,11,11,9,1,255,16,40,68,238,68,238,40,40,108, + 68,124,9,7,14,9,0,1,132,0,134,0,253,0,128,128, + 253,0,134,0,132,0,7,7,7,9,1,0,252,128,184,176, + 168,132,2,7,7,7,9,1,0,128,66,42,26,58,2,126, + 7,11,11,9,1,255,16,40,68,238,40,40,40,238,68,40, + 16,9,7,14,9,0,1,4,0,50,0,73,0,255,128,73, + 0,50,0,4,0,9,10,20,9,0,0,34,0,39,0,42, + 128,34,0,34,0,34,0,34,0,170,0,114,0,34,0,7, + 13,13,9,1,254,8,4,254,4,8,4,254,4,8,4,254, + 4,8,8,5,5,9,0,2,36,68,255,68,36,8,5,5, + 9,0,2,36,34,255,34,36,9,5,10,9,0,2,42,0, + 73,0,255,128,73,0,42,0,8,5,5,9,0,2,42,74, + 255,74,42,8,5,5,9,0,2,84,82,255,82,84,9,5, + 10,9,0,2,85,0,148,128,255,128,148,128,85,0,7,7, + 7,9,1,1,16,48,80,158,80,48,16,7,7,7,9,1, + 1,16,24,20,242,20,24,16,8,5,5,9,0,2,36,102, + 189,102,36,9,9,18,9,0,5,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,9,2,4,9,0, + 252,255,128,255,128,9,4,8,9,0,252,255,128,255,128,255, + 128,255,128,9,7,14,9,0,252,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,9,9,18,9,0,252,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,9, + 11,22,9,0,252,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,9,14,28,9,0, + 252,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,9,16,32, + 9,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,9,18,36,9,0,252,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,255,128,255,128,255,128,255,128,255,128,8,18,18, + 9,0,252,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,7,18,18,9,0,252,254,254,254,254,254, + 254,254,254,254,254,254,254,254,254,254,254,254,254,6,18,18, + 9,0,252,252,252,252,252,252,252,252,252,252,252,252,252,252, + 252,252,252,252,252,5,18,18,9,0,252,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,3,18,18, + 9,0,252,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,2,18,18,9,0,252,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,1,18,18, + 9,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,4,18,18,9,5,252,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,9,17,34, + 9,0,253,85,0,0,0,170,128,0,0,85,0,0,0,170, + 128,0,0,85,0,0,0,170,128,0,0,85,0,0,0,170, + 128,0,0,85,0,9,18,36,9,0,252,170,128,85,0,170, + 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,170, + 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,9, + 18,36,9,0,252,255,128,170,128,255,128,85,0,255,128,170, + 128,255,128,85,0,255,128,170,128,255,128,85,0,255,128,170, + 128,255,128,85,0,255,128,170,128,9,2,4,9,0,12,255, + 128,255,128,1,18,18,9,8,252,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,5,9,9,9,0, + 252,248,248,248,248,248,248,248,248,248,4,9,9,9,5,252, + 240,240,240,240,240,240,240,240,240,5,9,9,9,0,5,248, + 248,248,248,248,248,248,248,248,9,18,36,9,0,252,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 255,128,9,18,36,9,0,252,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,9,18,36,9, + 0,252,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 255,128,255,128,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,9,18,36,9,0,252,255,128,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 4,9,9,9,5,5,240,240,240,240,240,240,240,240,240,9, + 18,36,9,0,252,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,9,18,36,9,0,252,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, + 128,255,128,7,7,7,9,1,1,254,254,254,254,254,254,254, + 7,7,7,9,1,1,254,130,130,130,130,130,254,7,7,7, + 9,1,1,124,130,130,130,130,130,124,7,7,7,9,1,1, + 254,130,186,186,186,130,254,7,7,7,9,1,1,254,130,254, + 130,254,130,254,7,7,7,9,1,1,254,170,170,170,170,170, + 254,7,7,7,9,1,1,254,170,254,170,254,170,254,7,7, + 7,9,1,1,254,146,138,198,162,146,254,7,7,7,9,1, + 1,254,146,162,198,138,146,254,7,7,7,9,1,1,254,214, + 138,214,162,214,254,3,3,3,9,3,3,224,224,224,3,3, + 3,9,3,3,224,160,224,9,5,10,9,0,2,255,128,255, + 128,255,128,255,128,255,128,9,5,10,9,0,2,255,128,128, + 128,128,128,128,128,255,128,5,9,9,9,2,0,248,248,248, + 248,248,248,248,248,248,5,9,9,9,2,0,248,136,136,136, + 136,136,136,136,248,9,5,10,9,0,2,127,128,127,128,255, + 128,255,0,255,0,9,5,10,9,0,2,127,128,64,128,128, + 128,129,0,255,0,9,10,20,9,0,0,8,0,8,0,28, + 0,28,0,62,0,62,0,127,0,127,0,255,128,255,128,9, + 10,20,9,0,0,8,0,8,0,20,0,20,0,34,0,34, + 0,65,0,65,0,128,128,255,128,7,7,7,9,1,1,16, + 16,56,56,124,124,254,7,7,7,9,1,1,16,16,40,40, + 68,68,254,9,9,18,9,0,0,192,0,240,0,252,0,255, + 0,255,128,255,0,252,0,240,0,192,0,9,9,18,9,0, + 0,192,0,176,0,140,0,131,0,128,128,131,0,140,0,176, + 0,192,0,7,7,7,9,1,1,128,224,248,254,248,224,128, + 7,7,7,9,1,1,128,224,152,134,152,224,128,9,5,10, + 9,0,2,224,0,252,0,255,128,252,0,224,0,9,5,10, + 9,0,2,224,0,156,0,131,128,156,0,224,0,9,10,20, + 9,0,0,255,128,255,128,127,0,127,0,62,0,62,0,28, + 0,28,0,8,0,8,0,9,10,20,9,0,0,255,128,128, + 128,65,0,65,0,34,0,34,0,20,0,20,0,8,0,8, + 0,7,7,7,9,1,1,254,124,124,56,56,16,16,7,7, + 7,9,1,1,254,68,68,40,40,16,16,9,9,18,9,0, + 0,1,128,7,128,31,128,127,128,255,128,127,128,31,128,7, + 128,1,128,9,9,18,9,0,0,1,128,6,128,24,128,96, + 128,128,128,96,128,24,128,6,128,1,128,7,7,7,9,1, + 1,2,14,62,254,62,14,2,7,7,7,9,1,1,2,14, + 50,194,50,14,2,9,5,10,9,0,2,3,128,31,128,255, + 128,31,128,3,128,9,5,10,9,0,2,3,128,28,128,224, + 128,28,128,3,128,9,9,18,9,0,0,8,0,28,0,62, + 0,127,0,255,128,127,0,62,0,28,0,8,0,9,9,18, + 9,0,0,8,0,20,0,34,0,65,0,128,128,65,0,34, + 0,20,0,8,0,9,9,18,9,0,0,8,0,20,0,34, + 0,73,0,156,128,73,0,34,0,20,0,8,0,7,7,7, + 9,1,1,56,68,146,186,146,68,56,5,9,9,9,2,0, + 32,32,80,80,136,80,80,32,32,7,7,7,9,1,1,56, + 68,130,130,130,68,56,7,7,7,9,1,1,16,68,0,130, + 0,68,16,7,7,7,9,1,1,56,108,170,170,170,108,56, + 7,7,7,9,1,1,56,68,146,170,146,68,56,7,7,7, + 9,1,1,56,124,254,254,254,124,56,7,7,7,9,1,1, + 56,116,242,242,242,116,56,7,7,7,9,1,1,56,92,158, + 158,158,92,56,7,7,7,9,1,1,56,68,130,254,254,124, + 56,7,7,7,9,1,1,56,124,254,254,130,68,56,7,7, + 7,9,1,1,56,92,158,158,130,68,56,7,7,7,9,1, + 1,56,92,158,254,254,124,56,4,7,7,9,1,1,48,112, + 240,240,240,112,48,4,7,7,9,4,1,192,224,240,240,240, + 224,192,9,18,36,9,0,252,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,227,128,193,128,193,128,193,128,227,128, + 255,128,255,128,255,128,255,128,255,128,255,128,9,18,36,9, + 0,252,255,128,255,128,255,128,255,128,255,128,255,128,227,128, + 221,128,190,128,190,128,190,128,221,128,227,128,255,128,255,128, + 255,128,255,128,255,128,9,10,20,9,0,4,255,128,255,128, + 255,128,255,128,255,128,255,128,227,128,221,128,190,128,190,128, + 9,9,18,9,0,252,190,128,190,128,221,128,227,128,255,128, + 255,128,255,128,255,128,255,128,4,4,4,9,1,4,48,64, + 128,128,4,4,4,9,4,4,192,32,16,16,4,4,4,9, + 4,1,16,16,32,192,4,4,4,9,1,1,128,128,64,48, + 7,4,4,9,1,4,56,68,130,130,7,4,4,9,1,1, + 130,130,68,56,7,7,7,9,1,1,2,6,14,30,62,126, + 254,7,7,7,9,1,1,128,192,224,240,248,252,254,7,7, + 7,9,1,1,254,252,248,240,224,192,128,7,7,7,9,1, + 1,254,126,62,30,14,6,2,5,5,5,9,2,2,112,136, + 136,136,112,7,7,7,9,1,1,254,242,242,242,242,242,254, + 7,7,7,9,1,1,254,158,158,158,158,158,254,7,7,7, + 9,1,1,254,254,250,242,226,194,254,7,7,7,9,1,1, + 254,134,142,158,190,254,254,7,7,7,9,1,1,254,146,146, + 146,146,146,254,9,10,20,9,0,0,8,0,8,0,20,0, + 20,0,34,0,42,0,93,0,73,0,128,128,255,128,9,10, + 20,9,0,0,8,0,8,0,28,0,28,0,58,0,58,0, + 121,0,121,0,248,128,255,128,9,10,20,9,0,0,8,0, + 8,0,28,0,28,0,46,0,46,0,79,0,79,0,143,128, + 255,128,9,9,18,9,0,0,62,0,65,0,128,128,128,128, + 128,128,128,128,128,128,65,0,62,0,7,7,7,9,1,1, + 254,146,146,242,130,130,254,7,7,7,9,1,1,254,130,130, + 242,146,146,254,7,7,7,9,1,1,254,130,130,158,146,146, + 254,7,7,7,9,1,1,254,146,146,158,130,130,254,7,7, + 7,9,1,1,124,146,146,242,130,130,124,7,7,7,9,1, + 1,124,130,130,242,146,146,124,7,7,7,9,1,1,124,130, + 130,158,146,146,124,7,7,7,9,1,1,124,146,146,158,130, + 130,124,6,6,6,9,1,1,252,136,144,160,192,128,6,6, + 6,9,1,1,252,68,36,20,12,4,6,6,6,9,1,1, + 128,192,160,144,136,252,6,6,6,9,1,1,252,132,132,132, + 132,252,6,6,6,9,1,1,252,252,252,252,252,252,5,5, + 5,9,2,1,248,136,136,136,248,5,5,5,9,2,1,248, + 248,248,248,248,6,6,6,9,1,1,4,12,20,36,68,252 + }; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 9, '1' Height: 5 + Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18_75r[792] U8G_SECTION(".progmem.u8g_font_9x18_75r") = { + 0,9,18,0,252,9,2,33,0,0,32,79,0,10,0,9, + 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, + 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, + 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, + 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, + 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, + 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, + 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, + 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, + 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, + 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, + 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, + 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, + 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, + 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, + 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, + 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, + 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, + 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, + 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, + 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, + 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, + 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, + 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, + 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, + 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, + 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, + 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, + 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, + 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, + 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, + 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, + 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, + 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, + 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, + 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, + 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, + 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, + 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, + 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, + 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, + 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, + 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, + 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, + 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, + 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, + 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, + 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, + 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, + 1,56,124,254,254,254,124,56}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w= 9 h=12 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=24 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =12 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[3336] U8G_SECTION(".progmem.u8g_font_9x18_78_79") = { + 0,9,18,0,252,9,2,231,4,175,32,255,0,12,255,11, + 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, + 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, + 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, + 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, + 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, + 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, + 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, + 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, + 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, + 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, + 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, + 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, + 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, + 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, + 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, + 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, + 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, + 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, + 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, + 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, + 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, + 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, + 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, + 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, + 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, + 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, + 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, + 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, + 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, + 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, + 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, + 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, + 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, + 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, + 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, + 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, + 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, + 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, + 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, + 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, + 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, + 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, + 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, + 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, + 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, + 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, + 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, + 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, + 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, + 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, + 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, + 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, + 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, + 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, + 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, + 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, + 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, + 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, + 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, + 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, + 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, + 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, + 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, + 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, + 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, + 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, + 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, + 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, + 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, + 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, + 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, + 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, + 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, + 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, + 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, + 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, + 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, + 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, + 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, + 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, + 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, + 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, + 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, + 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, + 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, + 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, + 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, + 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, + 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, + 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, + 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, + 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, + 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, + 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, + 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, + 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, + 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, + 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, + 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, + 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, + 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, + 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, + 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, + 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, + 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, + 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, + 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, + 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, + 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, + 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, + 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, + 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, + 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, + 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, + 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, + 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, + 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, + 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, + 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, + 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, + 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, + 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, + 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, + 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, + 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, + 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, + 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, + 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, + 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, + 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, + 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, + 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, + 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, + 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, + 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, + 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, + 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, + 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, + 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, + 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, + 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, + 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, + 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, + 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, + 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, + 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, + 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, + 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, + 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, + 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, + 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, + 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, + 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, + 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, + 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, + 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, + 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, + 10,0,20,0,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,8,11,11,9,0,255, + 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, + 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, + 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, + 85,0,99,0,99,0,193,128,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,5,12,12,9,2,255,248,160,160,160, + 160,160,160,160,160,160,160,248,5,12,12,9,2,255,248,40, + 40,40,40,40,40,40,40,40,40,248,3,10,10,9,3,0, + 32,32,64,64,128,128,64,64,32,32,3,10,10,9,3,0, + 128,128,64,64,32,32,64,64,128,128,6,10,10,9,1,0, + 36,36,72,72,144,144,72,72,36,36,6,10,10,9,2,0, + 144,144,72,72,36,36,72,72,144,144,255,255,255,255,9,11, + 22,9,0,0,8,0,20,0,54,0,85,0,213,128,85,0, + 85,0,85,0,85,0,85,0,85,0,9,11,22,9,0,255, + 85,0,85,0,85,0,85,0,85,0,85,0,213,128,85,0, + 54,0,20,0,8,0,8,8,8,9,0,0,28,34,169,113, + 33,1,34,28,8,8,8,9,0,0,56,68,149,142,132,128, + 68,56,9,5,10,9,0,2,114,0,169,0,255,128,169,0, + 114,0,9,5,10,9,0,2,32,0,64,0,255,128,64,0, + 32,0,9,5,10,9,0,2,2,0,1,0,255,128,1,0, + 2,0,9,5,10,9,0,2,34,0,65,0,255,128,65,0, + 34,0,9,7,14,9,0,1,16,0,32,0,127,128,128,0, + 127,128,32,0,16,0,9,7,14,9,0,1,4,0,2,0, + 255,0,0,128,255,0,2,0,4,0,9,7,14,9,0,1, + 20,0,34,0,127,0,128,128,127,0,34,0,20,0,9,5, + 10,9,0,2,32,128,64,128,255,128,64,128,32,128,9,5, + 10,9,0,2,130,0,129,0,255,128,129,0,130,0,9,7, + 14,9,0,1,16,128,32,128,127,128,128,128,127,128,32,128, + 16,128,9,7,14,9,0,1,132,0,130,0,255,0,128,128, + 255,0,130,0,132,0,9,6,12,9,0,1,2,0,1,0, + 85,128,170,128,1,0,2,0}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 9 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=20 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18B[3026] U8G_SECTION(".progmem.u8g_font_9x18B") = { + 0,9,18,0,252,10,1,242,3,225,32,255,253,14,252,11, + 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, + 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, + 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, + 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, + 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, + 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, + 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, + 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, + 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, + 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, + 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, + 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, + 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, + 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, + 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, + 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, + 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, + 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, + 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, + 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, + 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, + 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, + 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, + 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, + 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, + 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, + 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, + 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, + 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, + 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, + 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, + 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, + 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, + 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, + 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, + 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, + 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, + 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, + 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, + 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, + 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, + 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, + 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, + 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, + 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, + 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, + 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, + 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, + 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, + 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, + 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, + 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, + 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, + 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, + 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, + 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, + 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, + 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, + 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, + 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, + 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, + 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, + 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, + 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, + 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, + 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, + 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, + 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, + 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, + 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, + 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, + 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, + 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, + 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, + 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, + 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, + 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, + 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, + 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, + 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, + 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, + 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, + 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, + 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, + 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, + 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, + 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, + 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, + 8,3,3,9,0,7,115,219,206,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,0,0,0,9,0,14, + 2,10,10,9,4,0,192,0,192,192,192,192,192,192,192,192, + 7,8,8,9,1,0,4,124,206,208,208,230,124,64,8,10, + 10,9,0,255,30,51,48,48,124,48,48,248,191,224,7,7, + 7,9,1,2,198,254,108,68,108,254,198,8,10,10,9,0, + 0,195,195,102,60,126,24,126,24,24,24,2,11,11,9,3, + 255,192,192,192,192,192,0,192,192,192,192,192,6,11,11,9, + 1,255,120,204,192,120,204,204,204,120,12,204,120,5,2,2, + 9,2,11,216,216,8,11,11,9,0,0,60,126,195,189,165, + 161,165,189,195,126,60,5,7,7,9,1,3,112,24,120,216, + 120,0,248,8,8,8,9,0,1,27,54,108,216,216,108,54, + 27,7,5,5,9,1,2,254,254,6,6,6,6,1,1,9, + 1,4,252,8,11,11,9,0,0,60,126,195,189,165,189,169, + 173,195,126,60,6,2,2,9,1,9,252,252,5,4,4,9, + 1,8,112,216,216,112,6,9,9,9,1,1,48,48,48,252, + 48,48,48,0,252,5,6,6,9,1,4,112,216,24,48,96, + 248,5,6,6,9,1,4,112,216,48,24,216,112,4,3,3, + 9,2,10,48,96,192,7,9,9,9,1,254,198,198,198,198, + 206,222,246,192,192,7,10,10,9,1,0,126,246,246,246,118, + 54,54,54,54,54,3,2,2,9,3,4,224,224,6,3,3, + 9,1,253,24,204,120,4,6,6,9,1,4,96,224,96,96, + 96,240,5,7,7,9,1,3,112,216,216,216,112,0,248,8, + 8,8,9,0,1,216,108,54,27,27,54,108,216,8,11,11, + 9,0,0,96,224,96,96,97,99,247,15,27,31,3,8,11, + 11,9,0,0,96,224,96,96,110,115,243,6,12,24,31,8, + 11,11,9,0,0,112,152,24,48,25,155,119,15,27,31,3, + 7,10,10,9,1,0,24,24,0,24,48,96,192,198,198,124, + 7,14,14,9,1,0,96,48,24,0,16,56,56,56,108,124, + 108,198,198,198,7,14,14,9,1,0,12,24,48,0,16,56, + 56,56,108,124,108,198,198,198,7,14,14,9,1,0,16,56, + 108,0,16,56,56,56,108,124,108,198,198,198,7,13,13,9, + 1,0,118,220,0,16,56,56,56,108,124,108,198,198,198,7, + 13,13,9,1,0,108,108,0,16,56,56,56,108,124,108,198, + 198,198,7,14,14,9,1,0,56,108,108,56,16,56,56,56, + 108,124,108,198,198,198,7,10,10,9,1,0,62,60,108,108, + 110,252,204,204,204,206,7,14,14,9,1,252,60,102,192,192, + 192,192,192,192,102,60,24,12,108,56,7,14,14,9,1,0, + 96,48,24,0,254,192,192,192,248,192,192,192,192,254,7,14, + 14,9,1,0,12,24,48,0,254,192,192,192,248,192,192,192, + 192,254,7,14,14,9,1,0,16,56,108,0,254,192,192,192, + 248,192,192,192,192,254,7,13,13,9,1,0,108,108,0,254, + 192,192,192,248,192,192,192,192,254,6,14,14,9,1,0,96, + 48,24,0,252,48,48,48,48,48,48,48,48,252,6,14,14, + 9,1,0,12,24,48,0,252,48,48,48,48,48,48,48,48, + 252,6,14,14,9,1,0,16,56,108,0,252,48,48,48,48, + 48,48,48,48,252,6,13,13,9,1,0,108,108,0,252,48, + 48,48,48,48,48,48,48,252,8,10,10,9,0,0,124,102, + 99,99,243,99,99,99,102,124,7,13,13,9,1,0,118,220, + 0,198,198,230,246,222,206,198,198,198,198,7,14,14,9,1, + 0,96,48,24,0,124,198,198,198,198,198,198,198,198,124,7, + 14,14,9,1,0,12,24,48,0,124,198,198,198,198,198,198, + 198,198,124,7,14,14,9,1,0,16,56,108,0,124,198,198, + 198,198,198,198,198,198,124,7,13,13,9,1,0,118,220,0, + 124,198,198,198,198,198,198,198,198,124,7,13,13,9,1,0, + 108,108,0,124,198,198,198,198,198,198,198,198,124,8,7,7, + 9,0,1,195,102,60,24,60,102,195,7,12,12,9,1,255, + 6,126,206,206,222,222,246,246,230,230,252,192,7,14,14,9, + 1,0,96,48,24,0,198,198,198,198,198,198,198,198,108,56, + 7,14,14,9,1,0,12,24,48,0,198,198,198,198,198,198, + 198,198,108,56,7,14,14,9,1,0,16,56,108,0,198,198, + 198,198,198,198,198,198,108,56,7,13,13,9,1,0,108,108, + 0,198,198,198,198,198,198,198,198,108,56,8,14,14,9,0, + 0,12,24,48,0,195,195,102,60,24,24,24,24,24,24,7, + 10,10,9,1,0,192,192,252,198,198,198,252,192,192,192,7, + 10,10,9,1,0,60,102,102,102,236,102,102,102,102,108,7, + 11,11,9,1,0,96,48,24,0,124,6,6,126,198,198,126, + 7,11,11,9,1,0,12,24,48,0,124,6,6,126,198,198, + 126,7,11,11,9,1,0,16,56,108,0,124,6,6,126,198, + 198,126,7,10,10,9,1,0,118,220,0,124,6,6,126,198, + 198,126,7,10,10,9,1,0,108,108,0,124,6,6,126,198, + 198,126,7,11,11,9,1,0,56,108,56,0,124,6,6,126, + 198,198,126,8,7,7,9,0,0,118,27,27,127,216,219,118, + 7,11,11,9,1,252,124,198,192,192,192,198,124,24,12,108, + 56,7,11,11,9,1,0,96,48,24,0,124,198,198,254,192, + 198,124,7,11,11,9,1,0,12,24,48,0,124,198,198,254, + 192,198,124,7,11,11,9,1,0,16,56,108,0,124,198,198, + 254,192,198,124,7,10,10,9,1,0,108,108,0,124,198,198, + 254,192,198,124,6,11,11,9,1,0,192,96,48,0,240,48, + 48,48,48,48,252,6,11,11,9,1,0,12,24,48,0,240, + 48,48,48,48,48,252,6,11,11,9,1,0,32,112,216,0, + 240,48,48,48,48,48,252,6,10,10,9,1,0,108,108,0, + 240,48,48,48,48,48,252,7,11,11,9,1,0,108,56,56, + 108,12,126,198,198,198,198,124,7,10,10,9,1,0,118,220, + 0,220,230,198,198,198,198,198,7,11,11,9,1,0,96,48, + 24,0,56,108,198,198,198,108,56,7,11,11,9,1,0,12, + 24,48,0,56,108,198,198,198,108,56,7,11,11,9,1,0, + 16,56,108,0,56,108,198,198,198,108,56,7,10,10,9,1, + 0,118,220,0,56,108,198,198,198,108,56,7,10,10,9,1, + 0,108,108,0,56,108,198,198,198,108,56,8,7,7,9,0, + 1,24,24,0,255,0,24,24,8,9,9,9,0,255,1,63, + 102,207,219,243,102,252,128,7,11,11,9,1,0,96,48,24, + 0,198,198,198,198,198,198,126,7,11,11,9,1,0,12,24, + 48,0,198,198,198,198,198,198,126,7,11,11,9,1,0,16, + 56,108,0,198,198,198,198,198,198,126,7,10,10,9,1,0, + 108,108,0,198,198,198,198,198,198,126,7,14,14,9,1,253, + 12,24,48,0,198,198,108,108,108,56,56,48,176,96,7,11, + 11,9,1,254,192,192,248,204,198,198,198,204,248,192,192,7, + 13,13,9,1,253,108,108,0,198,198,108,108,108,56,56,48, + 176,96}; +/* + Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 9 h=13 x= 3 y=14 dx= 9 dy= 0 ascent=14 len=20 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18Br[1434] U8G_SECTION(".progmem.u8g_font_9x18Br") = { + 0,9,18,0,252,10,1,242,3,225,32,127,253,14,253,11, + 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, + 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, + 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, + 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, + 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, + 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, + 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, + 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, + 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, + 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, + 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, + 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, + 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, + 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, + 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, + 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, + 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, + 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, + 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, + 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, + 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, + 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, + 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, + 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, + 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, + 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, + 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, + 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, + 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, + 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, + 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, + 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, + 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, + 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, + 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, + 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, + 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, + 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, + 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, + 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, + 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, + 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, + 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, + 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, + 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, + 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, + 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, + 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, + 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, + 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, + 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, + 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, + 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, + 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, + 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, + 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, + 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, + 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, + 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, + 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, + 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, + 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, + 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, + 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, + 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, + 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, + 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, + 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, + 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, + 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, + 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, + 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, + 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, + 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, + 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, + 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, + 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, + 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, + 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, + 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, + 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, + 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, + 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, + 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, + 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, + 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, + 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, + 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, + 8,3,3,9,0,7,115,219,206,255}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 8 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=14 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18[3011] U8G_SECTION(".progmem.u8g_font_9x18") = { + 0,9,18,0,252,10,1,232,3,215,32,255,253,14,253,11, + 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, + 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, + 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, + 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, + 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, + 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, + 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, + 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, + 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, + 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, + 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, + 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, + 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, + 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, + 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, + 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, + 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, + 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, + 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, + 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, + 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, + 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, + 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, + 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, + 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, + 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, + 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, + 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, + 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, + 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, + 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, + 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, + 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, + 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, + 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, + 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, + 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, + 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, + 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, + 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, + 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, + 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, + 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, + 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, + 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, + 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, + 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, + 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, + 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, + 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, + 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, + 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, + 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, + 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, + 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, + 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, + 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, + 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, + 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, + 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, + 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, + 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, + 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, + 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, + 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, + 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, + 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, + 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, + 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, + 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, + 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, + 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, + 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, + 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, + 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, + 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, + 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, + 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, + 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, + 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, + 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, + 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, + 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, + 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, + 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, + 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0,0,0,9,0,14,1,11,11,9,4,0,128,128,0,0, + 128,128,128,128,128,128,128,6,8,8,9,1,0,8,120,148, + 144,160,164,120,64,7,10,10,9,1,0,28,34,32,32,248, + 32,32,96,162,92,7,6,6,9,1,3,130,124,68,68,124, + 130,7,10,10,9,1,0,130,130,68,40,124,16,124,16,16, + 16,1,11,11,9,4,255,128,128,128,128,128,0,128,128,128, + 128,128,4,11,11,9,2,255,96,144,128,96,144,144,144,96, + 16,144,96,3,2,2,9,3,11,160,160,8,9,9,9,0, + 1,60,66,153,165,161,165,153,66,60,5,7,7,9,1,3, + 96,144,112,144,120,0,248,7,8,8,9,1,1,18,36,72, + 144,144,72,36,18,6,4,4,9,1,2,252,4,4,4,5, + 1,1,9,2,4,248,8,9,9,9,0,1,60,66,185,165, + 189,169,165,66,60,6,1,1,9,1,9,252,4,4,4,9, + 3,6,96,144,144,96,7,9,9,9,1,1,16,16,16,254, + 16,16,16,0,254,4,6,6,9,1,4,96,144,16,96,128, + 240,4,6,6,9,1,4,96,144,32,16,144,96,3,3,3, + 9,3,10,32,64,128,7,9,9,9,1,254,130,130,130,130, + 130,198,186,128,128,7,10,10,9,1,0,126,138,138,138,122, + 10,10,10,10,10,2,2,2,9,4,4,192,192,4,3,3, + 9,2,253,32,144,96,3,6,6,9,1,4,64,192,64,64, + 64,224,5,6,6,9,1,4,112,136,136,112,0,248,7,8, + 8,9,1,1,144,72,36,18,18,36,72,144,7,10,10,9, + 1,0,64,192,64,64,66,230,10,18,26,6,7,10,10,9, + 1,0,64,192,64,64,76,242,2,12,16,30,7,10,10,9, + 1,0,96,144,32,16,146,102,10,18,26,6,7,10,10,9, + 1,0,16,0,16,16,32,64,128,130,130,124,7,14,14,9, + 1,0,32,16,8,0,16,40,40,40,68,124,68,130,130,130, + 7,14,14,9,1,0,8,16,32,0,16,40,40,40,68,124, + 68,130,130,130,7,14,14,9,1,0,16,40,68,0,16,40, + 40,40,68,124,68,130,130,130,7,13,13,9,1,0,52,88, + 0,16,40,40,40,68,124,68,130,130,130,7,13,13,9,1, + 0,40,40,0,16,40,40,40,68,124,68,130,130,130,7,14, + 14,9,1,0,16,40,40,16,16,40,40,40,68,124,68,130, + 130,130,7,10,10,9,1,0,30,40,40,40,78,120,72,136, + 136,142,7,13,13,9,1,253,60,66,128,128,128,128,128,128, + 66,60,8,36,24,7,14,14,9,1,0,32,16,8,0,254, + 128,128,128,248,128,128,128,128,254,7,14,14,9,1,0,8, + 16,32,0,254,128,128,128,248,128,128,128,128,254,7,14,14, + 9,1,0,16,40,68,0,254,128,128,128,248,128,128,128,128, + 254,7,13,13,9,1,0,40,40,0,254,128,128,128,248,128, + 128,128,128,254,5,14,14,9,2,0,64,32,16,0,248,32, + 32,32,32,32,32,32,32,248,5,14,14,9,2,0,16,32, + 64,0,248,32,32,32,32,32,32,32,32,248,5,14,14,9, + 2,0,32,80,136,0,248,32,32,32,32,32,32,32,32,248, + 5,13,13,9,2,0,80,80,0,248,32,32,32,32,32,32, + 32,32,248,7,10,10,9,1,0,120,68,66,66,242,66,66, + 66,68,120,7,13,13,9,1,0,52,88,0,130,130,194,162, + 146,138,134,130,130,130,7,14,14,9,1,0,32,16,8,0, + 124,130,130,130,130,130,130,130,130,124,7,14,14,9,1,0, + 8,16,32,0,124,130,130,130,130,130,130,130,130,124,7,14, + 14,9,1,0,16,40,68,0,124,130,130,130,130,130,130,130, + 130,124,7,13,13,9,1,0,52,88,0,124,130,130,130,130, + 130,130,130,130,124,7,13,13,9,1,0,40,40,0,124,130, + 130,130,130,130,130,130,130,124,7,7,7,9,1,1,130,68, + 40,16,40,68,130,7,12,12,9,1,255,2,124,134,138,138, + 146,146,162,162,194,124,128,7,14,14,9,1,0,32,16,8, + 0,130,130,130,130,130,130,130,130,68,56,7,14,14,9,1, + 0,8,16,32,0,130,130,130,130,130,130,130,130,68,56,7, + 14,14,9,1,0,16,40,68,0,130,130,130,130,130,130,130, + 130,68,56,7,13,13,9,1,0,40,40,0,130,130,130,130, + 130,130,130,130,68,56,7,14,14,9,1,0,8,16,32,0, + 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, + 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, + 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, + 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, + 0,8,16,32,0,124,2,2,126,130,134,122,7,11,11,9, + 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, + 9,1,0,52,88,0,124,2,2,126,130,134,122,7,10,10, + 9,1,0,40,40,0,124,2,2,126,130,134,122,7,12,12, + 9,1,0,16,40,40,16,0,124,2,2,126,130,134,122,7, + 7,7,9,1,0,108,18,18,126,144,146,108,7,10,10,9, + 1,253,124,130,128,128,128,130,124,16,72,48,7,11,11,9, + 1,0,32,16,8,0,124,130,130,254,128,130,124,7,11,11, + 9,1,0,8,16,32,0,124,130,130,254,128,130,124,7,11, + 11,9,1,0,16,40,68,0,124,130,130,254,128,130,124,7, + 10,10,9,1,0,40,40,0,124,130,130,254,128,130,124,5, + 12,12,9,2,0,128,64,32,0,0,224,32,32,32,32,32, + 248,5,12,12,9,2,0,16,32,64,0,0,224,32,32,32, + 32,32,248,5,12,12,9,2,0,32,80,136,0,0,224,32, + 32,32,32,32,248,5,11,11,9,2,0,80,80,0,0,224, + 32,32,32,32,32,248,7,11,11,9,1,0,72,48,80,8, + 60,68,130,130,130,68,56,7,10,10,9,1,0,52,88,0, + 188,194,130,130,130,130,130,7,11,11,9,1,0,32,16,8, + 0,124,130,130,130,130,130,124,7,11,11,9,1,0,8,16, + 32,0,124,130,130,130,130,130,124,7,11,11,9,1,0,16, + 40,68,0,124,130,130,130,130,130,124,7,10,10,9,1,0, + 52,88,0,124,130,130,130,130,130,124,7,10,10,9,1,0, + 40,40,0,124,130,130,130,130,130,124,7,9,9,9,1,0, + 16,56,16,0,254,0,16,56,16,7,9,9,9,1,255,2, + 124,138,138,146,162,162,124,128,7,11,11,9,1,0,64,32, + 16,0,130,130,130,130,130,134,122,7,11,11,9,1,0,8, + 16,32,0,130,130,130,130,130,134,122,7,11,11,9,1,0, + 16,40,68,0,130,130,130,130,130,134,122,7,10,10,9,1, + 0,40,40,0,130,130,130,130,130,134,122,7,14,14,9,1, + 253,4,8,16,0,66,66,36,36,36,24,24,16,144,96,7, + 11,11,9,1,254,128,128,184,196,130,130,130,196,184,128,128, + 7,13,13,9,1,253,36,36,0,66,66,36,36,36,24,24, + 16,144,96}; +/* + Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 8 h=13 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=13 + Font Bounding box w= 9 h=18 x= 0 y=-4 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_9x18r[1424] U8G_SECTION(".progmem.u8g_font_9x18r") = { + 0,9,18,0,252,10,1,232,3,215,32,127,253,14,253,11, + 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, + 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, + 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, + 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, + 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, + 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, + 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, + 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, + 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, + 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, + 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, + 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, + 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, + 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, + 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, + 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, + 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, + 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, + 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, + 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, + 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, + 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, + 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, + 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, + 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, + 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, + 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, + 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, + 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, + 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, + 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, + 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, + 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, + 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, + 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, + 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, + 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, + 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, + 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, + 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, + 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, + 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, + 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, + 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, + 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, + 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, + 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, + 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, + 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, + 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, + 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, + 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, + 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, + 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, + 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, + 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, + 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, + 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, + 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, + 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, + 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, + 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, + 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, + 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, + 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, + 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, + 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, + 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, + 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, + 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, + 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, + 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, + 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, + 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, + 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, + 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, + 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, + 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, + 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, + 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, + 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, + 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, + 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, + 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, + 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, + 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, + 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255 + }; +/* + Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 + Copyright: Copyright mrsbarrett 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 9 h= 9 x= 1 y= 5 dx=10 dy= 0 ascent= 8 len=12 + Font Bounding box w=10 h=10 x=-1 y=-2 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_baby[2227] U8G_SECTION(".progmem.u8g_font_baby") = { + 0,10,10,255,254,5,1,108,2,200,32,255,254,8,254,6, + 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, + 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, + 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, + 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, + 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, + 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, + 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, + 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, + 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, + 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, + 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, + 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, + 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, + 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, + 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, + 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, + 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, + 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, + 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, + 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, + 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, + 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, + 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, + 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, + 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, + 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, + 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, + 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, + 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, + 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, + 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, + 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, + 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, + 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, + 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, + 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, + 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, + 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, + 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, + 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, + 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, + 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, + 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, + 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, + 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, + 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, + 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, + 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, + 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, + 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, + 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, + 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, + 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, + 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, + 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, + 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, + 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, + 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, + 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, + 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, + 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, + 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, + 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, + 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,1,6,6,3,1,255,128,0,128,128,128,128,4,6,6, + 5,0,255,16,112,160,160,112,64,4,6,6,5,0,0,96, + 208,64,224,64,240,4,4,4,5,0,1,240,144,144,240,5, + 7,7,6,0,255,136,80,32,112,32,112,32,1,7,7,2, + 0,255,128,128,128,0,128,128,128,4,7,7,5,0,255,112, + 128,96,144,96,16,224,3,1,1,4,0,5,160,7,7,7, + 8,0,255,56,68,154,162,154,68,56,3,3,3,4,0,4, + 96,160,224,4,3,3,5,0,1,80,160,80,5,3,3,6, + 0,1,248,8,8,2,1,1,3,0,2,192,7,7,7,8, + 0,255,56,68,178,186,170,68,56,4,1,1,5,0,5,240, + 3,3,3,4,0,4,64,160,64,3,5,5,4,0,0,64, + 224,64,0,224,3,4,4,4,0,4,192,32,64,224,3,4, + 4,4,0,4,224,32,96,224,2,2,2,3,0,5,64,128, + 5,6,6,6,0,254,144,144,144,248,128,128,5,6,6,6, + 0,0,120,232,232,104,40,40,1,1,1,3,1,2,128,3, + 3,3,4,0,254,64,32,192,3,4,4,4,0,4,64,192, + 64,224,4,4,4,5,0,4,96,144,144,96,4,3,3,5, + 0,1,160,80,160,7,6,6,8,0,0,136,144,160,42,78, + 130,7,6,6,8,0,0,136,144,164,42,68,142,9,6,12, + 10,0,0,226,0,100,0,232,0,10,128,19,128,32,128,4, + 6,6,5,0,255,32,0,32,64,144,96,4,8,8,5,0, + 0,64,32,0,96,144,144,240,144,4,8,8,5,0,0,32, + 64,0,96,144,144,240,144,4,8,8,5,0,0,96,144,0, + 96,144,144,240,144,4,8,8,5,0,0,80,160,0,96,144, + 144,240,144,4,7,7,5,0,0,80,0,96,144,144,240,144, + 4,7,7,5,0,0,96,0,96,144,144,240,144,7,5,5, + 8,0,0,126,144,156,240,158,4,7,7,5,0,254,96,144, + 128,144,96,32,64,4,8,8,5,0,0,64,32,0,240,128, + 224,128,240,4,8,8,5,0,0,32,64,0,240,128,224,128, + 240,4,8,8,5,0,0,96,144,0,240,128,224,128,240,4, + 7,7,5,0,0,80,0,240,128,224,128,240,3,8,8,4, + 0,0,128,64,0,224,64,64,64,224,3,8,8,4,0,0, + 32,64,0,224,64,64,64,224,3,8,8,4,0,0,64,160, + 0,224,64,64,64,224,3,7,7,4,0,0,160,0,224,64, + 64,64,224,5,5,5,6,0,0,112,72,232,72,112,4,8, + 8,5,0,0,80,160,0,144,144,208,176,144,4,8,8,5, + 0,0,64,32,0,96,144,144,144,96,4,8,8,5,0,0, + 32,64,0,96,144,144,144,96,4,8,8,5,0,0,96,144, + 0,96,144,144,144,96,4,8,8,5,0,0,80,160,0,96, + 144,144,144,96,4,7,7,5,0,0,80,0,96,144,144,144, + 96,3,3,3,4,0,1,160,64,160,6,5,5,7,0,0, + 48,76,120,200,48,4,8,8,5,0,0,64,32,0,144,144, + 144,144,96,4,8,8,5,0,0,32,64,0,144,144,144,144, + 96,4,8,8,5,0,0,96,144,0,144,144,144,144,96,4, + 7,7,5,0,0,80,0,144,144,144,144,96,4,9,9,5, + 0,255,32,64,0,144,144,144,112,16,96,4,6,6,5,0, + 0,128,224,144,144,224,128,4,5,5,5,0,0,96,144,160, + 144,160,4,7,7,5,0,0,64,32,0,96,144,144,112,4, + 7,7,5,0,0,32,64,0,96,144,144,112,4,7,7,5, + 0,0,96,144,0,96,144,144,112,4,7,7,5,0,0,80, + 160,0,96,144,144,112,4,6,6,5,0,0,80,0,96,144, + 144,112,4,7,7,5,0,0,96,96,0,96,144,144,112,7, + 4,4,8,0,0,108,146,148,126,3,6,6,4,0,254,96, + 128,128,96,32,64,4,7,7,5,0,0,64,32,0,96,144, + 160,112,4,7,7,5,0,0,32,64,0,96,144,160,112,4, + 7,7,5,0,0,96,144,0,96,144,160,112,4,6,6,5, + 0,0,80,0,96,144,160,112,2,6,6,3,0,0,128,64, + 0,64,64,64,2,6,6,3,0,0,64,128,0,128,128,128, + 3,6,6,4,0,0,64,160,0,64,64,64,3,5,5,4, + 0,0,160,0,64,64,64,5,6,6,6,0,0,96,24,112, + 144,144,96,4,7,7,5,0,0,80,160,0,224,144,144,144, + 4,7,7,5,0,0,64,32,0,96,144,144,96,4,7,7, + 5,0,0,32,64,0,96,144,144,96,4,7,7,5,0,0, + 96,144,0,96,144,144,96,4,7,7,5,0,0,80,160,0, + 96,144,144,96,4,6,6,5,0,0,80,0,96,144,144,96, + 5,5,5,6,0,0,32,0,248,0,32,4,4,4,5,0, + 0,96,176,208,96,4,7,7,5,0,0,64,32,0,144,144, + 144,112,4,7,7,5,0,0,32,64,0,144,144,144,112,4, + 7,7,5,0,0,96,144,0,144,144,144,112,4,6,6,5, + 0,0,80,0,144,144,144,112,4,9,9,5,0,254,32,64, + 0,144,144,144,112,16,96,4,8,8,5,0,254,128,128,224, + 144,144,224,128,128,4,8,8,5,0,254,80,0,144,144,144, + 112,16,96}; +/* + Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 + Copyright: Copyright mrsbarrett 2008 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 4 h= 6 x= 1 y= 3 dx= 5 dy= 0 ascent= 6 len= 6 + Font Bounding box w=10 h=10 x=-1 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 6 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_babyn[180] U8G_SECTION(".progmem.u8g_font_babyn") = { + 0,10,10,255,254,5,0,0,0,0,42,57,0,6,254,5, + 0,3,3,3,4,0,3,160,64,160,3,3,3,5,1,1, + 64,224,64,2,3,3,3,0,254,192,64,128,3,1,1,4, + 0,2,224,1,1,1,2,0,0,128,3,6,6,4,0,255, + 32,32,64,64,128,128,3,5,5,4,0,0,64,160,160,160, + 64,2,5,5,3,0,0,64,192,64,64,64,4,5,5,5, + 0,0,96,144,32,64,240,4,5,5,5,0,0,224,16,96, + 16,224,4,5,5,5,0,0,144,144,144,112,16,4,5,5, + 5,0,0,240,128,224,16,224,4,5,5,5,0,0,96,128, + 224,144,96,4,5,5,5,0,0,240,16,32,64,128,4,5, + 5,5,0,0,96,144,96,144,96,4,5,5,5,0,0,96, + 144,112,16,96}; +/* + Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 + Copyright: Copyright mrsbarrett 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 1 y= 5 dx= 6 dy= 0 ascent= 7 len= 7 + Font Bounding box w=10 h=10 x=-1 y=-2 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 7 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_babyr[1040] U8G_SECTION(".progmem.u8g_font_babyr") = { + 0,10,10,255,254,5,1,108,2,200,32,127,254,7,254,6, + 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, + 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, + 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, + 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, + 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, + 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, + 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, + 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, + 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, + 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, + 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, + 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, + 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, + 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, + 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, + 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, + 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, + 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, + 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, + 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, + 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, + 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, + 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, + 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, + 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, + 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, + 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, + 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, + 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, + 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, + 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, + 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, + 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, + 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, + 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, + 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, + 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, + 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, + 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, + 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, + 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, + 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, + 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, + 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, + 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, + 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, + 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, + 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, + 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, + 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, + 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, + 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, + 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, + 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, + 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, + 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, + 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, + 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, + 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, + 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, + 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, + 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, + 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, + 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255 + }; +/* + Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright cwillmor 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_blipfest_07[948] U8G_SECTION(".progmem.u8g_font_blipfest_07") = { + 0,5,6,0,255,5,1,5,2,47,32,255,255,5,255,5, + 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, + 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, + 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, + 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, + 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, + 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, + 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, + 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, + 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, + 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, + 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, + 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, + 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, + 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, + 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, + 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, + 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, + 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, + 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, + 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, + 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, + 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, + 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, + 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, + 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, + 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, + 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, + 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, + 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, + 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, + 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, + 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, + 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, + 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, + 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, + 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, + 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, + 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, + 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, + 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, + 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, + 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, + 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, + 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, + 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, + 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, + 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, + 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, + 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255}; +/* + Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright cwillmor 2008 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[160] U8G_SECTION(".progmem.u8g_font_blipfest_07n") = { + 0,5,6,0,255,5,0,0,0,0,42,57,0,5,0,5, + 0,255,3,3,3,4,0,1,64,224,64,1,2,2,2,0, + 0,128,128,3,1,1,4,0,2,224,1,1,1,2,0,0, + 128,255,3,5,5,4,0,0,224,160,160,160,224,2,5,5, + 3,0,0,192,64,64,64,64,3,5,5,4,0,0,224,32, + 224,128,224,3,5,5,4,0,0,224,32,224,32,224,3,5, + 5,4,0,0,160,160,224,32,32,3,5,5,4,0,0,224, + 128,224,32,224,3,5,5,4,0,0,224,128,224,160,224,3, + 5,5,4,0,0,224,32,32,32,32,3,5,5,4,0,0, + 224,160,224,160,224,3,5,5,4,0,0,224,160,224,32,224 + }; +/* + Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright cwillmor 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[820] U8G_SECTION(".progmem.u8g_font_blipfest_07r") = { + 0,5,6,0,255,5,1,5,2,47,32,127,255,5,255,5, + 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, + 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, + 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, + 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, + 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, + 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, + 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, + 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, + 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, + 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, + 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, + 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, + 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, + 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, + 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, + 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, + 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, + 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, + 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, + 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, + 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, + 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, + 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, + 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, + 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, + 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, + 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, + 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, + 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, + 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, + 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, + 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, + 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, + 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, + 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, + 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, + 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, + 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, + 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, + 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, + 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, + 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, + 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, + 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, + 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, + 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, + 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, + 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, + 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, + 255,255,255,255}; +/* + Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 + Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 9 h= 8 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=10 + Font Bounding box w= 9 h=10 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_chikita[2236] U8G_SECTION(".progmem.u8g_font_chikita") = { + 0,9,10,0,254,5,1,107,2,195,32,255,254,8,254,6, + 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, + 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, + 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, + 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, + 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, + 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, + 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, + 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, + 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, + 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, + 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, + 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, + 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, + 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, + 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, + 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, + 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, + 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, + 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, + 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, + 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, + 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, + 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, + 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, + 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, + 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, + 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, + 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, + 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, + 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, + 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, + 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, + 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, + 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, + 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, + 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, + 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, + 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, + 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, + 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, + 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, + 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, + 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, + 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, + 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, + 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, + 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, + 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, + 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, + 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, + 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, + 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, + 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, + 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, + 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, + 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, + 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, + 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, + 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, + 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, + 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, + 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, + 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, + 3,6,0,1,64,168,16,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,1,7,7,2,0,255,128, + 0,128,128,128,128,128,3,5,5,4,0,0,64,224,128,224, + 64,5,6,6,6,0,0,112,136,72,224,64,248,5,5,5, + 6,0,0,136,112,80,112,136,5,6,6,6,0,0,136,80, + 32,112,112,32,1,5,5,2,0,0,128,128,0,128,128,4, + 7,7,5,0,254,112,128,96,144,96,16,224,3,1,1,4, + 0,6,160,7,7,7,8,0,255,124,130,186,162,186,130,124, + 3,4,4,4,0,4,96,224,160,96,6,5,5,7,0,0, + 36,72,144,72,36,5,3,3,6,0,2,248,8,8,3,1, + 1,5,1,2,224,7,7,7,8,0,255,124,130,186,178,170, + 130,124,5,1,1,6,0,6,248,4,4,4,5,0,3,96, + 144,144,96,3,5,5,5,1,0,64,224,64,0,224,4,5, + 5,5,0,2,96,144,32,64,240,4,5,5,5,0,2,224, + 16,96,16,224,2,2,2,3,0,5,64,128,5,6,6,6, + 0,254,136,136,216,168,128,128,6,7,7,7,0,254,124,232, + 232,104,40,40,40,3,3,3,5,1,1,224,224,224,3,3, + 3,5,1,254,64,32,224,2,5,5,3,0,2,64,192,64, + 64,64,4,5,5,5,0,2,96,144,144,144,96,6,5,5, + 7,0,0,144,72,36,72,144,7,8,8,8,0,254,66,196, + 72,80,38,74,142,2,7,8,8,8,0,254,66,196,72,80, + 44,66,132,14,7,8,8,8,0,254,226,68,40,208,38,74, + 142,2,5,7,7,6,0,255,32,0,32,32,72,136,112,5, + 8,8,6,0,0,64,32,0,112,136,136,248,136,5,8,8, + 6,0,0,16,32,0,112,136,136,248,136,5,8,8,6,0, + 0,32,80,0,112,136,136,248,136,5,8,8,6,0,0,40, + 80,0,112,136,136,248,136,5,7,7,6,0,0,80,0,112, + 136,136,248,136,5,8,8,6,0,0,32,80,32,112,136,136, + 248,136,9,5,10,10,0,0,63,128,72,0,143,0,248,0, + 143,128,5,7,7,6,0,254,112,136,128,136,112,16,112,5, + 8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,8, + 6,0,0,16,32,0,248,128,240,128,248,5,8,8,6,0, + 0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,80, + 0,248,128,240,128,248,3,8,8,4,0,0,128,64,0,224, + 64,64,64,224,3,8,8,4,0,0,32,64,0,224,64,64, + 64,224,3,8,8,4,0,0,64,160,0,224,64,64,64,224, + 3,7,7,4,0,0,160,0,224,64,64,64,224,5,5,5, + 6,0,0,112,72,232,72,112,5,8,8,6,0,0,40,80, + 0,136,200,168,152,136,5,8,8,6,0,0,64,32,0,112, + 136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136, + 136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112, + 5,8,8,6,0,0,64,168,16,112,136,136,136,112,5,7, + 7,6,0,0,80,0,112,136,136,136,112,3,3,3,4,0, + 1,160,64,160,5,5,5,6,0,0,120,152,168,200,240,5, + 8,8,6,0,0,64,32,0,136,136,136,136,112,5,8,8, + 6,0,0,16,32,0,136,136,136,136,112,5,8,8,6,0, + 0,32,80,0,136,136,136,136,112,5,7,7,6,0,0,80, + 0,136,136,136,136,112,5,8,8,6,0,0,16,32,0,136, + 136,80,32,32,5,5,5,6,0,0,128,240,136,240,128,4, + 5,5,5,0,0,96,144,160,144,160,4,7,7,5,0,0, + 64,32,0,112,144,144,240,4,7,7,5,0,0,32,64,0, + 112,144,144,240,4,7,7,5,0,0,32,80,0,112,144,144, + 240,4,7,7,5,0,0,80,160,0,112,144,144,240,4,6, + 6,5,0,0,80,0,112,144,144,240,4,7,7,5,0,0, + 32,80,32,112,144,144,240,7,5,5,8,0,0,236,18,126, + 144,238,4,6,6,5,0,254,112,128,128,112,32,96,4,7, + 7,5,0,0,64,32,0,96,144,224,112,4,7,7,5,0, + 0,32,64,0,96,144,224,112,4,7,7,5,0,0,32,80, + 0,96,144,224,112,4,6,6,5,0,0,80,0,96,144,224, + 112,2,7,7,3,0,0,128,64,0,64,64,64,64,2,7, + 7,3,0,0,64,128,0,128,128,128,128,3,7,7,4,0, + 0,64,160,0,64,64,64,64,3,6,6,4,0,0,160,0, + 64,64,64,64,4,6,6,5,0,0,64,32,112,144,144,96, + 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, + 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, + 32,64,0,96,144,144,96,4,7,7,5,0,0,96,144,0, + 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, + 96,4,6,6,5,0,0,80,0,96,144,144,96,5,5,5, + 6,0,0,32,0,248,0,32,4,4,4,5,0,0,112,176, + 208,224,4,7,7,5,0,0,64,32,0,144,144,144,112,4, + 7,7,5,0,0,32,64,0,144,144,144,112,4,7,7,5, + 0,0,32,80,0,144,144,144,112,4,6,6,5,0,0,80, + 0,144,144,144,112,4,8,8,5,0,254,32,64,0,144,144, + 112,16,224,4,6,6,5,0,254,128,224,144,144,224,128,4, + 7,7,5,0,254,80,0,144,144,112,16,224}; +/* + Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 + Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 9 h=10 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_chikitan[180] U8G_SECTION(".progmem.u8g_font_chikitan") = { + 0,9,10,0,254,5,0,0,0,0,42,57,0,5,255,5, + 0,3,3,3,5,1,1,160,64,160,5,5,5,6,0,0, + 32,32,248,32,32,2,2,2,3,0,255,64,128,5,1,1, + 6,0,2,248,1,1,1,2,0,0,128,3,5,5,5,1, + 0,32,32,64,128,128,4,5,5,5,0,0,96,144,144,144, + 96,2,5,5,3,0,0,64,192,64,64,64,5,5,5,6, + 0,0,112,136,48,64,248,5,5,5,6,0,0,240,8,112, + 8,240,5,5,5,6,0,0,48,80,144,248,16,5,5,5, + 6,0,0,248,128,240,8,240,5,5,5,6,0,0,120,128, + 240,136,112,5,5,5,6,0,0,248,8,16,32,64,5,5, + 5,6,0,0,112,136,112,136,112,5,5,5,6,0,0,112, + 136,120,8,240}; +/* + Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 + Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 7 h= 7 x= 1 y= 4 dx= 8 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 9 h=10 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 6 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_chikitar[1032] U8G_SECTION(".progmem.u8g_font_chikitar") = { + 0,9,10,0,254,5,1,107,2,195,32,127,254,6,254,6, + 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, + 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, + 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, + 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, + 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, + 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, + 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, + 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, + 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, + 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, + 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, + 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, + 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, + 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, + 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, + 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, + 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, + 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, + 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, + 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, + 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, + 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, + 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, + 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, + 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, + 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, + 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, + 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, + 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, + 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, + 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, + 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, + 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, + 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, + 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, + 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, + 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, + 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, + 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, + 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, + 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, + 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, + 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, + 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, + 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, + 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, + 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, + 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, + 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, + 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, + 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, + 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, + 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, + 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, + 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, + 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, + 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, + 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, + 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, + 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, + 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, + 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, + 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, + 3,6,0,1,64,168,16,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 6, '1' Height: 7 + Calculated Max Values w= 7 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 + Font Bounding box w=12 h=16 x=-3 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB08[2425] U8G_SECTION(".progmem.u8g_font_courB08") = { + 0,12,16,253,252,6,1,146,3,13,32,255,254,9,254,7, + 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, + 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, + 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, + 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, + 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, + 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, + 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, + 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, + 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, + 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, + 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, + 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, + 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, + 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, + 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, + 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, + 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, + 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, + 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, + 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, + 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, + 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, + 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, + 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, + 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, + 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, + 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, + 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, + 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, + 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, + 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, + 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, + 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, + 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, + 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, + 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, + 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, + 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, + 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, + 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, + 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, + 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, + 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, + 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, + 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, + 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, + 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, + 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, + 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, + 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, + 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, + 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, + 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, + 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, + 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, + 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, + 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, + 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, + 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, + 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, + 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, + 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, + 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, + 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, + 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, + 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, + 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, + 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, + 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, + 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, + 5,2,2,6,0,3,104,176,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,6,0,1,2, + 7,7,6,1,254,192,0,192,192,192,192,192,5,8,8,6, + 0,255,32,32,120,200,192,120,32,32,6,7,7,6,0,0, + 56,104,32,248,32,100,248,5,5,5,6,0,1,136,112,80, + 112,136,6,7,7,6,0,0,204,72,252,48,252,48,120,1, + 9,9,6,2,254,128,128,128,128,0,128,128,128,128,5,8, + 8,6,0,255,120,72,96,144,72,48,144,240,3,1,1,6, + 1,5,160,6,7,7,6,0,0,48,72,180,164,180,72,48, + 4,5,5,6,1,2,224,16,208,0,240,7,5,5,6,255, + 0,54,108,216,108,54,5,3,3,6,0,2,248,8,8,5, + 1,1,6,0,3,248,7,7,7,6,0,0,56,68,186,178, + 170,68,56,4,1,1,6,0,5,240,4,3,3,6,0,4, + 96,144,96,5,6,6,6,0,0,32,32,248,32,0,248,3, + 4,4,6,1,3,96,160,64,224,3,4,4,6,1,3,224, + 64,32,192,2,2,2,6,2,5,64,128,7,7,7,6,255, + 254,236,108,108,108,126,64,64,6,8,8,6,0,255,124,168, + 168,104,40,40,40,108,2,1,1,6,1,3,192,3,3,3, + 6,1,254,64,32,192,3,4,4,6,1,3,192,64,64,224, + 4,5,5,6,1,2,96,144,96,0,240,7,5,5,6,255, + 0,216,108,54,108,216,7,7,7,6,255,0,192,68,72,244, + 44,94,4,7,7,7,6,255,0,192,68,72,246,42,68,14, + 7,7,7,6,255,0,224,68,40,212,44,94,4,5,7,7, + 6,0,254,48,0,48,48,96,200,112,7,9,9,6,255,0, + 32,16,0,120,56,40,124,108,238,7,9,9,6,255,0,16, + 32,0,120,56,40,124,108,238,7,9,9,6,255,0,16,40, + 0,120,56,40,124,108,238,7,9,9,6,255,0,52,72,0, + 120,56,40,124,108,238,7,8,8,6,255,0,40,0,120,56, + 40,124,108,238,7,9,9,6,255,0,48,72,48,120,56,40, + 124,108,238,7,6,6,6,255,0,126,58,108,120,218,222,5, + 8,8,6,0,254,120,216,192,192,216,112,16,96,6,9,9, + 6,255,0,32,16,0,252,100,120,96,108,252,6,9,9,6, + 255,0,16,32,0,252,100,120,96,108,252,6,9,9,6,255, + 0,32,80,0,252,100,120,96,108,252,6,8,8,6,255,0, + 80,0,252,100,120,96,108,252,4,9,9,6,0,0,64,32, + 0,240,96,96,96,96,240,4,9,9,6,0,0,32,64,0, + 240,96,96,96,96,240,4,9,9,6,0,0,64,160,0,240, + 96,96,96,96,240,4,8,8,6,0,0,160,0,240,96,96, + 96,96,240,6,6,6,6,255,0,248,108,244,100,108,248,7, + 9,9,6,255,0,52,72,0,238,100,116,124,108,236,5,9, + 9,6,0,0,64,32,0,112,216,216,216,216,112,5,9,9, + 6,0,0,32,64,0,112,216,216,216,216,112,5,9,9,6, + 0,0,32,80,0,112,216,216,216,216,112,5,9,9,6,0, + 0,104,144,0,112,216,216,216,216,112,5,8,8,6,0,0, + 80,0,112,216,216,216,216,112,5,5,5,6,0,1,136,80, + 32,80,136,7,6,6,6,255,0,58,108,124,108,108,184,7, + 9,9,6,255,0,32,16,0,238,108,108,108,108,56,7,9, + 9,6,255,0,8,16,0,238,108,108,108,108,56,7,9,9, + 6,255,0,16,40,0,238,108,108,108,108,56,7,8,8,6, + 255,0,40,0,238,108,108,108,108,56,7,9,9,6,255,0, + 4,8,0,230,102,60,24,24,60,6,6,6,6,255,0,224, + 120,108,108,120,224,7,6,6,6,255,0,56,104,124,102,102, + 236,6,8,8,6,0,0,32,16,0,112,152,120,216,252,6, + 8,8,6,0,0,16,32,0,112,152,120,216,252,6,8,8, + 6,0,0,32,80,0,112,152,120,216,252,6,8,8,6,0, + 0,104,144,0,112,152,120,216,252,6,7,7,6,0,0,80, + 0,112,152,120,216,252,6,9,9,6,0,0,48,72,48,0, + 112,152,120,216,252,6,5,5,6,255,0,108,180,124,176,220, + 5,7,7,6,0,254,112,216,192,216,112,16,96,5,8,8, + 6,0,0,64,32,0,112,216,248,192,120,5,8,8,6,0, + 0,32,64,0,112,216,248,192,120,5,8,8,6,0,0,32, + 80,0,112,216,248,192,120,5,7,7,6,0,0,80,0,112, + 216,248,192,120,6,8,8,6,0,0,32,16,0,112,48,48, + 48,252,6,8,8,6,0,0,16,32,0,112,48,48,48,252, + 6,8,8,6,0,0,32,80,0,112,48,48,48,252,6,7, + 7,6,0,0,80,0,112,48,48,48,252,5,8,8,6,0, + 0,208,96,176,120,216,216,216,112,7,8,8,6,255,0,52, + 72,0,216,108,108,108,110,5,8,8,6,0,0,64,32,0, + 112,216,216,216,112,5,8,8,6,0,0,32,64,0,112,216, + 216,216,112,5,8,8,6,0,0,32,80,0,112,216,216,216, + 112,5,8,8,6,0,0,104,144,0,112,216,216,216,112,5, + 7,7,6,0,0,80,0,112,216,216,216,112,5,5,5,6, + 0,1,32,0,248,0,32,5,7,7,6,0,255,8,112,216, + 248,216,112,128,7,8,8,6,255,0,32,16,0,236,108,108, + 108,62,7,8,8,6,255,0,16,32,0,236,108,108,108,62, + 7,8,8,6,255,0,16,40,0,236,108,108,108,62,7,7, + 7,6,255,0,40,0,236,108,108,108,62,7,10,10,6,255, + 254,8,16,0,238,108,108,40,56,48,240,6,9,9,6,255, + 254,224,96,120,108,108,108,120,96,240,7,9,9,6,255,254, + 40,0,238,108,108,40,56,48,240}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 6, '1' Height: 7 + Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 + Font Bounding box w=12 h=16 x=-3 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB08r[1145] U8G_SECTION(".progmem.u8g_font_courB08r") = { + 0,12,16,253,252,6,1,146,3,13,32,127,254,8,254,7, + 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, + 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, + 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, + 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, + 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, + 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, + 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, + 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, + 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, + 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, + 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, + 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, + 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, + 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, + 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, + 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, + 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, + 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, + 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, + 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, + 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, + 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, + 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, + 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, + 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, + 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, + 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, + 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, + 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, + 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, + 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, + 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, + 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, + 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, + 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, + 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, + 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, + 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, + 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, + 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, + 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, + 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, + 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, + 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, + 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, + 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, + 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, + 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, + 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, + 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, + 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, + 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, + 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, + 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, + 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, + 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, + 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, + 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, + 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, + 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, + 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, + 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, + 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, + 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, + 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, + 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, + 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, + 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, + 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, + 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, + 5,2,2,6,0,3,104,176,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 9, '1' Height: 10 + Calculated Max Values w=10 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=12 len=26 + Font Bounding box w=13 h=21 x=-2 y=-6 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB10[3355] U8G_SECTION(".progmem.u8g_font_courB10") = { + 0,13,21,254,250,9,1,222,4,32,32,255,253,12,252,10, + 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, + 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, + 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, + 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, + 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, + 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, + 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, + 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, + 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, + 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, + 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, + 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, + 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, + 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, + 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, + 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, + 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, + 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, + 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, + 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, + 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, + 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, + 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, + 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, + 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, + 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, + 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, + 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, + 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, + 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, + 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, + 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, + 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, + 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, + 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, + 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, + 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, + 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, + 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, + 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, + 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, + 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, + 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, + 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, + 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, + 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, + 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, + 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, + 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, + 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, + 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, + 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, + 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, + 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, + 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, + 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, + 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, + 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, + 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, + 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, + 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, + 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, + 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, + 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, + 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, + 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, + 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, + 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, + 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, + 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, + 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, + 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, + 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, + 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, + 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, + 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, + 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, + 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, + 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, + 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, + 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, + 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, + 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, + 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, + 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, + 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, + 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, + 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, + 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, + 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, + 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, + 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, + 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, + 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, + 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, + 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, + 0,0,9,0,1,2,9,9,9,3,254,192,192,0,128,192, + 192,192,192,192,6,10,10,9,1,255,48,48,124,204,192,192, + 204,120,48,48,7,9,9,9,1,0,60,102,96,96,248,96, + 96,102,252,7,6,6,9,1,1,198,124,198,198,124,198,10, + 9,18,9,0,0,243,192,97,128,51,0,30,0,63,0,12, + 0,63,0,12,0,63,0,2,11,11,9,3,254,192,192,192, + 192,192,0,192,192,192,192,192,8,11,11,9,0,255,62,98, + 96,240,140,227,57,15,6,70,124,4,2,2,9,2,8,144, + 144,9,8,16,9,0,1,28,0,99,0,205,128,209,128,209, + 128,205,128,99,0,28,0,5,7,7,9,2,2,112,24,120, + 216,104,0,248,7,5,5,9,1,1,54,108,216,108,54,7, + 3,3,9,1,2,254,2,2,6,1,1,9,1,4,252,9, + 8,16,9,0,1,62,0,99,0,217,128,213,128,217,128,213, + 128,99,0,62,0,4,1,1,9,2,8,240,4,4,4,9, + 2,5,96,144,144,96,7,7,7,9,1,1,16,16,254,16, + 16,0,254,5,6,6,9,2,4,112,152,24,48,96,248,5, + 6,6,9,2,4,112,152,48,24,152,112,3,2,2,9,3, + 7,96,192,9,10,20,9,0,253,231,0,99,0,99,0,99, + 0,99,0,103,0,123,128,96,0,96,0,96,0,7,11,11, + 9,1,255,126,212,148,148,212,116,20,20,20,20,126,2,2, + 2,9,3,3,192,192,3,4,4,9,2,253,64,96,32,224, + 4,6,6,9,3,4,96,224,96,96,96,240,5,7,7,9, + 2,2,112,216,136,216,112,0,248,7,5,5,9,1,1,216, + 108,54,108,216,9,10,20,9,0,0,96,0,224,128,97,0, + 98,0,101,0,251,0,23,0,43,0,79,128,131,0,9,10, + 20,9,0,0,96,0,224,128,97,0,98,0,103,0,253,128, + 17,128,35,0,70,0,15,128,10,10,20,9,255,0,112,0, + 152,64,48,128,25,0,154,128,117,128,11,128,21,128,39,192, + 65,128,6,9,9,9,1,254,48,48,0,48,112,192,196,204, + 124,9,12,24,9,0,0,24,0,12,0,0,0,124,0,28, + 0,54,0,54,0,34,0,99,0,127,0,99,0,247,128,9, + 12,24,9,0,0,12,0,24,0,0,0,124,0,28,0,54, + 0,54,0,34,0,99,0,127,0,99,0,247,128,9,12,24, + 9,0,0,28,0,54,0,0,0,124,0,28,0,54,0,54, + 0,34,0,99,0,127,0,99,0,247,128,9,12,24,9,0, + 0,26,0,44,0,0,0,124,0,28,0,54,0,54,0,34, + 0,99,0,127,0,99,0,247,128,9,12,24,9,0,0,36, + 0,36,0,0,0,124,0,28,0,54,0,54,0,34,0,99, + 0,127,0,99,0,247,128,9,12,24,9,0,0,24,0,36, + 0,24,0,126,0,28,0,54,0,54,0,34,0,99,0,127, + 0,99,0,247,128,9,9,18,9,0,0,63,128,28,128,28, + 0,61,0,47,0,109,0,124,0,76,128,223,128,7,13,13, + 9,1,252,58,110,198,192,192,192,192,102,60,16,24,8,56, + 8,12,12,9,0,0,24,12,0,255,99,99,104,120,104,99, + 99,255,8,12,12,9,0,0,12,24,0,255,99,99,104,120, + 104,99,99,255,8,12,12,9,0,0,28,54,0,255,99,99, + 104,120,104,99,99,255,8,12,12,9,0,0,36,36,0,255, + 99,99,104,120,104,99,99,255,6,12,12,9,1,0,96,48, + 0,252,48,48,48,48,48,48,48,252,6,12,12,9,1,0, + 24,48,0,252,48,48,48,48,48,48,48,252,6,12,12,9, + 1,0,56,108,0,252,48,48,48,48,48,48,48,252,6,12, + 12,9,1,0,72,72,0,252,48,48,48,48,48,48,48,252, + 8,9,9,9,0,0,252,102,99,99,243,99,99,102,252,9, + 12,24,9,0,0,26,0,44,0,0,0,231,128,99,0,115, + 0,115,0,107,0,107,0,103,0,103,0,243,0,8,12,12, + 9,0,0,48,24,0,60,102,195,195,195,195,195,102,60,8, + 12,12,9,0,0,12,24,0,60,102,195,195,195,195,195,102, + 60,8,12,12,9,0,0,56,108,0,60,102,195,195,195,195, + 195,102,60,8,12,12,9,0,0,52,88,0,60,102,195,195, + 195,195,195,102,60,8,12,12,9,0,0,36,36,0,60,102, + 195,195,195,195,195,102,60,6,7,7,9,1,1,132,204,120, + 48,120,204,132,8,10,10,9,0,0,1,62,102,203,203,211, + 211,227,102,188,9,12,24,9,0,0,24,0,12,0,0,0, + 247,128,99,0,99,0,99,0,99,0,99,0,99,0,99,0, + 62,0,9,12,24,9,0,0,12,0,24,0,0,0,247,128, + 99,0,99,0,99,0,99,0,99,0,99,0,99,0,62,0, + 9,12,24,9,0,0,28,0,54,0,0,0,247,128,99,0, + 99,0,99,0,99,0,99,0,99,0,99,0,62,0,9,12, + 24,9,0,0,18,0,18,0,0,0,247,128,99,0,99,0, + 99,0,99,0,99,0,99,0,99,0,62,0,10,12,24,9, + 255,0,6,0,12,0,0,0,243,192,97,128,51,0,51,0, + 30,0,12,0,12,0,12,0,63,0,8,9,9,9,0,0, + 240,96,126,99,99,102,124,96,240,8,9,9,9,0,0,60, + 102,102,108,102,99,99,107,238,8,10,10,9,0,0,48,24, + 0,124,6,6,126,198,206,119,8,10,10,9,0,0,12,24, + 0,124,6,6,126,198,206,119,8,10,10,9,0,0,56,108, + 0,124,6,6,126,198,206,119,8,10,10,9,0,0,52,88, + 0,124,6,6,126,198,206,119,8,10,10,9,0,0,36,36, + 0,124,6,6,126,198,206,119,8,10,10,9,0,0,24,36, + 24,124,6,6,126,198,206,119,9,7,14,9,0,0,119,0, + 29,128,8,128,127,128,200,0,205,128,119,0,8,11,11,9, + 0,252,61,103,195,192,192,99,62,16,24,8,56,8,10,10, + 9,0,0,48,24,0,60,102,195,255,192,103,62,8,10,10, + 9,0,0,12,24,0,60,102,195,255,192,103,62,8,10,10, + 9,0,0,28,54,0,60,102,195,255,192,103,62,8,10,10, + 9,0,0,36,36,0,60,102,195,255,192,103,62,6,10,10, + 9,1,0,96,48,0,240,48,48,48,48,48,252,6,10,10, + 9,1,0,24,48,0,240,48,48,48,48,48,252,6,10,10, + 9,1,0,112,216,0,240,48,48,48,48,48,252,6,10,10, + 9,1,0,72,72,0,240,48,48,48,48,48,252,8,10,10, + 9,0,0,236,56,204,62,102,195,195,195,102,60,9,10,20, + 9,0,0,26,0,44,0,0,0,238,0,115,0,99,0,99, + 0,99,0,99,0,247,128,8,10,10,9,0,0,48,24,0, + 60,102,195,195,195,102,60,8,10,10,9,0,0,12,24,0, + 60,102,195,195,195,102,60,8,10,10,9,0,0,28,54,0, + 60,102,195,195,195,102,60,8,10,10,9,0,0,52,88,0, + 60,102,195,195,195,102,60,8,10,10,9,0,0,36,36,0, + 60,102,195,195,195,102,60,8,7,7,9,0,1,24,24,0, + 255,0,24,24,8,7,7,9,0,0,61,102,207,219,243,102, + 188,9,10,20,9,0,0,24,0,12,0,0,0,231,0,99, + 0,99,0,99,0,99,0,103,0,59,128,9,10,20,9,0, + 0,12,0,24,0,0,0,231,0,99,0,99,0,99,0,99, + 0,103,0,59,128,9,10,20,9,0,0,28,0,54,0,0, + 0,231,0,99,0,99,0,99,0,99,0,103,0,59,128,9, + 10,20,9,0,0,36,0,36,0,0,0,231,0,99,0,99, + 0,99,0,99,0,103,0,59,128,9,13,26,9,0,253,6, + 0,12,0,0,0,227,128,99,0,99,0,54,0,54,0,28, + 0,28,0,24,0,24,0,124,0,8,12,12,9,0,253,224, + 96,110,115,99,99,99,115,110,96,96,240,9,13,26,9,0, + 253,18,0,18,0,0,0,227,128,99,0,99,0,54,0,54, + 0,28,0,28,0,24,0,24,0,124,0}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 9, '1' Height: 10 + Calculated Max Values w=10 h=13 x= 3 y= 7 dx= 9 dy= 0 ascent=11 len=20 + Font Bounding box w=13 h=21 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =11 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB10r[1551] U8G_SECTION(".progmem.u8g_font_courB10r") = { + 0,13,21,254,250,9,1,222,4,32,32,127,253,11,253,10, + 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, + 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, + 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, + 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, + 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, + 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, + 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, + 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, + 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, + 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, + 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, + 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, + 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, + 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, + 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, + 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, + 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, + 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, + 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, + 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, + 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, + 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, + 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, + 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, + 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, + 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, + 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, + 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, + 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, + 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, + 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, + 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, + 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, + 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, + 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, + 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, + 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, + 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, + 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, + 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, + 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, + 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, + 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, + 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, + 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, + 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, + 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, + 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, + 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, + 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, + 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, + 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, + 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, + 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, + 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, + 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, + 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, + 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, + 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, + 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, + 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, + 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, + 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, + 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, + 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, + 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, + 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, + 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, + 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, + 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, + 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, + 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, + 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, + 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, + 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, + 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, + 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, + 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, + 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, + 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, + 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, + 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, + 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, + 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, + 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, + 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, + 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, + 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, + 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, + 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, + 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, + 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, + 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, + 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, + 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, + 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 11 + Calculated Max Values w=11 h=14 x= 4 y= 9 dx=10 dy= 0 ascent=14 len=28 + Font Bounding box w=16 h=24 x=-3 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB12[3959] U8G_SECTION(".progmem.u8g_font_courB12") = { + 0,16,24,253,250,10,2,51,4,246,32,255,253,14,253,11, + 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, + 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, + 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, + 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, + 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, + 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, + 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, + 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, + 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, + 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, + 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, + 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, + 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, + 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, + 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, + 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, + 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, + 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, + 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, + 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, + 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, + 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, + 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, + 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, + 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, + 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, + 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, + 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, + 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, + 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, + 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, + 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, + 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, + 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, + 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, + 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, + 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, + 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, + 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, + 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, + 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, + 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, + 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, + 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, + 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, + 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, + 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, + 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, + 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, + 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, + 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, + 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, + 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, + 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, + 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, + 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, + 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, + 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, + 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, + 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, + 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, + 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, + 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, + 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, + 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, + 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, + 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, + 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, + 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, + 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, + 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, + 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, + 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, + 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, + 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, + 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, + 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, + 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, + 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, + 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, + 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, + 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, + 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, + 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, + 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, + 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, + 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, + 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, + 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, + 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, + 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, + 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, + 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, + 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, + 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, + 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, + 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, + 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, + 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, + 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, + 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, + 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, + 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, + 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, + 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, + 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, + 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, + 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, + 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, + 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, + 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, + 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, + 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, + 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, + 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,10,0,1,2,10,10,10,4,253,192,192,0, + 192,192,192,192,192,192,192,7,10,10,10,1,0,24,24,62, + 102,192,192,102,60,24,24,8,10,10,10,1,0,30,51,48, + 48,252,252,48,51,227,254,8,7,7,10,1,1,195,126,102, + 66,102,126,195,10,10,20,10,0,0,243,192,97,128,51,0, + 51,0,30,0,63,0,12,0,63,0,12,0,63,0,2,13, + 13,10,4,254,192,192,192,192,192,192,0,192,192,192,192,192, + 192,10,12,24,10,0,255,31,128,49,128,49,128,120,0,206, + 0,195,128,112,192,28,192,7,128,99,0,99,0,126,0,5, + 2,2,10,3,8,216,216,10,10,20,10,0,0,12,0,63, + 0,97,128,78,128,216,192,216,192,78,128,97,128,63,0,12, + 0,6,7,7,10,2,3,120,12,124,204,124,0,252,9,7, + 14,10,0,0,25,128,51,0,102,0,204,0,102,0,51,0, + 25,128,8,5,5,10,1,2,255,255,3,3,3,7,2,2, + 10,1,4,254,254,10,10,20,10,0,0,12,0,63,0,97, + 128,92,128,214,192,220,192,82,128,97,128,63,0,12,0,5, + 1,1,10,2,9,248,5,5,5,10,2,6,112,216,136,216, + 112,8,9,9,10,1,0,24,24,255,255,24,24,0,255,255, + 5,6,6,10,2,5,112,216,48,96,200,248,5,6,6,10, + 2,5,112,216,48,24,216,112,4,3,3,10,3,8,48,96, + 192,9,10,20,10,0,253,231,0,99,0,99,0,99,0,99, + 0,103,0,123,128,96,0,96,0,96,0,9,12,24,10,0, + 255,63,128,91,0,219,0,219,0,219,0,91,0,59,0,27, + 0,27,0,27,0,27,0,63,128,3,2,2,10,3,4,224, + 224,4,4,4,10,3,253,32,96,48,240,6,6,6,10,2, + 5,48,240,48,48,48,252,6,7,7,10,2,3,120,204,204, + 204,120,0,252,9,7,14,10,0,0,204,0,102,0,51,0, + 25,128,51,0,102,0,204,0,10,11,22,10,0,0,32,0, + 225,0,99,0,98,0,102,0,252,128,25,128,19,128,54,128, + 111,192,65,128,10,11,22,10,0,0,32,0,224,128,97,128, + 99,0,102,0,255,128,10,192,25,128,51,0,102,64,71,192, + 11,11,22,10,0,0,112,0,216,128,49,128,27,0,218,0, + 118,64,12,192,9,192,27,64,55,224,32,192,7,10,10,10, + 1,253,24,24,0,24,24,112,192,198,198,124,10,14,28,10, + 0,0,48,0,24,0,12,0,0,0,60,0,12,0,30,0, + 18,0,51,0,51,0,63,0,97,128,97,128,243,192,10,14, + 28,10,0,0,6,0,12,0,24,0,0,0,60,0,12,0, + 30,0,18,0,51,0,51,0,63,0,97,128,97,128,243,192, + 10,14,28,10,0,0,12,0,30,0,51,0,0,0,60,0, + 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, + 243,192,10,13,26,10,0,0,59,0,110,0,0,0,60,0, + 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, + 243,192,10,13,26,10,0,0,54,0,54,0,0,0,60,0, + 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, + 243,192,10,14,28,10,0,0,28,0,54,0,54,0,28,0, + 60,0,12,0,30,0,18,0,51,0,51,0,63,0,97,128, + 97,128,243,192,10,10,20,10,0,0,127,192,60,192,44,0, + 45,0,111,0,77,0,124,0,76,192,204,192,255,192,9,13, + 26,10,0,253,30,128,115,128,97,128,192,0,192,0,192,0, + 192,0,97,128,115,128,30,0,24,0,12,0,60,0,8,14, + 14,10,1,0,48,24,12,0,255,99,96,100,124,100,96,99, + 99,255,8,14,14,10,1,0,6,12,24,0,255,99,96,100, + 124,100,96,99,99,255,8,14,14,10,1,0,24,60,102,0, + 255,99,96,100,124,100,96,99,99,255,8,13,13,10,1,0, + 54,54,0,255,99,96,100,124,100,96,99,99,255,8,14,14, + 10,1,0,48,24,12,0,255,24,24,24,24,24,24,24,24, + 255,8,14,14,10,1,0,12,24,48,0,255,24,24,24,24, + 24,24,24,24,255,8,14,14,10,1,0,24,60,102,0,255, + 24,24,24,24,24,24,24,24,255,8,13,13,10,1,0,54, + 54,0,255,24,24,24,24,24,24,24,24,255,9,10,20,10, + 0,0,252,0,103,0,99,0,97,128,249,128,97,128,97,128, + 99,0,103,0,252,0,10,13,26,10,0,0,59,0,110,0, + 0,0,247,192,113,128,121,128,105,128,109,128,109,128,101,128, + 103,128,99,128,251,128,9,14,28,10,0,0,48,0,24,0, + 12,0,0,0,62,0,99,0,99,0,193,128,193,128,193,128, + 193,128,99,0,99,0,62,0,9,14,28,10,0,0,6,0, + 12,0,24,0,0,0,62,0,99,0,99,0,193,128,193,128, + 193,128,193,128,99,0,99,0,62,0,9,14,28,10,0,0, + 12,0,30,0,51,0,0,0,62,0,99,0,99,0,193,128, + 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, + 0,0,59,0,110,0,0,0,62,0,99,0,99,0,193,128, + 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, + 0,0,54,0,54,0,0,0,62,0,99,0,99,0,193,128, + 193,128,193,128,193,128,99,0,99,0,62,0,8,7,7,10, + 1,1,227,118,60,24,60,110,199,9,12,24,10,0,255,0, + 128,63,128,99,0,103,0,197,128,205,128,217,128,209,128,115, + 0,99,0,254,0,128,0,10,14,28,10,0,0,48,0,24, + 0,12,0,0,0,243,192,97,128,97,128,97,128,97,128,97, + 128,97,128,97,128,51,0,30,0,10,14,28,10,0,0,3, + 0,6,0,12,0,0,0,243,192,97,128,97,128,97,128,97, + 128,97,128,97,128,97,128,51,0,30,0,10,14,28,10,0, + 0,12,0,30,0,51,0,0,0,243,192,97,128,97,128,97, + 128,97,128,97,128,97,128,97,128,51,0,30,0,10,13,26, + 10,0,0,27,0,27,0,0,0,243,192,97,128,97,128,97, + 128,97,128,97,128,97,128,97,128,51,0,30,0,10,14,28, + 10,0,0,3,0,6,0,12,0,0,0,243,192,97,128,51, + 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,9, + 10,20,10,0,0,240,0,96,0,126,0,99,0,97,128,99, + 0,126,0,96,0,96,0,240,0,8,11,11,10,0,0,60, + 102,102,100,108,102,99,99,99,122,236,8,11,11,10,1,0, + 48,24,12,0,60,102,6,126,198,198,123,8,11,11,10,1, + 0,6,12,24,0,60,102,6,126,198,198,123,8,11,11,10, + 1,0,24,60,102,0,60,102,6,126,198,198,123,8,10,10, + 10,1,0,59,110,0,60,102,6,126,198,198,123,8,10,10, + 10,1,0,54,54,0,60,102,6,126,198,198,123,8,12,12, + 10,1,0,28,54,54,28,0,60,102,6,126,198,198,123,10, + 7,14,10,255,0,59,128,108,192,12,192,127,192,204,0,204, + 192,119,128,8,10,10,10,1,253,61,103,195,192,192,227,126, + 24,12,60,8,11,11,10,1,0,48,24,12,0,60,102,195, + 255,192,99,62,8,11,11,10,1,0,6,12,24,0,60,102, + 195,255,192,99,62,8,11,11,10,1,0,24,60,102,0,60, + 102,195,255,192,99,62,8,10,10,10,1,0,54,54,0,60, + 102,195,255,192,99,62,8,11,11,10,1,0,96,48,24,0, + 120,24,24,24,24,24,255,8,11,11,10,1,0,6,12,24, + 0,120,24,24,24,24,24,255,8,11,11,10,1,0,24,60, + 102,0,120,24,24,24,24,24,255,8,10,10,10,1,0,108, + 108,0,120,24,24,24,24,24,255,8,12,12,10,1,0,224, + 118,28,60,198,62,103,227,195,195,102,60,9,10,20,10,0, + 0,59,0,110,0,0,0,238,0,115,0,99,0,99,0,99, + 0,99,0,247,128,8,11,11,10,1,0,48,24,12,0,60, + 102,195,195,195,102,60,8,11,11,10,1,0,12,24,48,0, + 60,102,195,195,195,102,60,8,11,11,10,1,0,24,60,102, + 0,60,102,195,195,195,102,60,8,10,10,10,1,0,59,110, + 0,60,102,195,195,195,102,60,8,10,10,10,1,0,108,108, + 0,60,102,195,195,195,102,60,8,8,8,10,1,1,24,24, + 0,255,255,0,24,24,8,9,9,10,1,255,3,63,102,207, + 219,243,102,252,192,9,11,22,10,0,0,48,0,24,0,12, + 0,0,0,231,0,99,0,99,0,99,0,99,0,103,0,59, + 128,9,11,22,10,0,0,12,0,24,0,48,0,0,0,231, + 0,99,0,99,0,99,0,99,0,103,0,59,128,9,11,22, + 10,0,0,24,0,60,0,102,0,0,0,231,0,99,0,99, + 0,99,0,99,0,103,0,59,128,9,10,20,10,0,0,54, + 0,54,0,0,0,231,0,99,0,99,0,99,0,99,0,103, + 0,59,128,10,14,28,10,0,253,6,0,12,0,24,0,0, + 0,243,192,97,128,51,0,51,0,30,0,30,0,12,0,24, + 0,24,0,124,0,9,14,28,10,0,253,224,0,96,0,96, + 0,96,0,110,0,115,0,97,128,97,128,97,128,115,0,110, + 0,96,0,96,0,248,0,10,13,26,10,0,253,54,0,54, + 0,0,0,243,192,97,128,51,0,51,0,30,0,30,0,12, + 0,12,0,24,0,124,0}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 11 + Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 + Font Bounding box w=16 h=24 x=-3 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB12r[1857] U8G_SECTION(".progmem.u8g_font_courB12r") = { + 0,16,24,253,250,10,2,51,4,246,32,127,253,12,253,11, + 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, + 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, + 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, + 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, + 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, + 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, + 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, + 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, + 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, + 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, + 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, + 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, + 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, + 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, + 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, + 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, + 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, + 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, + 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, + 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, + 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, + 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, + 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, + 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, + 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, + 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, + 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, + 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, + 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, + 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, + 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, + 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, + 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, + 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, + 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, + 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, + 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, + 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, + 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, + 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, + 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, + 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, + 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, + 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, + 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, + 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, + 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, + 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, + 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, + 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, + 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, + 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, + 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, + 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, + 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, + 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, + 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, + 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, + 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, + 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, + 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, + 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, + 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, + 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, + 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, + 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, + 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, + 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, + 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, + 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, + 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, + 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, + 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, + 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, + 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, + 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, + 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, + 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, + 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, + 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, + 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, + 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, + 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, + 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, + 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, + 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, + 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, + 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, + 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, + 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, + 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, + 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, + 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, + 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, + 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, + 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, + 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, + 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, + 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, + 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, + 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, + 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, + 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, + 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, + 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, + 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, + 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, + 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, + 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, + 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, + 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, + 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, + 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, + 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, + 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, + 255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=12 h=17 x= 4 y= 9 dx=11 dy= 0 ascent=15 len=34 + Font Bounding box w=17 h=26 x=-4 y=-7 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =15 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB14[4784] U8G_SECTION(".progmem.u8g_font_courB14") = { + 0,17,26,252,249,11,2,101,5,155,32,255,252,15,251,12, + 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, + 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, + 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, + 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, + 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, + 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, + 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, + 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, + 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, + 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, + 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, + 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, + 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, + 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, + 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, + 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, + 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, + 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, + 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, + 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, + 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, + 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, + 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, + 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, + 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, + 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, + 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, + 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, + 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, + 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, + 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, + 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, + 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, + 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, + 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, + 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, + 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, + 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, + 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, + 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, + 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, + 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, + 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, + 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, + 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, + 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, + 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, + 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, + 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, + 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, + 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, + 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, + 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, + 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, + 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, + 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, + 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, + 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, + 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, + 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, + 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, + 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, + 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, + 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, + 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, + 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, + 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, + 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, + 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, + 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, + 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, + 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, + 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, + 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, + 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, + 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, + 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, + 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, + 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, + 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, + 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, + 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, + 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, + 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, + 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, + 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, + 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, + 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, + 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, + 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, + 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, + 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, + 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, + 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, + 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, + 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, + 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, + 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, + 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, + 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, + 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, + 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, + 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, + 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, + 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, + 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, + 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, + 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, + 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, + 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, + 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, + 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, + 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, + 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, + 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, + 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, + 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, + 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, + 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, + 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, + 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, + 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, + 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, + 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, + 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, + 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, + 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, + 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, + 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, + 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, + 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, + 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, + 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, + 11,1,4,115,255,222,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,11,0,1,3,12,12, + 11,4,252,192,192,0,192,192,224,224,224,224,224,224,224,8, + 13,13,11,1,0,24,24,24,63,127,227,192,192,227,127,62, + 24,24,10,11,22,11,0,0,62,0,127,0,99,0,96,0, + 48,0,252,0,252,0,48,0,96,192,255,192,255,128,8,9, + 9,11,1,1,195,255,126,195,195,195,126,255,195,10,11,22, + 11,0,0,243,192,243,192,97,128,51,0,30,0,63,0,12, + 0,63,0,12,0,63,0,63,0,2,16,16,11,4,253,192, + 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,8, + 14,14,11,1,254,63,115,99,96,248,222,199,227,123,31,6, + 198,206,252,6,2,2,11,2,9,204,204,11,12,24,11,0, + 0,14,0,63,128,113,192,110,192,219,96,216,96,216,96,219, + 96,110,192,113,192,63,128,14,0,6,8,8,11,2,3,112, + 24,120,216,216,108,0,252,9,7,14,11,0,1,25,128,51, + 0,102,0,204,0,102,0,51,0,25,128,9,4,8,11,1, + 4,255,128,255,128,1,128,1,128,8,2,2,11,1,4,255, + 255,11,12,24,11,0,0,14,0,63,128,113,192,126,192,219, + 96,219,96,222,96,223,96,123,224,112,192,63,128,14,0,5, + 2,2,11,2,9,248,248,5,5,5,11,2,6,112,136,136, + 136,112,10,10,20,11,0,0,12,0,12,0,12,0,255,192, + 255,192,12,0,12,0,0,0,255,192,255,192,6,7,7,11, + 2,5,120,204,12,24,48,100,252,6,7,7,11,2,5,120, + 204,12,56,12,204,120,4,3,3,11,4,9,48,96,192,10, + 13,26,11,0,252,231,128,231,128,97,128,97,128,97,128,97, + 128,99,128,127,192,125,192,96,0,96,0,96,0,96,0,8, + 14,14,11,1,254,63,106,202,202,202,106,58,10,10,10,10, + 10,10,59,2,3,3,11,4,3,192,192,192,4,5,5,11, + 3,252,64,96,48,240,224,6,7,7,11,2,5,48,240,48, + 48,48,48,252,6,8,8,11,2,3,120,204,132,132,204,120, + 0,252,9,7,14,11,1,1,204,0,102,0,51,0,25,128, + 51,0,102,0,204,0,11,12,24,11,0,0,48,0,240,32, + 48,96,48,192,49,128,51,64,254,192,13,192,26,192,52,192, + 103,224,64,192,11,12,24,11,0,0,48,0,240,32,48,96, + 48,192,49,128,51,192,255,96,12,96,24,192,49,128,99,32, + 71,224,11,12,24,11,0,0,120,0,204,32,12,96,56,192, + 13,128,207,64,126,192,13,192,26,192,52,192,103,224,64,192, + 7,12,12,11,2,252,24,24,0,24,24,24,120,224,192,198, + 254,124,12,15,30,11,255,0,24,0,12,0,6,0,0,0, + 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, + 48,192,249,240,249,240,12,15,30,11,255,0,3,0,6,0, + 12,0,0,0,62,0,63,0,15,0,15,0,25,128,25,128, + 63,192,63,192,48,192,249,240,249,240,12,15,30,11,255,0, + 6,0,15,0,25,128,0,0,62,0,63,0,15,0,15,0, + 25,128,25,128,63,192,63,192,48,192,249,240,249,240,12,14, + 28,11,255,0,29,128,55,0,0,0,62,0,63,0,15,0, + 15,0,25,128,25,128,63,192,63,192,48,192,249,240,249,240, + 12,14,28,11,255,0,25,128,25,128,0,0,62,0,63,0, + 15,0,15,0,25,128,25,128,63,192,63,192,48,192,249,240, + 249,240,12,15,30,11,255,0,6,0,9,0,9,0,6,0, + 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, + 48,192,249,240,249,240,11,11,22,11,0,0,63,224,63,224, + 30,96,54,0,55,192,39,192,126,0,126,0,102,96,239,224, + 239,224,10,16,32,11,0,251,30,192,127,192,97,192,192,192, + 192,0,192,0,192,0,192,0,96,192,127,192,63,0,8,0, + 12,0,2,0,30,0,28,0,10,15,30,11,0,0,24,0, + 12,0,6,0,0,0,255,192,255,192,48,192,54,192,62,0, + 62,0,54,0,48,192,48,192,255,192,255,192,10,15,30,11, + 0,0,3,0,6,0,12,0,0,0,255,192,255,192,48,192, + 54,192,62,0,62,0,54,0,48,192,48,192,255,192,255,192, + 10,15,30,11,0,0,12,0,30,0,51,0,0,0,255,192, + 255,192,48,192,54,192,62,0,62,0,54,0,48,192,48,192, + 255,192,255,192,10,14,28,11,0,0,51,0,51,0,0,0, + 255,192,255,192,48,192,54,192,62,0,62,0,54,0,48,192, + 48,192,255,192,255,192,8,15,15,11,1,0,96,48,24,0, + 255,255,24,24,24,24,24,24,24,255,255,8,15,15,11,1, + 0,6,12,24,0,255,255,24,24,24,24,24,24,24,255,255, + 8,15,15,11,1,0,24,60,102,0,255,255,24,24,24,24, + 24,24,24,255,255,8,14,14,11,1,0,102,102,0,255,255, + 24,24,24,24,24,24,24,255,255,10,11,22,11,0,0,254, + 0,255,128,97,128,96,192,248,192,248,192,96,192,96,192,97, + 128,255,128,254,0,10,14,28,11,0,0,59,0,110,0,0, + 0,231,192,247,192,113,128,121,128,105,128,109,128,101,128,103, + 128,99,128,251,128,249,128,10,15,30,11,0,0,24,0,12, + 0,6,0,0,0,30,0,127,128,97,128,192,192,192,192,192, + 192,192,192,192,192,97,128,127,128,30,0,10,15,30,11,0, + 0,3,0,6,0,12,0,0,0,30,0,127,128,97,128,192, + 192,192,192,192,192,192,192,192,192,97,128,127,128,30,0,10, + 15,30,11,0,0,12,0,30,0,51,0,0,0,30,0,127, + 128,97,128,192,192,192,192,192,192,192,192,192,192,97,128,127, + 128,30,0,10,14,28,11,0,0,59,0,110,0,0,0,30, + 0,127,128,97,128,192,192,192,192,192,192,192,192,192,192,97, + 128,127,128,30,0,10,14,28,11,0,0,51,0,51,0,0, + 0,30,0,127,128,97,128,192,192,192,192,192,192,192,192,192, + 192,97,128,127,128,30,0,10,10,20,11,0,0,64,128,225, + 192,115,128,55,0,30,0,30,0,59,0,115,128,225,192,64, + 128,12,13,26,11,255,255,0,48,15,96,63,192,49,192,99, + 96,102,96,102,96,108,96,120,96,48,192,63,192,111,0,192, + 0,10,15,30,11,0,0,48,0,24,0,12,0,0,0,251, + 192,251,192,97,128,97,128,97,128,97,128,97,128,97,128,115, + 128,63,0,30,0,10,15,30,11,0,0,3,0,6,0,12, + 0,0,0,251,192,251,192,97,128,97,128,97,128,97,128,97, + 128,97,128,115,128,63,0,30,0,10,15,30,11,0,0,12, + 0,30,0,51,0,0,0,251,192,251,192,97,128,97,128,97, + 128,97,128,97,128,97,128,115,128,63,0,30,0,10,14,28, + 11,0,0,51,0,51,0,0,0,251,192,251,192,97,128,97, + 128,97,128,97,128,97,128,97,128,115,128,63,0,30,0,10, + 15,30,11,0,0,3,0,6,0,12,0,0,0,243,192,243, + 192,97,128,51,0,63,0,30,0,12,0,12,0,12,0,63, + 0,63,0,10,11,22,11,0,0,240,0,224,0,127,0,127, + 128,97,192,96,192,97,192,127,128,127,0,224,0,240,0,9, + 12,24,11,1,0,60,0,126,0,99,0,99,0,103,0,110, + 0,103,0,97,128,97,128,105,128,239,128,231,0,10,13,26, + 11,0,0,24,0,12,0,6,0,0,0,63,0,127,128,97, + 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, + 11,0,0,3,0,6,0,12,0,0,0,63,0,127,128,97, + 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, + 11,0,0,12,0,30,0,51,0,0,0,63,0,127,128,97, + 128,1,128,127,128,255,128,193,128,255,192,125,192,10,12,24, + 11,0,0,59,0,110,0,0,0,63,0,127,128,97,128,1, + 128,127,128,255,128,193,128,255,192,125,192,10,12,24,11,0, + 0,51,0,51,0,0,0,63,0,127,128,97,128,1,128,127, + 128,255,128,193,128,255,192,125,192,10,14,28,11,0,0,12, + 0,18,0,18,0,12,0,0,0,63,0,127,128,97,128,1, + 128,127,128,255,128,193,128,255,192,125,192,10,9,18,11,0, + 0,123,128,255,192,204,192,12,192,127,192,255,192,204,0,255, + 192,123,128,10,14,28,11,0,251,61,128,127,128,227,128,193, + 128,192,0,192,0,225,192,127,192,63,0,8,0,12,0,6, + 0,30,0,28,0,10,13,26,11,0,0,24,0,12,0,6, + 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, + 0,127,192,31,192,10,13,26,11,0,0,3,0,6,0,12, + 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, + 0,127,192,31,192,10,13,26,11,0,0,12,0,30,0,51, + 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, + 0,127,192,31,192,10,12,24,11,0,0,51,0,51,0,0, + 0,30,0,127,128,225,192,192,192,255,192,255,192,224,0,127, + 192,31,192,8,13,13,11,1,0,48,24,12,0,248,248,24, + 24,24,24,24,255,255,8,13,13,11,1,0,12,24,48,0, + 248,248,24,24,24,24,24,255,255,8,13,13,11,1,0,24, + 60,102,0,248,248,24,24,24,24,24,255,255,8,12,12,11, + 1,0,204,204,0,248,248,24,24,24,24,24,255,255,10,13, + 26,11,0,0,225,128,251,128,62,0,119,0,195,128,63,128, + 97,192,192,192,192,192,192,192,225,192,127,128,30,0,10,12, + 24,11,0,0,59,0,110,0,0,0,239,0,255,128,113,128, + 97,128,97,128,97,128,97,128,243,192,243,192,10,13,26,11, + 0,0,24,0,12,0,6,0,0,0,30,0,127,128,225,192, + 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, + 0,0,3,0,6,0,12,0,0,0,30,0,127,128,225,192, + 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, + 0,0,12,0,30,0,51,0,0,0,30,0,127,128,225,192, + 192,192,192,192,192,192,225,192,127,128,30,0,10,12,24,11, + 0,0,59,0,110,0,0,0,30,0,127,128,225,192,192,192, + 192,192,192,192,225,192,127,128,30,0,10,12,24,11,0,0, + 51,0,51,0,0,0,30,0,127,128,225,192,192,192,192,192, + 192,192,225,192,127,128,30,0,10,10,20,11,0,0,12,0, + 12,0,0,0,0,0,255,192,255,192,0,0,0,0,12,0, + 12,0,12,11,22,11,255,255,0,48,15,96,63,192,113,224, + 99,96,102,96,108,96,120,224,63,192,111,0,192,0,10,13, + 26,11,0,0,24,0,12,0,6,0,0,0,231,128,231,128, + 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, + 26,11,0,0,6,0,12,0,24,0,0,0,231,128,231,128, + 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, + 26,11,0,0,12,0,30,0,51,0,0,0,231,128,231,128, + 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,12, + 24,11,0,0,51,0,51,0,0,0,231,128,231,128,97,128, + 97,128,97,128,97,128,99,128,127,192,61,192,10,17,34,11, + 0,252,3,0,6,0,12,0,0,0,243,192,243,192,97,128, + 97,128,51,0,51,0,30,0,30,0,12,0,24,0,56,0, + 252,0,252,0,10,16,32,11,0,252,224,0,224,0,96,0, + 111,0,127,128,113,192,96,192,96,192,96,192,113,192,127,128, + 111,0,96,0,96,0,248,0,248,0,10,16,32,11,0,252, + 51,0,51,0,0,0,243,192,243,192,97,128,97,128,51,0, + 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0 + }; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=12 h=16 x= 4 y= 9 dx=11 dy= 0 ascent=13 len=32 + Font Bounding box w=17 h=26 x=-4 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB14r[2167] U8G_SECTION(".progmem.u8g_font_courB14r") = { + 0,17,26,252,249,11,2,101,5,155,32,127,252,13,252,12, + 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, + 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, + 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, + 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, + 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, + 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, + 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, + 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, + 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, + 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, + 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, + 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, + 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, + 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, + 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, + 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, + 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, + 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, + 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, + 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, + 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, + 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, + 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, + 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, + 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, + 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, + 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, + 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, + 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, + 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, + 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, + 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, + 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, + 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, + 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, + 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, + 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, + 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, + 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, + 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, + 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, + 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, + 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, + 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, + 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, + 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, + 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, + 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, + 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, + 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, + 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, + 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, + 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, + 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, + 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, + 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, + 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, + 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, + 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, + 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, + 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, + 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, + 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, + 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, + 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, + 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, + 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, + 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, + 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, + 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, + 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, + 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, + 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, + 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, + 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, + 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, + 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, + 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, + 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, + 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, + 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, + 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, + 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, + 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, + 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, + 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, + 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, + 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, + 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, + 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, + 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, + 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, + 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, + 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, + 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, + 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, + 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, + 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, + 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, + 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, + 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, + 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, + 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, + 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, + 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, + 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, + 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, + 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, + 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, + 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, + 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, + 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, + 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, + 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, + 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, + 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, + 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, + 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, + 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, + 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, + 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, + 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, + 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, + 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, + 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, + 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, + 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, + 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, + 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, + 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, + 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, + 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, + 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, + 11,1,4,115,255,222,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 15, '1' Height: 16 + Calculated Max Values w=16 h=21 x= 6 y=13 dx=15 dy= 0 ascent=21 len=42 + Font Bounding box w=22 h=35 x=-4 y=-9 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =15 descent=-5 + X Font ascent =16 descent=-5 + Max Font ascent =21 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB18[6429] U8G_SECTION(".progmem.u8g_font_courB18") = { + 0,22,35,252,247,15,3,223,8,17,32,255,251,21,251,16, + 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, + 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, + 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, + 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, + 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, + 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, + 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, + 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, + 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, + 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, + 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, + 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, + 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, + 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, + 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, + 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, + 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, + 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, + 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, + 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, + 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, + 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, + 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, + 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, + 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, + 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, + 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, + 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, + 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, + 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, + 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, + 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, + 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, + 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, + 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, + 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, + 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, + 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, + 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, + 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, + 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, + 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, + 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, + 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, + 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, + 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, + 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, + 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, + 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, + 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, + 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, + 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, + 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, + 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, + 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, + 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, + 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, + 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, + 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, + 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, + 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, + 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, + 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, + 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, + 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, + 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, + 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, + 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, + 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, + 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, + 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, + 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, + 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, + 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, + 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, + 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, + 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, + 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, + 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, + 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, + 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, + 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, + 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, + 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, + 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, + 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, + 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, + 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, + 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, + 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, + 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, + 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, + 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, + 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, + 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, + 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, + 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, + 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, + 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, + 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, + 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, + 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, + 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, + 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, + 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, + 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, + 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, + 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, + 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, + 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, + 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, + 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, + 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, + 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, + 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, + 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, + 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, + 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, + 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, + 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, + 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, + 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, + 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, + 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, + 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, + 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, + 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, + 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, + 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, + 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, + 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, + 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, + 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, + 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, + 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, + 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, + 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, + 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, + 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, + 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, + 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, + 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, + 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, + 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, + 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, + 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, + 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, + 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, + 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, + 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, + 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, + 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, + 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, + 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, + 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, + 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, + 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, + 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, + 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, + 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, + 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, + 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, + 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, + 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, + 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, + 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, + 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, + 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, + 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, + 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, + 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, + 60,48,126,112,231,224,195,192,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,15,0,1,4, + 16,16,15,4,251,96,96,96,0,96,96,96,96,96,240,240, + 240,240,240,240,96,9,16,32,15,2,0,12,0,12,0,12, + 0,61,128,127,128,227,128,193,128,192,0,192,0,192,0,225, + 128,127,128,63,0,12,0,12,0,12,0,12,15,30,15,1, + 0,15,128,31,192,56,192,48,0,48,0,48,0,48,0,255, + 0,255,0,24,0,24,0,56,0,112,48,255,240,255,224,10, + 11,22,15,2,2,192,192,255,192,127,128,225,192,192,192,192, + 192,192,192,225,192,127,128,255,192,192,192,12,15,30,15,1, + 0,249,240,249,240,112,224,48,192,57,192,25,128,15,0,15, + 0,63,192,6,0,63,192,6,0,6,0,63,192,63,192,2, + 18,18,15,6,254,192,192,192,192,192,192,192,192,0,0,192, + 192,192,192,192,192,192,192,12,18,36,15,1,254,15,224,31, + 224,56,96,48,96,56,0,126,0,207,128,195,224,240,240,124, + 48,31,48,7,240,1,224,0,192,96,192,97,192,127,128,127, + 0,7,3,3,15,3,12,198,198,198,14,14,28,15,0,1, + 7,128,31,224,56,112,103,152,111,216,220,204,216,12,216,12, + 220,204,111,216,103,152,56,112,31,224,7,128,8,11,11,15, + 3,4,60,102,6,126,198,198,207,123,0,255,255,13,9,18, + 15,1,1,14,56,28,112,56,224,113,192,227,128,113,192,56, + 224,28,112,14,56,12,6,12,15,1,4,255,240,255,240,0, + 48,0,48,0,48,0,48,11,2,4,15,2,6,255,224,255, + 224,14,14,28,15,0,1,7,128,31,224,56,112,111,152,111, + 216,204,204,204,204,207,140,205,140,108,216,108,216,56,112,31, + 224,7,128,7,2,2,15,3,13,254,254,8,7,7,15,3, + 9,60,102,195,195,195,102,60,12,14,28,15,1,0,6,0, + 6,0,6,0,6,0,255,240,255,240,6,0,6,0,6,0, + 6,0,0,0,0,0,255,240,255,240,7,9,9,15,4,7, + 124,198,198,12,24,48,96,198,254,7,9,9,15,4,7,124, + 198,198,12,60,6,198,198,124,6,4,4,15,4,12,28,56, + 112,224,14,16,32,15,0,251,240,240,240,240,48,48,48,48, + 48,48,48,48,48,48,48,48,56,112,63,252,63,188,48,0, + 48,0,48,0,48,0,48,0,12,18,36,15,1,254,31,240, + 127,240,230,192,230,192,230,192,230,192,230,192,126,192,30,192, + 6,192,6,192,6,192,6,192,6,192,6,192,6,192,62,240, + 62,240,3,3,3,15,5,6,224,224,224,5,6,6,15,4, + 251,48,48,120,24,248,112,8,9,9,15,3,7,24,248,24, + 24,24,24,24,24,255,8,11,11,15,3,4,60,126,195,195, + 195,195,126,60,0,255,255,13,9,18,15,1,1,227,128,113, + 192,56,224,28,112,14,56,28,112,56,224,113,192,227,128,16, + 16,32,15,255,0,24,0,248,1,24,3,24,6,24,12,24, + 24,24,48,24,100,255,204,1,156,3,44,6,76,12,140,24, + 254,48,12,32,30,16,16,32,15,255,0,24,0,248,1,24, + 3,24,6,24,12,24,24,24,48,24,126,255,243,1,163,3, + 6,6,12,12,24,24,48,48,99,32,127,15,16,32,15,0, + 0,124,0,198,2,198,6,12,12,60,24,6,48,198,96,198, + 200,125,152,3,56,6,88,12,152,25,24,49,252,96,24,64, + 60,9,15,30,15,2,252,12,0,12,0,12,0,0,0,12, + 0,12,0,28,0,120,0,224,0,192,0,193,128,193,128,225, + 128,127,128,63,0,14,20,40,15,0,0,56,0,28,0,14, + 0,7,0,0,0,63,0,63,0,7,128,7,128,12,192,12, + 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, + 252,252,252,14,20,40,15,0,0,0,224,1,192,3,128,7, + 0,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, + 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, + 252,14,21,42,15,0,0,6,0,15,0,31,128,57,192,112, + 224,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, + 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, + 252,14,19,38,15,0,0,14,96,31,192,51,128,0,0,63, + 0,63,0,7,128,7,128,12,192,12,192,28,224,24,96,24, + 96,63,240,63,240,112,56,96,24,252,252,252,252,14,19,38, + 15,0,0,24,192,24,192,24,192,0,0,63,0,63,0,7, + 128,7,128,12,192,12,192,28,224,24,96,24,96,63,240,63, + 240,112,56,96,24,252,252,252,252,14,20,40,15,0,0,7, + 0,13,128,8,128,13,128,7,0,63,0,63,0,7,128,7, + 128,12,192,12,192,28,224,24,96,24,96,63,240,63,240,112, + 56,96,24,252,252,252,252,15,15,30,15,0,0,15,254,15, + 254,3,134,7,134,7,128,13,152,9,248,25,248,31,152,63, + 128,49,128,97,134,97,134,247,254,247,254,12,20,40,15,1, + 251,15,176,63,240,112,112,96,48,224,48,192,0,192,0,192, + 0,192,0,192,0,224,0,96,16,112,48,63,224,15,192,6, + 0,15,0,3,0,31,0,14,0,13,20,40,15,1,0,56, + 0,28,0,14,0,7,0,0,0,255,240,255,240,48,48,48, + 48,49,176,49,128,63,128,63,128,49,128,49,128,48,24,48, + 24,48,24,255,248,255,248,13,20,40,15,1,0,0,224,1, + 192,3,128,7,0,0,0,255,240,255,240,48,48,48,48,49, + 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, + 24,255,248,255,248,13,21,42,15,1,0,3,0,7,128,15, + 192,28,224,56,112,0,0,255,240,255,240,48,48,48,48,49, + 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, + 24,255,248,255,248,13,19,38,15,1,0,24,192,24,192,24, + 192,0,0,255,240,255,240,48,48,48,48,49,176,49,128,63, + 128,63,128,49,128,49,128,48,24,48,24,48,24,255,248,255, + 248,10,20,40,15,2,0,112,0,56,0,28,0,14,0,0, + 0,255,192,255,192,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, + 20,40,15,2,0,3,128,7,0,14,0,28,0,0,0,255, + 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,255,192,255,192,10,21,42, + 15,2,0,12,0,30,0,63,0,115,128,225,192,0,0,255, + 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,255,192,255,192,10,19,38, + 15,2,0,51,0,51,0,51,0,0,0,255,192,255,192,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,255,192,255,192,14,15,30,15,0,0,255, + 192,255,240,48,56,48,24,48,28,48,12,254,12,254,12,48, + 12,48,12,48,12,48,24,48,56,255,240,255,224,13,19,38, + 15,1,0,14,96,31,192,51,128,0,0,240,248,240,248,120, + 48,120,48,108,48,108,48,102,48,102,48,99,48,99,48,97, + 176,97,176,96,240,248,240,248,112,13,20,40,15,1,0,28, + 0,14,0,7,0,3,128,0,0,15,128,63,224,112,112,96, + 48,224,56,192,24,192,24,192,24,192,24,192,24,224,56,96, + 48,112,112,63,224,15,128,13,20,40,15,1,0,0,224,1, + 192,3,128,7,0,0,0,15,128,63,224,112,112,96,48,224, + 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, + 112,63,224,15,128,13,21,42,15,1,0,3,0,7,128,15, + 192,28,224,56,112,0,0,15,128,63,224,112,112,96,48,224, + 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, + 112,63,224,15,128,13,19,38,15,1,0,14,96,31,192,51, + 128,0,0,15,128,63,224,112,112,96,48,224,56,192,24,192, + 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, + 128,13,19,38,15,1,0,24,192,24,192,24,192,0,0,15, + 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, + 24,192,24,224,56,96,48,112,112,63,224,15,128,12,12,24, + 15,1,1,64,32,224,112,112,224,57,192,31,128,15,0,15, + 0,31,128,57,192,112,224,224,112,64,32,13,18,36,15,1, + 255,0,24,0,48,15,224,63,224,112,112,96,240,225,184,193, + 24,195,24,198,24,196,24,204,24,232,56,120,48,112,112,63, + 224,111,128,192,0,13,20,40,15,1,0,56,0,28,0,14, + 0,7,0,0,0,248,248,248,248,96,48,96,48,96,48,96, + 48,96,48,96,48,96,48,96,48,96,48,96,48,48,96,63, + 224,31,192,13,20,40,15,1,0,0,224,1,192,3,128,7, + 0,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, + 192,13,21,42,15,1,0,3,0,7,128,15,192,28,224,56, + 112,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, + 192,13,19,38,15,1,0,24,192,24,192,24,192,0,0,248, + 248,248,248,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,96,48,48,96,63,224,31,192,14,20,40, + 15,0,0,0,224,1,192,3,128,7,0,0,0,252,252,252, + 252,112,56,56,112,24,96,12,192,15,192,7,128,3,0,3, + 0,3,0,3,0,3,0,31,224,31,224,13,15,30,15,1, + 0,252,0,252,0,48,0,63,192,63,240,48,56,48,24,48, + 24,48,24,48,56,63,240,63,192,48,0,252,0,252,0,12, + 16,32,15,1,0,15,0,31,128,57,192,48,192,48,192,49, + 192,55,128,55,192,48,224,48,112,48,48,48,48,48,48,51, + 112,251,224,249,192,12,16,32,15,1,0,112,0,56,0,28, + 0,14,0,0,0,63,0,127,128,97,192,0,192,31,192,127, + 192,224,192,192,192,193,192,255,240,126,240,12,16,32,15,1, + 0,1,192,3,128,7,0,14,0,0,0,63,0,127,128,97, + 192,0,192,31,192,127,192,224,192,192,192,193,192,255,240,126, + 240,12,16,32,15,1,0,14,0,31,0,59,128,113,192,0, + 0,63,0,127,128,97,192,0,192,31,192,127,192,224,192,192, + 192,193,192,255,240,126,240,12,15,30,15,1,0,28,192,63, + 128,103,0,0,0,63,0,127,128,97,192,0,192,31,192,127, + 192,224,192,192,192,193,192,255,240,126,240,12,15,30,15,1, + 0,49,128,49,128,49,128,0,0,63,0,127,128,97,192,0, + 192,31,192,127,192,224,192,192,192,193,192,255,240,126,240,12, + 16,32,15,1,0,14,0,27,0,17,0,27,0,14,0,63, + 0,127,128,97,192,0,192,31,192,127,192,224,192,192,192,193, + 192,255,240,126,240,14,11,22,15,0,0,60,240,127,248,103, + 156,3,12,31,12,127,252,227,252,195,0,199,140,255,252,124, + 240,11,16,32,15,1,251,31,96,127,224,112,224,224,96,192, + 96,192,0,192,0,224,0,112,96,127,224,31,192,6,0,15, + 0,3,0,31,0,14,0,12,16,32,15,1,0,56,0,28, + 0,14,0,7,0,0,0,31,128,127,224,112,224,224,112,192, + 48,255,240,255,240,224,0,112,112,127,240,31,192,12,16,32, + 15,1,0,1,192,3,128,7,0,14,0,0,0,31,128,127, + 224,112,224,224,112,192,48,255,240,255,240,224,0,112,112,127, + 240,31,192,12,16,32,15,1,0,7,0,15,128,29,192,56, + 224,0,0,31,128,127,224,112,224,224,112,192,48,255,240,255, + 240,224,0,112,112,127,240,31,192,12,15,30,15,1,0,49, + 128,49,128,49,128,0,0,31,128,127,224,112,224,224,112,192, + 48,255,240,255,240,224,0,112,112,127,240,31,192,10,16,32, + 15,2,0,224,0,112,0,56,0,28,0,0,0,124,0,124, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, + 192,255,192,10,16,32,15,2,0,3,128,7,0,14,0,28, + 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,255,192,255,192,10,16,32,15,2,0,28, + 0,62,0,119,0,227,128,0,0,124,0,124,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, + 15,30,15,2,0,99,0,99,0,99,0,0,0,124,0,124, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, + 192,255,192,13,17,34,15,0,0,240,0,252,112,15,240,31, + 128,125,192,112,224,15,240,63,240,56,120,112,56,96,24,96, + 24,96,24,112,56,56,112,63,240,15,192,14,15,30,15,0, + 0,14,96,31,192,51,128,0,0,243,192,247,224,60,112,56, + 48,48,48,48,48,48,48,48,48,48,48,252,252,252,252,12, + 16,32,15,1,0,56,0,28,0,14,0,7,0,0,0,31, + 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, + 224,127,224,31,128,12,16,32,15,1,0,1,192,3,128,7, + 0,14,0,0,0,31,128,127,224,112,224,224,112,192,48,192, + 48,192,48,224,112,112,224,127,224,31,128,12,16,32,15,1, + 0,14,0,31,0,59,128,113,192,0,0,31,128,127,224,112, + 224,224,112,192,48,192,48,192,48,224,112,112,224,127,224,31, + 128,12,15,30,15,1,0,28,192,63,128,103,0,0,0,31, + 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, + 224,127,224,31,128,12,15,30,15,1,0,49,128,49,128,49, + 128,0,0,31,128,127,224,112,224,224,112,192,48,192,48,192, + 48,224,112,112,224,127,224,31,128,13,12,24,15,0,1,7, + 0,7,0,7,0,0,0,0,0,255,248,255,248,0,0,0, + 0,7,0,7,0,7,0,14,14,28,15,0,254,0,12,15, + 216,63,240,56,112,112,216,97,152,99,24,102,24,108,56,56, + 112,63,240,63,192,96,0,192,0,14,16,32,15,0,0,56, + 0,28,0,14,0,7,0,0,0,240,240,240,240,48,48,48, + 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,14, + 16,32,15,0,0,1,192,3,128,7,0,14,0,0,0,240, + 240,240,240,48,48,48,48,48,48,48,48,48,48,48,48,56, + 112,31,252,15,188,14,16,32,15,0,0,7,0,15,128,29, + 192,56,224,0,0,240,240,240,240,48,48,48,48,48,48,48, + 48,48,48,48,48,56,112,31,252,15,188,14,15,30,15,0, + 0,24,192,24,192,24,192,0,0,240,240,240,240,48,48,48, + 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,12, + 21,42,15,1,251,0,224,1,192,3,128,7,0,0,0,249, + 240,249,240,96,96,112,224,48,192,57,192,25,128,27,128,15, + 0,15,0,6,0,14,0,12,0,28,0,254,0,254,0,13, + 21,42,15,1,251,240,0,240,0,48,0,48,0,48,0,55, + 192,63,240,60,112,56,56,48,24,48,24,48,24,56,56,60, + 112,63,240,55,192,48,0,48,0,48,0,254,0,254,0,12, + 20,40,15,1,251,49,128,49,128,49,128,0,0,249,240,249, + 240,96,96,112,224,48,192,57,192,25,128,27,128,15,0,15, + 0,6,0,14,0,12,0,28,0,254,0,254,0}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 15, '1' Height: 16 + Calculated Max Values w=16 h=21 x= 6 y=11 dx=15 dy= 0 ascent=17 len=40 + Font Bounding box w=22 h=35 x=-4 y=-9 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =15 descent=-5 + X Font ascent =16 descent=-5 + Max Font ascent =17 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB18r[3001] U8G_SECTION(".progmem.u8g_font_courB18r") = { + 0,22,35,252,247,15,3,223,8,17,32,127,251,17,251,16, + 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, + 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, + 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, + 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, + 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, + 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, + 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, + 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, + 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, + 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, + 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, + 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, + 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, + 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, + 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, + 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, + 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, + 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, + 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, + 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, + 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, + 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, + 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, + 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, + 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, + 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, + 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, + 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, + 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, + 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, + 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, + 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, + 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, + 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, + 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, + 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, + 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, + 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, + 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, + 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, + 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, + 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, + 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, + 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, + 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, + 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, + 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, + 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, + 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, + 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, + 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, + 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, + 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, + 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, + 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, + 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, + 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, + 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, + 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, + 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, + 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, + 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, + 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, + 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, + 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, + 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, + 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, + 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, + 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, + 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, + 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, + 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, + 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, + 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, + 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, + 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, + 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, + 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, + 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, + 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, + 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, + 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, + 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, + 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, + 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, + 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, + 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, + 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, + 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, + 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, + 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, + 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, + 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, + 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, + 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, + 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, + 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, + 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, + 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, + 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, + 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, + 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, + 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, + 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, + 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, + 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, + 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, + 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, + 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, + 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, + 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, + 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, + 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, + 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, + 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, + 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, + 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, + 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, + 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, + 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, + 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, + 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, + 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, + 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, + 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, + 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, + 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, + 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, + 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, + 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, + 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, + 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, + 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, + 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, + 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, + 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, + 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, + 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, + 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, + 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, + 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, + 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, + 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, + 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, + 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, + 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, + 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, + 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, + 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, + 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, + 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, + 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, + 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, + 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, + 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, + 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, + 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, + 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, + 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, + 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, + 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, + 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, + 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, + 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, + 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, + 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, + 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, + 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, + 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, + 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, + 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, + 60,48,126,112,231,224,195,192,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 20, '1' Height: 21 + Calculated Max Values w=21 h=29 x= 8 y=17 dx=20 dy= 0 ascent=26 len=87 + Font Bounding box w=30 h=44 x=-7 y=-11 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-7 + X Font ascent =21 descent=-7 + Max Font ascent =26 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB24[10502] U8G_SECTION(".progmem.u8g_font_courB24") = { + 0,30,44,249,245,20,5,57,12,115,32,255,249,26,249,21, + 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, + 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, + 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, + 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, + 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, + 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, + 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, + 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, + 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, + 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, + 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, + 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, + 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, + 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, + 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, + 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, + 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, + 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, + 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, + 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, + 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, + 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, + 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, + 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, + 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, + 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, + 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, + 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, + 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, + 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, + 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, + 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, + 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, + 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, + 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, + 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, + 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, + 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, + 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, + 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, + 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, + 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, + 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, + 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, + 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, + 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, + 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, + 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, + 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, + 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, + 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, + 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, + 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, + 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, + 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, + 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, + 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, + 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, + 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, + 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, + 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, + 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, + 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, + 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, + 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, + 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, + 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, + 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, + 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, + 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, + 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, + 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, + 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, + 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, + 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, + 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, + 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, + 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, + 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, + 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, + 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, + 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, + 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, + 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, + 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, + 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, + 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, + 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, + 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, + 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, + 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, + 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, + 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, + 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, + 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, + 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, + 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, + 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, + 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, + 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, + 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, + 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, + 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, + 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, + 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, + 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, + 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, + 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, + 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, + 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, + 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, + 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, + 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, + 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, + 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, + 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, + 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, + 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, + 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, + 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, + 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, + 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, + 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, + 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, + 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, + 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, + 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, + 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, + 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, + 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, + 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, + 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, + 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, + 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, + 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, + 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, + 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, + 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, + 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, + 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, + 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, + 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, + 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, + 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, + 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, + 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, + 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, + 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, + 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, + 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, + 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, + 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, + 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, + 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, + 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, + 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, + 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, + 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, + 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, + 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, + 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, + 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, + 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, + 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, + 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, + 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, + 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, + 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, + 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, + 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, + 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, + 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, + 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, + 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, + 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, + 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, + 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, + 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, + 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, + 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, + 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, + 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, + 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, + 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, + 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, + 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, + 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, + 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, + 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, + 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, + 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, + 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, + 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, + 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, + 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, + 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, + 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, + 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, + 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, + 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, + 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, + 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, + 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, + 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, + 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, + 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, + 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, + 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, + 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, + 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, + 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, + 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, + 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, + 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, + 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, + 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, + 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, + 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, + 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, + 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, + 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, + 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, + 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, + 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, + 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, + 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, + 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, + 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, + 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, + 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, + 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, + 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, + 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, + 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, + 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, + 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, + 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, + 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, + 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, + 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, + 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, + 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, + 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, + 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, + 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, + 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, + 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, + 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, + 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, + 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, + 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, + 227,252,225,248,0,96,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,20,0,1,5,21,21, + 20,7,249,112,248,248,112,0,0,112,112,112,112,112,112,112, + 112,248,248,248,248,248,112,32,13,23,46,20,3,255,7,0, + 7,0,7,0,7,0,7,0,15,216,63,248,127,248,120,120, + 240,56,224,56,224,0,224,0,224,0,240,56,120,120,127,248, + 63,240,15,192,7,0,7,0,7,0,7,0,16,20,40,20, + 1,0,3,224,7,240,15,248,30,56,28,56,28,0,28,0, + 28,0,14,0,255,224,255,224,255,224,14,0,14,0,14,0, + 14,2,30,7,127,255,127,255,127,254,15,15,30,20,2,2, + 224,14,247,222,255,254,127,252,60,120,120,60,112,28,112,28, + 112,28,120,60,60,120,127,252,255,254,247,222,224,14,17,20, + 60,20,1,0,254,63,128,254,63,128,254,63,128,56,14,0, + 28,28,0,30,60,0,14,56,0,15,120,0,7,112,0,3, + 224,0,31,252,0,31,252,0,1,192,0,31,252,0,31,252, + 0,1,192,0,1,192,0,31,252,0,31,252,0,31,252,0, + 3,26,26,20,8,251,224,224,224,224,224,224,224,224,224,224, + 224,224,0,0,224,224,224,224,224,224,224,224,224,224,224,224, + 16,24,48,20,2,253,1,254,7,254,15,254,28,6,24,6, + 24,6,60,0,127,0,231,128,193,224,96,240,112,60,60,14, + 15,6,7,131,1,231,0,254,0,60,48,24,48,24,48,56, + 63,240,63,224,63,128,11,4,8,20,4,17,96,192,241,224, + 241,224,96,192,21,20,60,20,255,0,0,252,0,3,255,0, + 15,255,192,30,3,224,56,96,224,113,246,112,115,254,112,231, + 158,56,231,14,56,206,14,56,206,0,56,206,0,56,206,6, + 56,231,15,120,231,254,112,115,252,240,120,241,224,62,7,192, + 31,255,0,7,252,0,11,14,28,20,4,6,31,0,127,128, + 97,128,1,128,63,128,127,128,225,128,193,128,195,128,255,224, + 125,224,0,0,255,224,255,224,15,14,28,20,1,0,3,6, + 7,14,14,28,28,56,56,112,112,224,225,192,225,192,112,224, + 56,112,28,56,14,28,7,14,3,6,16,8,16,20,2,5, + 255,255,255,255,255,255,0,7,0,7,0,7,0,7,0,7, + 15,3,6,20,2,8,255,254,255,254,255,254,21,20,60,20, + 255,0,1,248,0,7,254,0,31,255,128,60,3,192,59,241, + 224,115,252,224,115,254,240,227,158,112,227,142,120,227,142,56, + 227,254,56,227,252,56,227,184,56,243,188,120,115,158,112,123, + 143,240,60,3,224,31,255,192,15,255,0,3,252,0,10,2, + 4,20,5,17,255,192,255,192,9,9,18,20,5,11,28,0, + 119,0,193,128,128,128,128,128,128,128,193,128,119,0,28,0, + 17,18,54,20,1,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, + 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,255,255,128,255,255,128,255,255,128,8,14,14,20, + 5,7,60,126,231,195,3,7,14,12,24,56,112,225,255,255, + 9,14,28,20,5,7,62,0,127,0,99,0,3,0,7,0, + 30,0,31,0,3,128,1,128,1,128,193,128,227,0,127,0, + 60,0,8,6,6,20,6,15,6,15,62,120,224,64,18,22, + 66,20,1,249,252,63,0,252,63,0,252,63,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 7,0,28,15,0,30,31,0,31,255,192,31,247,192,29,231, + 192,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,15,24,48,20,2,253,15,254,63,254, + 123,24,243,24,227,24,227,24,227,24,227,24,227,24,115,24, + 63,24,31,24,3,24,3,24,3,24,3,24,3,24,3,24, + 3,24,3,24,3,24,31,62,31,62,31,62,5,4,4,20, + 7,8,112,248,248,112,5,7,7,20,6,250,48,48,48,24, + 248,248,112,8,13,13,20,6,7,56,248,216,24,24,24,24, + 24,24,24,24,255,255,11,14,28,20,4,6,14,0,63,128, + 113,192,224,224,192,96,192,96,192,96,224,224,113,192,63,128, + 14,0,0,0,255,224,255,224,15,14,28,20,2,0,193,128, + 225,192,112,224,56,112,28,56,14,28,7,14,7,14,14,28, + 28,56,56,112,112,224,225,192,193,128,19,20,60,20,0,0, + 56,0,0,248,0,0,216,0,128,24,1,192,24,1,128,24, + 3,0,24,6,0,24,12,0,24,28,192,24,25,192,255,51, + 192,255,114,192,0,102,192,0,206,192,1,140,192,3,159,224, + 7,31,224,2,0,192,0,1,224,0,1,224,19,20,60,20, + 0,0,56,0,0,248,0,0,216,2,0,24,7,0,24,14, + 0,24,12,0,24,24,0,24,56,0,24,112,0,24,103,128, + 254,239,192,255,220,224,1,152,96,3,0,224,7,1,192,14, + 7,128,4,14,0,0,28,96,0,31,224,0,31,224,19,21, + 63,20,0,0,62,0,0,127,0,0,99,0,0,3,1,0, + 3,3,128,30,7,0,31,6,0,3,142,0,1,156,0,195, + 152,192,227,49,192,127,115,192,28,98,192,0,198,192,1,206, + 192,3,140,192,7,31,224,2,31,224,0,0,192,0,3,224, + 0,3,224,13,21,42,20,3,250,7,0,15,128,15,128,7, + 0,0,0,0,0,0,0,7,0,7,0,7,0,31,0,63, + 0,124,0,240,0,224,0,224,56,224,56,240,56,127,248,63, + 248,31,224,21,26,78,20,255,0,3,0,0,7,128,0,1, + 224,0,0,240,0,0,48,0,0,0,0,31,240,0,31,248, + 0,31,248,0,1,252,0,1,220,0,1,220,0,3,222,0, + 3,142,0,3,142,0,7,7,0,7,7,0,7,7,0,15, + 255,128,15,255,128,31,255,192,28,1,192,28,1,192,255,143, + 248,255,143,248,255,143,248,21,26,78,20,255,0,0,3,0, + 0,15,0,0,30,0,0,120,0,0,96,0,0,0,0,31, + 240,0,31,248,0,31,248,0,1,252,0,1,220,0,1,220, + 0,3,222,0,3,142,0,3,142,0,7,7,0,7,7,0, + 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, + 1,192,255,143,248,255,143,248,255,143,248,21,26,78,20,255, + 0,0,64,0,0,224,0,3,184,0,7,28,0,14,14,0, + 0,0,0,31,240,0,31,248,0,31,248,0,1,252,0,1, + 220,0,1,220,0,3,222,0,3,142,0,3,142,0,7,7, + 0,7,7,0,7,7,0,15,255,128,15,255,128,31,255,192, + 28,1,192,28,1,192,255,143,248,255,143,248,255,143,248,21, + 25,75,20,255,0,3,134,0,7,230,0,6,118,0,6,28, + 0,0,0,0,31,240,0,31,248,0,31,248,0,1,252,0, + 1,220,0,1,220,0,3,222,0,3,142,0,3,142,0,7, + 7,0,7,7,0,7,7,0,15,255,128,15,255,128,31,255, + 192,28,1,192,28,1,192,255,143,248,255,143,248,255,143,248, + 21,25,75,20,255,0,12,24,0,30,60,0,30,60,0,12, + 24,0,0,0,0,31,240,0,31,248,0,31,248,0,1,252, + 0,1,220,0,1,220,0,3,222,0,3,142,0,3,142,0, + 7,7,0,7,7,0,7,7,0,15,255,128,15,255,128,31, + 255,192,28,1,192,28,1,192,255,143,248,255,143,248,255,143, + 248,21,26,78,20,255,0,0,240,0,1,152,0,1,8,0, + 1,152,0,0,240,0,0,0,0,31,240,0,31,248,0,31, + 248,0,1,252,0,1,220,0,1,220,0,3,222,0,3,142, + 0,3,142,0,7,7,0,7,7,0,7,7,0,15,255,128, + 15,255,128,31,255,192,28,1,192,28,1,192,255,143,248,255, + 143,248,255,143,248,20,20,60,20,0,0,31,255,224,31,255, + 224,31,255,224,7,112,224,7,112,224,6,112,224,14,112,224, + 14,115,0,14,115,0,14,127,0,28,127,0,28,115,0,31, + 243,0,31,243,0,56,112,112,56,112,112,56,112,112,255,255, + 240,255,255,240,255,255,240,17,26,78,20,1,250,3,227,0, + 15,255,0,31,255,0,62,31,0,120,15,0,112,7,0,240, + 7,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,240,0,0,112,1,0,120,3,128,62,15,128, + 63,255,0,15,254,0,3,248,0,0,192,0,0,192,0,0, + 224,0,4,112,0,7,240,0,3,224,0,17,26,78,20,1, + 0,3,0,0,7,128,0,1,224,0,0,240,0,0,48,0, + 0,0,0,255,255,0,255,255,0,255,255,0,28,7,0,28, + 7,0,28,7,0,28,119,0,28,112,0,31,240,0,31,240, + 0,31,240,0,28,112,0,28,112,0,28,3,128,28,3,128, + 28,3,128,28,3,128,255,255,128,255,255,128,255,255,128,17, + 26,78,20,1,0,0,12,0,0,60,0,0,120,0,1,224, + 0,1,128,0,0,0,0,255,255,0,255,255,0,255,255,0, + 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, + 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, + 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, + 255,255,128,17,26,78,20,1,0,0,128,0,1,192,0,7, + 112,0,14,56,0,28,28,0,0,0,0,255,255,0,255,255, + 0,255,255,0,28,7,0,28,7,0,28,7,0,28,119,0, + 28,112,0,31,240,0,31,240,0,31,240,0,28,112,0,28, + 112,0,28,3,128,28,3,128,28,3,128,28,3,128,255,255, + 128,255,255,128,255,255,128,17,25,75,20,1,0,6,12,0, + 15,30,0,15,30,0,6,12,0,0,0,0,255,255,0,255, + 255,0,255,255,0,28,7,0,28,7,0,28,7,0,28,119, + 0,28,112,0,31,240,0,31,240,0,31,240,0,28,112,0, + 28,112,0,28,3,128,28,3,128,28,3,128,28,3,128,255, + 255,128,255,255,128,255,255,128,13,26,52,20,3,0,24,0, + 60,0,15,0,7,128,1,128,0,0,255,248,255,248,255,248, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, + 255,248,13,26,52,20,3,0,0,48,0,240,1,224,7,128, + 6,0,0,0,255,248,255,248,255,248,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,255,248,255,248,255,248,13,26,52,20, + 3,0,2,0,7,0,29,192,56,224,112,112,0,0,255,248, + 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 255,248,255,248,255,248,13,25,50,20,3,0,48,96,120,240, + 120,240,48,96,0,0,255,248,255,248,255,248,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,255,248,255,248,255,248,17,20, + 60,20,2,0,255,224,0,255,248,0,255,252,0,56,62,0, + 56,15,0,56,7,0,56,7,0,56,3,128,255,131,128,255, + 131,128,255,131,128,56,3,128,56,3,128,56,3,128,56,7, + 0,56,7,0,56,30,0,255,254,0,255,252,0,255,240,0, + 20,25,75,20,255,0,3,134,0,7,230,0,6,118,0,6, + 28,0,0,0,0,252,31,240,254,31,240,255,31,240,31,1, + 192,31,129,192,31,129,192,29,193,192,29,225,192,28,225,192, + 28,241,192,28,121,192,28,57,192,28,61,192,28,29,192,28, + 15,192,28,15,192,28,7,192,127,199,192,127,195,192,127,193, + 192,17,26,78,20,1,0,6,0,0,15,0,0,3,192,0, + 1,224,0,0,96,0,0,0,0,7,240,0,15,252,0,31, + 252,0,60,30,0,120,15,0,112,7,0,112,7,0,224,3, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, + 112,7,0,120,7,0,56,14,0,62,62,0,31,252,0,15, + 248,0,3,224,0,17,26,78,20,1,0,0,24,0,0,120, + 0,0,240,0,3,192,0,3,0,0,0,0,0,7,240,0, + 15,252,0,31,252,0,60,30,0,120,15,0,112,7,0,112, + 7,0,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,112,7,0,120,7,0,56,14,0,62,62,0, + 31,252,0,15,248,0,3,224,0,17,26,78,20,1,0,0, + 128,0,1,192,0,7,112,0,14,56,0,28,28,0,0,0, + 0,7,240,0,15,252,0,31,252,0,60,30,0,120,15,0, + 112,7,0,112,7,0,224,3,128,224,3,128,224,3,128,224, + 3,128,224,3,128,224,3,128,112,7,0,120,7,0,56,14, + 0,62,62,0,31,252,0,15,248,0,3,224,0,17,25,75, + 20,1,0,7,12,0,15,204,0,12,236,0,12,56,0,0, + 0,0,7,240,0,15,252,0,31,252,0,60,30,0,120,15, + 0,112,7,0,112,7,0,224,3,128,224,3,128,224,3,128, + 224,3,128,224,3,128,224,3,128,112,7,0,120,7,0,56, + 14,0,62,62,0,31,252,0,15,248,0,3,224,0,17,25, + 75,20,1,0,12,24,0,30,60,0,30,60,0,12,24,0, + 0,0,0,7,240,0,15,252,0,31,252,0,60,30,0,120, + 15,0,112,7,0,112,7,0,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,224,3,128,112,7,0,120,7,0, + 56,14,0,62,62,0,31,252,0,15,248,0,3,224,0,15, + 16,32,20,2,0,224,14,240,30,248,62,120,60,60,120,30, + 240,15,224,7,192,7,192,15,224,30,240,60,120,120,60,248, + 62,240,30,224,14,17,23,69,20,1,254,0,3,128,3,227, + 128,15,255,128,31,255,0,62,62,0,56,30,0,120,63,0, + 112,127,0,224,123,128,224,243,128,225,227,128,225,195,128,227, + 195,128,231,131,128,255,7,128,126,7,0,126,15,0,60,30, + 0,127,252,0,127,248,0,247,240,0,224,0,0,224,0,0, + 19,26,78,20,0,0,3,0,0,7,128,0,1,224,0,0, + 240,0,0,48,0,0,0,0,255,31,224,255,31,224,255,31, + 224,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 3,128,56,3,128,28,7,128,31,31,0,15,254,0,7,252, + 0,1,248,0,19,26,78,20,0,0,0,28,0,0,60,0, + 0,240,0,1,224,0,1,128,0,0,0,0,255,31,224,255, + 31,224,255,31,224,56,3,128,56,3,128,56,3,128,56,3, + 128,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,28,7,128,31,31,0,15, + 254,0,7,252,0,1,248,0,19,26,78,20,0,0,0,64, + 0,0,224,0,3,184,0,7,28,0,14,14,0,0,0,0, + 255,31,224,255,31,224,255,31,224,56,3,128,56,3,128,56, + 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, + 128,56,3,128,56,3,128,56,3,128,56,3,128,28,7,128, + 31,31,0,15,254,0,7,252,0,1,248,0,19,26,78,20, + 0,0,6,12,0,15,30,0,15,30,0,6,12,0,0,0, + 0,0,0,0,255,191,224,255,191,224,255,191,224,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, + 128,28,7,128,31,31,0,15,254,0,7,252,0,1,248,0, + 17,26,78,20,1,0,0,24,0,0,120,0,0,240,0,3, + 192,0,3,0,0,0,0,0,254,63,128,254,63,128,254,63, + 128,60,30,0,28,28,0,30,60,0,14,56,0,15,120,0, + 7,240,0,3,224,0,3,224,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,31,252,0,31,252, + 0,31,252,0,18,20,60,20,1,0,255,128,0,255,128,0, + 255,128,0,28,0,0,31,248,0,31,254,0,31,255,0,28, + 15,128,28,3,128,28,3,192,28,3,192,28,3,128,28,15, + 128,31,255,0,31,254,0,31,248,0,28,0,0,255,128,0, + 255,128,0,255,128,0,17,22,66,20,0,255,3,224,0,7, + 240,0,15,248,0,30,60,0,28,28,0,28,28,0,28,28, + 0,28,60,0,29,248,0,29,248,0,29,254,0,28,31,0, + 28,15,0,28,7,128,28,3,128,28,3,128,29,195,128,29, + 195,128,255,255,0,254,255,0,254,126,0,0,24,0,17,22, + 66,20,2,0,24,0,0,60,0,0,15,0,0,7,128,0, + 1,128,0,0,0,0,0,0,0,15,224,0,63,240,0,63, + 248,0,56,60,0,0,28,0,0,28,0,15,252,0,63,252, + 0,127,252,0,120,28,0,240,28,0,224,124,0,255,255,128, + 127,255,128,63,159,128,17,22,66,20,2,0,0,32,0,0, + 112,0,0,240,0,3,192,0,7,128,0,6,0,0,0,0, + 0,15,224,0,63,240,0,63,248,0,56,60,0,0,28,0, + 0,28,0,15,252,0,63,252,0,127,252,0,120,28,0,224, + 60,0,224,124,0,255,255,128,127,223,128,63,159,128,17,22, + 66,20,1,0,0,128,0,1,192,0,7,112,0,14,56,0, + 28,28,0,0,0,0,0,0,0,7,224,0,63,240,0,63, + 248,0,60,60,0,0,28,0,0,28,0,15,252,0,63,252, + 0,127,252,0,120,28,0,240,28,0,224,60,0,255,255,128, + 127,255,128,63,159,128,17,21,63,20,1,0,14,24,0,31, + 152,0,25,248,0,24,112,0,0,0,0,0,0,0,15,224, + 0,63,240,0,63,248,0,56,60,0,0,28,0,0,28,0, + 15,252,0,63,252,0,127,252,0,120,28,0,240,28,0,224, + 124,0,255,255,128,127,223,128,63,159,128,17,21,63,20,2, + 0,12,24,0,30,60,0,30,60,0,12,24,0,0,0,0, + 0,0,0,15,224,0,63,240,0,63,248,0,56,60,0,0, + 28,0,0,28,0,15,252,0,63,252,0,127,252,0,120,28, + 0,240,28,0,224,124,0,255,255,128,127,223,128,63,159,128, + 17,21,63,20,1,0,3,192,0,6,96,0,4,32,0,6, + 96,0,3,192,0,0,0,0,15,224,0,63,240,0,63,248, + 0,56,60,0,0,28,0,0,28,0,15,252,0,63,252,0, + 127,252,0,120,28,0,240,28,0,224,124,0,255,255,128,127, + 223,128,63,159,128,20,15,45,20,255,0,15,135,0,63,255, + 192,63,255,192,56,253,224,0,112,112,3,240,112,31,255,240, + 127,255,240,255,255,240,240,112,0,224,120,0,241,248,112,127, + 255,240,63,255,240,31,39,128,16,21,42,20,2,250,7,230, + 31,254,63,254,124,62,112,14,240,14,224,14,224,0,224,0, + 224,0,240,6,124,15,63,254,31,252,7,240,1,128,1,128, + 1,192,8,224,15,192,3,128,16,21,42,20,1,0,6,0, + 15,0,3,192,1,224,0,96,0,0,7,224,31,248,63,252, + 124,62,112,14,240,15,255,255,255,255,255,255,224,0,112,0, + 124,15,63,255,31,254,7,240,16,22,44,20,1,0,0,16, + 0,56,0,120,1,224,3,192,3,0,0,0,7,224,31,248, + 63,252,124,62,112,14,240,15,255,255,255,255,255,255,224,0, + 112,0,124,14,63,255,31,254,7,240,16,22,44,20,1,0, + 0,128,1,192,7,112,14,56,28,28,0,0,0,0,7,224, + 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, + 224,0,112,0,124,31,63,255,31,255,7,240,16,21,42,20, + 1,0,12,24,30,60,30,60,12,24,0,0,0,0,7,224, + 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, + 224,0,112,0,124,31,63,255,31,255,7,240,15,22,44,20, + 2,0,24,0,60,0,15,0,7,128,1,128,0,0,0,0, + 127,128,127,128,127,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,255,254,255,254,255,254,15,23, + 46,20,2,0,0,128,1,192,3,192,15,0,30,0,24,0, + 0,0,0,0,127,128,127,128,127,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, + 255,254,15,22,44,20,2,0,2,0,7,0,29,192,56,224, + 112,112,0,0,0,0,127,128,127,128,127,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, + 255,254,255,254,15,21,42,20,2,0,48,96,120,240,120,240, + 48,96,0,0,0,0,127,128,127,128,127,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, + 255,254,255,254,16,21,42,20,2,0,126,14,255,191,255,252, + 3,240,15,240,127,248,124,56,112,60,7,220,31,254,127,254, + 120,30,240,15,224,7,224,7,224,15,240,15,248,62,127,252, + 63,248,31,224,17,21,63,20,1,0,14,24,0,31,152,0, + 25,248,0,24,112,0,0,0,0,0,0,0,249,240,0,251, + 252,0,255,254,0,60,30,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 254,63,128,254,63,128,254,63,128,17,21,63,20,1,0,6, + 0,0,15,0,0,3,192,0,1,224,0,0,96,0,0,0, + 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, + 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, + 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,22, + 66,20,1,0,0,16,0,0,56,0,0,120,0,1,224,0, + 3,192,0,3,0,0,0,0,0,7,240,0,15,248,0,63, + 254,0,60,30,0,120,15,0,240,7,128,224,3,128,224,3, + 128,224,3,128,240,7,128,120,15,0,124,31,0,63,254,0, + 31,252,0,7,240,0,17,22,66,20,1,0,0,128,0,1, + 192,0,7,112,0,14,56,0,28,28,0,0,0,0,0,0, + 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, + 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, + 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,21, + 63,20,1,0,7,12,0,15,204,0,12,252,0,12,56,0, + 0,0,0,0,0,0,7,240,0,15,248,0,63,254,0,60, + 30,0,120,15,0,240,7,128,224,3,128,224,3,128,224,3, + 128,240,7,128,120,15,0,124,31,0,63,254,0,31,252,0, + 7,240,0,17,21,63,20,1,0,12,24,0,30,60,0,30, + 60,0,12,24,0,0,0,0,0,0,0,7,240,0,15,248, + 0,63,254,0,60,30,0,120,15,0,240,7,128,224,3,128, + 224,3,128,224,3,128,240,7,128,120,15,0,124,31,0,63, + 254,0,31,252,0,7,240,0,15,15,30,20,2,2,3,128, + 7,192,7,192,3,128,0,0,0,0,255,254,255,254,255,254, + 0,0,0,0,3,128,7,192,7,192,3,128,17,18,54,20, + 1,254,0,3,128,3,227,128,15,255,128,63,255,0,62,62, + 0,120,63,0,112,127,0,224,243,128,225,227,128,227,195,128, + 231,131,128,127,7,0,126,31,0,63,254,0,127,252,0,247, + 240,0,224,0,0,224,0,0,18,22,66,20,0,0,3,0, + 0,7,128,0,1,224,0,0,240,0,0,48,0,0,0,0, + 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, + 18,22,66,20,0,0,0,8,0,0,28,0,0,60,0,0, + 240,0,1,224,0,1,128,0,0,0,0,252,63,0,252,63, + 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,15,0,28,31,0,31, + 255,192,15,247,192,7,231,192,18,22,66,20,0,0,0,128, + 0,1,192,0,7,112,0,14,56,0,28,28,0,0,0,0, + 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, + 18,21,63,20,0,0,12,24,0,30,60,0,30,60,0,12, + 24,0,0,0,0,0,0,0,252,63,0,252,63,0,252,63, + 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,15,0,28,31,0,31,255,192,15, + 247,192,7,231,192,17,29,87,20,1,249,0,16,0,0,56, + 0,0,120,0,1,224,0,3,192,0,3,0,0,0,0,0, + 254,63,128,254,63,128,254,63,128,120,15,0,56,14,0,60, + 30,0,28,28,0,30,60,0,14,56,0,15,120,0,7,112, + 0,7,240,0,3,224,0,3,224,0,1,192,0,1,192,0, + 3,128,0,3,128,0,7,0,0,255,224,0,255,224,0,255, + 224,0,19,28,84,20,0,249,252,0,0,252,0,0,252,0, + 0,28,0,0,28,0,0,28,0,0,28,252,0,31,255,0, + 31,255,128,31,135,192,31,3,192,30,1,224,28,0,224,28, + 0,224,28,0,224,30,1,224,30,1,192,31,135,192,31,255, + 128,31,255,0,28,252,0,28,0,0,28,0,0,28,0,0, + 28,0,0,255,192,0,255,192,0,255,192,0,17,28,84,20, + 1,249,6,12,0,15,30,0,15,30,0,6,12,0,0,0, + 0,0,0,0,254,63,128,254,63,128,254,63,128,120,15,0, + 56,14,0,60,30,0,28,28,0,30,60,0,14,56,0,15, + 120,0,7,112,0,7,240,0,3,224,0,3,224,0,1,192, + 0,1,192,0,3,128,0,3,128,0,7,0,0,255,224,0, + 255,224,0,255,224,0}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 20, '1' Height: 21 + Calculated Max Values w=21 h=28 x= 8 y=16 dx=20 dy= 0 ascent=23 len=75 + Font Bounding box w=30 h=44 x=-7 y=-11 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-7 + X Font ascent =21 descent=-7 + Max Font ascent =23 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB24r[4775] U8G_SECTION(".progmem.u8g_font_courB24r") = { + 0,30,44,249,245,20,5,57,12,115,32,127,249,23,249,21, + 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, + 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, + 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, + 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, + 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, + 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, + 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, + 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, + 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, + 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, + 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, + 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, + 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, + 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, + 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, + 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, + 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, + 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, + 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, + 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, + 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, + 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, + 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, + 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, + 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, + 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, + 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, + 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, + 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, + 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, + 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, + 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, + 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, + 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, + 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, + 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, + 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, + 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, + 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, + 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, + 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, + 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, + 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, + 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, + 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, + 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, + 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, + 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, + 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, + 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, + 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, + 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, + 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, + 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, + 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, + 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, + 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, + 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, + 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, + 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, + 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, + 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, + 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, + 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, + 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, + 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, + 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, + 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, + 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, + 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, + 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, + 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, + 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, + 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, + 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, + 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, + 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, + 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, + 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, + 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, + 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, + 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, + 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, + 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, + 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, + 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, + 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, + 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, + 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, + 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, + 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, + 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, + 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, + 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, + 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, + 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, + 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, + 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, + 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, + 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, + 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, + 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, + 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, + 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, + 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, + 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, + 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, + 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, + 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, + 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, + 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, + 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, + 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, + 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, + 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, + 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, + 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, + 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, + 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, + 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, + 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, + 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, + 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, + 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, + 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, + 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, + 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, + 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, + 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, + 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, + 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, + 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, + 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, + 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, + 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, + 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, + 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, + 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, + 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, + 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, + 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, + 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, + 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, + 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, + 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, + 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, + 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, + 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, + 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, + 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, + 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, + 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, + 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, + 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, + 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, + 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, + 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, + 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, + 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, + 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, + 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, + 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, + 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, + 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, + 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, + 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, + 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, + 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, + 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, + 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, + 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, + 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, + 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, + 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, + 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, + 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, + 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, + 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, + 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, + 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, + 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, + 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, + 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, + 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, + 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, + 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, + 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, + 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, + 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, + 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, + 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, + 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, + 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, + 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, + 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, + 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, + 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, + 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, + 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, + 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, + 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, + 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, + 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, + 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, + 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, + 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, + 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, + 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, + 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, + 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, + 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, + 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, + 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, + 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, + 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, + 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, + 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, + 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, + 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, + 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, + 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, + 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, + 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, + 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, + 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, + 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, + 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, + 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, + 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, + 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, + 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, + 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, + 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, + 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, + 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, + 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, + 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, + 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, + 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, + 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, + 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, + 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, + 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, + 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, + 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, + 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, + 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, + 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, + 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, + 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, + 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, + 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, + 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, + 227,252,225,248,0,96,255}; +/* + Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 21 + Calculated Max Values w=17 h=27 x= 7 y= 8 dx=20 dy= 0 ascent=23 len=54 + Font Bounding box w=30 h=44 x=-7 y=-11 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =21 descent= 0 + X Font ascent =21 descent= 0 + Max Font ascent =23 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courB24n[686] U8G_SECTION(".progmem.u8g_font_courB24n") = { + 0,30,44,249,245,21,0,0,0,0,42,57,0,23,251,21, + 0,15,14,28,20,3,7,3,128,3,128,3,128,3,128,99, + 140,251,190,127,252,31,240,15,224,15,224,30,240,60,120,120, + 60,48,24,17,17,51,20,1,1,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,255,255, + 128,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,7,10,10,20, + 5,251,30,30,60,60,56,112,112,224,224,192,15,3,6,20, + 2,8,255,254,255,254,255,254,5,4,4,20,7,0,112,248, + 248,112,13,27,54,20,3,252,0,56,0,56,0,120,0,112, + 0,112,0,224,0,224,1,224,1,192,1,192,3,128,3,128, + 7,128,7,0,15,0,14,0,14,0,28,0,28,0,60,0, + 56,0,56,0,112,0,112,0,240,0,224,0,224,0,13,21, + 42,20,3,0,15,128,63,224,127,240,112,112,240,120,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, + 224,56,224,56,240,120,112,112,127,240,63,224,15,128,13,21, + 42,20,4,0,3,0,15,0,127,0,255,0,255,0,103,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,255,248,255,248,255,248,14,21, + 42,20,2,0,7,192,31,240,63,248,120,60,112,28,112,28, + 112,28,0,28,0,56,0,120,0,240,1,224,3,192,7,128, + 15,0,30,0,60,0,120,0,255,252,255,252,255,252,15,21, + 42,20,2,0,7,224,31,240,127,248,120,60,112,28,0,28, + 0,28,0,60,7,248,7,240,7,248,0,124,0,28,0,14, + 0,14,0,14,0,30,224,60,255,252,255,248,63,224,14,21, + 42,20,2,0,0,240,1,240,1,240,3,240,7,240,7,112, + 15,112,14,112,30,112,28,112,56,112,120,112,112,112,255,252, + 255,252,255,252,0,112,0,112,3,252,3,252,3,252,15,21, + 42,20,2,0,63,252,63,252,63,252,56,0,56,0,56,0, + 56,0,63,224,63,248,63,252,56,124,0,30,0,14,0,14, + 0,14,0,14,64,30,240,60,255,248,127,248,31,224,14,21, + 42,20,3,0,1,248,7,248,15,248,31,0,60,0,120,0, + 112,0,112,0,227,192,239,240,255,240,248,120,240,60,224,28, + 224,28,240,28,112,60,120,120,127,248,63,240,15,192,14,21, + 42,20,2,0,255,252,255,252,255,252,224,60,224,56,224,56, + 0,56,0,120,0,112,0,112,0,240,0,224,0,224,1,224, + 1,192,1,192,3,192,3,128,7,128,7,0,7,0,14,21, + 42,20,3,0,15,128,63,224,127,240,112,112,224,56,224,56, + 224,56,112,112,127,240,63,224,63,240,124,248,240,60,224,28, + 224,28,224,28,224,28,248,124,127,248,63,240,15,192,14,21, + 42,20,3,0,15,128,63,224,127,240,120,240,240,120,224,56, + 224,60,224,60,224,60,240,124,120,252,63,220,63,156,15,60, + 0,56,0,120,0,112,97,240,255,224,255,128,126,0}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 6, '1' Height: 7 + Calculated Max Values w= 6 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 + Font Bounding box w=10 h=16 x=-2 y=-4 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR08[2433] U8G_SECTION(".progmem.u8g_font_courR08") = { + 0,10,16,254,252,6,1,151,3,21,32,255,254,9,254,7, + 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, + 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, + 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, + 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, + 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, + 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, + 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, + 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, + 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, + 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, + 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, + 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, + 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, + 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, + 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, + 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, + 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, + 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, + 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, + 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, + 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, + 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, + 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, + 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, + 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, + 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, + 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, + 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, + 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, + 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, + 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, + 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, + 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, + 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, + 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, + 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, + 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, + 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, + 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, + 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, + 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, + 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, + 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, + 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, + 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, + 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, + 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, + 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, + 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, + 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, + 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, + 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, + 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, + 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, + 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, + 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, + 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, + 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, + 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, + 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, + 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, + 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, + 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, + 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, + 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, + 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, + 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, + 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, + 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, + 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, + 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, + 1,3,80,160,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,6,0,1,1,7,7,6,2, + 254,128,0,128,128,128,128,128,4,8,8,6,1,255,32,32, + 112,128,128,112,32,32,6,7,7,6,0,0,56,64,248,32, + 32,68,252,5,5,5,6,0,1,136,112,80,112,136,5,7, + 7,6,0,0,136,80,248,32,248,32,112,1,9,9,6,2, + 254,128,128,128,0,0,128,128,128,128,4,8,8,6,1,255, + 112,128,96,144,144,96,16,224,3,1,1,6,2,5,160,6, + 7,7,6,0,0,48,72,180,164,180,72,48,4,5,5,6, + 1,1,224,16,208,0,240,6,3,3,6,0,1,108,216,108, + 5,3,3,6,0,2,248,8,8,4,1,1,6,1,3,240, + 6,7,7,6,0,0,48,72,188,180,172,72,48,4,1,1, + 6,1,5,240,4,3,3,6,1,4,96,144,96,5,6,6, + 6,0,0,32,32,248,32,0,248,3,4,4,6,2,3,96, + 160,64,224,3,4,4,6,2,3,224,64,32,192,2,2,2, + 6,2,5,64,128,6,7,7,6,0,254,216,72,72,72,116, + 64,64,6,8,8,6,0,255,124,168,168,104,40,40,40,108, + 1,2,2,6,2,2,128,128,3,3,3,6,1,254,64,32, + 192,3,4,4,6,2,3,192,64,64,224,4,5,5,6,1, + 1,96,144,96,0,240,6,3,3,6,1,1,216,108,216,6, + 7,7,6,0,0,192,68,72,244,44,92,132,6,7,7,6, + 0,0,192,68,72,252,52,72,156,6,7,7,6,0,0,224, + 68,40,212,44,92,132,4,7,7,6,0,254,32,0,32,32, + 64,144,96,6,9,9,6,0,0,32,16,0,112,40,72,120, + 72,204,6,9,9,6,0,0,16,32,0,112,40,72,120,72, + 204,6,9,9,6,0,0,32,80,0,112,40,72,120,72,204, + 6,9,9,6,0,0,40,80,0,112,40,72,120,72,204,6, + 8,8,6,0,0,80,0,112,40,72,120,72,204,6,9,9, + 6,0,0,16,40,16,112,40,72,120,72,204,6,6,6,6, + 0,0,124,48,92,112,144,156,4,8,8,6,1,254,96,144, + 128,128,144,96,32,192,5,9,9,6,0,0,32,16,0,248, + 72,112,64,72,248,5,9,9,6,0,0,16,32,0,248,72, + 112,64,72,248,5,9,9,6,0,0,32,80,0,248,72,112, + 64,72,248,5,8,8,6,0,0,80,0,248,72,112,64,72, + 248,5,9,9,6,0,0,64,32,0,248,32,32,32,32,248, + 5,9,9,6,0,0,16,32,0,248,32,32,32,32,248,5, + 9,9,6,0,0,32,80,0,248,32,32,32,32,248,5,8, + 8,6,0,0,80,0,248,32,32,32,32,248,5,6,6,6, + 0,0,240,72,232,72,72,240,6,9,9,6,0,0,40,80, + 0,220,72,104,88,72,200,4,9,9,6,1,0,64,32,0, + 96,144,144,144,144,96,4,9,9,6,1,0,32,64,0,96, + 144,144,144,144,96,4,9,9,6,1,0,32,80,0,96,144, + 144,144,144,96,4,9,9,6,1,0,80,160,0,96,144,144, + 144,144,96,4,8,8,6,1,0,160,0,96,144,144,144,144, + 96,5,5,5,6,0,1,136,80,32,80,136,6,6,6,6, + 0,0,52,72,88,104,72,176,6,9,9,6,0,0,32,16, + 0,204,72,72,72,72,48,6,9,9,6,0,0,16,32,0, + 204,72,72,72,72,48,6,9,9,6,0,0,16,40,0,204, + 72,72,72,72,48,6,8,8,6,0,0,80,0,204,72,72, + 72,72,48,5,9,9,6,0,0,16,32,0,216,136,80,32, + 32,112,5,6,6,6,0,0,192,112,72,112,64,224,6,6, + 6,6,0,0,48,72,88,68,84,200,5,8,8,6,0,0, + 64,32,0,96,16,112,144,104,5,8,8,6,0,0,16,32, + 0,96,16,112,144,104,5,8,8,6,0,0,32,80,0,96, + 16,112,144,104,5,8,8,6,0,0,80,160,0,96,16,112, + 144,104,5,7,7,6,0,0,80,0,96,16,112,144,104,5, + 9,9,6,0,0,32,80,32,0,96,16,112,144,104,6,5, + 5,6,0,0,108,148,124,144,236,4,7,7,6,1,254,96, + 144,128,144,96,32,192,4,8,8,6,1,0,64,32,0,96, + 144,240,128,112,4,8,8,6,1,0,32,64,0,96,144,240, + 128,112,4,8,8,6,1,0,64,160,0,96,144,240,128,112, + 4,7,7,6,1,0,160,0,96,144,240,128,112,5,8,8, + 6,0,0,64,32,0,96,32,32,32,248,5,8,8,6,0, + 0,16,32,0,96,32,32,32,248,5,8,8,6,0,0,32, + 80,0,96,32,32,32,248,5,7,7,6,0,0,80,0,96, + 32,32,32,248,4,8,8,6,1,0,208,96,160,112,144,144, + 144,96,6,8,8,6,0,0,40,80,0,176,72,72,72,236, + 4,8,8,6,1,0,64,32,0,96,144,144,144,96,4,8, + 8,6,1,0,16,32,0,96,144,144,144,96,4,8,8,6, + 1,0,64,160,0,96,144,144,144,96,4,8,8,6,1,0, + 80,160,0,96,144,144,144,96,4,7,7,6,1,0,160,0, + 96,144,144,144,96,5,5,5,6,0,1,32,0,248,0,32, + 6,6,6,6,0,0,4,56,88,104,72,176,6,8,8,6, + 0,0,32,16,0,216,72,72,72,52,6,8,8,6,0,0, + 16,32,0,216,72,72,72,52,6,8,8,6,0,0,32,80, + 0,216,72,72,72,52,6,7,7,6,0,0,80,0,216,72, + 72,72,52,5,10,10,6,0,254,16,32,0,216,72,72,72, + 48,32,192,5,9,9,6,0,254,192,64,112,72,72,72,112, + 64,224,5,9,9,6,0,254,80,0,216,72,72,72,48,32, + 192}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 6, '1' Height: 7 + Calculated Max Values w= 6 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 + Font Bounding box w=10 h=16 x=-2 y=-4 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 6 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR08r[1157] U8G_SECTION(".progmem.u8g_font_courR08r") = { + 0,10,16,254,252,6,1,151,3,21,32,127,254,8,254,7, + 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, + 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, + 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, + 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, + 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, + 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, + 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, + 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, + 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, + 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, + 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, + 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, + 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, + 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, + 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, + 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, + 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, + 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, + 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, + 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, + 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, + 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, + 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, + 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, + 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, + 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, + 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, + 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, + 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, + 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, + 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, + 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, + 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, + 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, + 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, + 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, + 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, + 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, + 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, + 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, + 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, + 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, + 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, + 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, + 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, + 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, + 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, + 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, + 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, + 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, + 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, + 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, + 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, + 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, + 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, + 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, + 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, + 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, + 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, + 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, + 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, + 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, + 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, + 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, + 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, + 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, + 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, + 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, + 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, + 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, + 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, + 1,3,80,160,255}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 9, '1' Height: 10 + Calculated Max Values w=10 h=13 x= 4 y= 8 dx= 9 dy= 0 ascent=12 len=24 + Font Bounding box w=14 h=20 x=-3 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR10[3052] U8G_SECTION(".progmem.u8g_font_courR10") = { + 0,14,20,253,251,9,1,224,3,220,32,255,253,12,253,10, + 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, + 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, + 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, + 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, + 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, + 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, + 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, + 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, + 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, + 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, + 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, + 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, + 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, + 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, + 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, + 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, + 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, + 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, + 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, + 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, + 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, + 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, + 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, + 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, + 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, + 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, + 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, + 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, + 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, + 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, + 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, + 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, + 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, + 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, + 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, + 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, + 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, + 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, + 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, + 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, + 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, + 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, + 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, + 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, + 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, + 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, + 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, + 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, + 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, + 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, + 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, + 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, + 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, + 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, + 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, + 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, + 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, + 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, + 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, + 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, + 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, + 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, + 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, + 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, + 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, + 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, + 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, + 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, + 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, + 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, + 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, + 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, + 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, + 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, + 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, + 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, + 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, + 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, + 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, + 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, + 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, + 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, + 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, + 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, + 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, + 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, + 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, + 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, + 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, + 100,152,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,9,0,1,1,9,9,9,4,254,128, + 128,0,128,128,128,128,128,128,5,9,9,9,2,0,32,32, + 120,136,128,136,112,32,32,7,9,9,9,1,0,24,36,32, + 32,120,32,32,66,252,6,6,6,9,1,1,180,72,132,132, + 72,180,7,9,9,9,1,0,238,68,68,40,124,16,124,16, + 56,1,11,11,9,3,254,128,128,128,128,0,0,128,128,128, + 128,128,6,10,10,9,1,255,60,68,64,240,136,68,60,8, + 136,240,5,1,1,9,2,8,216,8,9,9,9,0,0,60, + 66,153,165,161,165,153,66,60,4,6,6,9,2,3,192,32, + 224,176,0,240,8,7,7,9,0,0,17,34,68,204,68,34, + 17,7,3,3,9,1,3,254,2,2,6,1,1,9,1,4, + 252,8,9,9,9,0,0,60,66,185,165,185,169,165,66,60, + 4,1,1,9,2,8,240,4,4,4,9,2,6,96,144,144, + 96,7,7,7,9,1,1,16,16,254,16,16,0,254,4,6, + 6,9,2,4,96,144,16,32,64,240,4,6,6,9,2,4, + 96,144,96,16,144,96,4,2,2,9,2,8,48,192,8,10, + 10,9,0,253,198,66,66,66,66,70,123,64,64,64,7,10, + 10,9,1,255,126,148,148,148,116,20,20,20,20,62,2,2, + 2,9,3,3,192,192,3,3,3,9,2,253,64,32,224,3, + 6,6,9,3,4,64,192,64,64,64,224,4,6,6,9,2, + 3,96,144,144,96,0,240,8,7,7,9,0,0,136,68,34, + 51,34,68,136,10,10,20,9,255,0,64,0,193,0,66,0, + 68,0,68,128,233,128,18,128,20,128,39,192,64,128,10,10, + 20,9,255,0,64,0,193,0,66,0,68,0,69,128,234,64, + 16,64,16,128,33,0,67,192,10,10,20,9,255,0,96,0, + 145,0,98,0,20,0,148,128,105,128,18,128,20,128,39,192, + 64,128,5,9,9,9,2,254,32,32,0,32,96,128,128,136, + 112,9,12,24,9,0,0,48,0,12,0,0,0,56,0,8, + 0,20,0,20,0,34,0,62,0,65,0,65,0,247,128,9, + 12,24,9,0,0,12,0,48,0,0,0,56,0,8,0,20, + 0,20,0,34,0,62,0,65,0,65,0,247,128,9,12,24, + 9,0,0,8,0,20,0,0,0,56,0,8,0,20,0,20, + 0,34,0,62,0,65,0,65,0,247,128,9,12,24,9,0, + 0,26,0,44,0,0,0,56,0,8,0,20,0,20,0,34, + 0,62,0,65,0,65,0,247,128,9,11,22,9,0,0,54, + 0,0,0,56,0,8,0,20,0,20,0,34,0,62,0,65, + 0,65,0,247,128,9,12,24,9,0,0,24,0,36,0,24, + 0,56,0,8,0,20,0,20,0,34,0,62,0,65,0,65, + 0,247,128,9,9,18,9,255,0,31,128,12,128,20,0,20, + 128,39,128,60,128,68,0,68,128,239,128,7,12,12,9,1, + 253,58,70,130,128,128,128,128,66,60,16,8,56,7,12,12, + 9,1,0,96,24,0,254,66,66,72,120,72,66,66,254,7, + 12,12,9,1,0,12,48,0,254,66,66,72,120,72,66,66, + 254,7,12,12,9,1,0,16,40,0,254,66,66,72,120,72, + 66,66,254,7,11,11,9,1,0,108,0,254,66,66,72,120, + 72,66,66,254,5,12,12,9,2,0,192,48,0,248,32,32, + 32,32,32,32,32,248,5,12,12,9,2,0,24,96,0,248, + 32,32,32,32,32,32,32,248,5,12,12,9,2,0,32,80, + 0,248,32,32,32,32,32,32,32,248,5,11,11,9,2,0, + 216,0,248,32,32,32,32,32,32,32,248,8,9,9,9,0, + 0,252,66,65,65,241,65,65,66,252,8,12,12,9,0,0, + 26,44,0,231,98,82,82,74,74,70,70,226,8,12,12,9, + 0,0,48,12,0,60,66,129,129,129,129,129,66,60,8,12, + 12,9,0,0,12,48,0,60,66,129,129,129,129,129,66,60, + 8,12,12,9,0,0,16,40,0,60,66,129,129,129,129,129, + 66,60,8,12,12,9,0,0,26,44,0,60,66,129,129,129, + 129,129,66,60,8,11,11,9,0,0,102,0,60,66,129,129, + 129,129,129,66,60,7,7,7,9,1,1,130,68,40,16,40, + 68,130,9,9,18,9,255,0,30,128,33,0,66,128,68,128, + 72,128,80,128,32,128,97,0,158,0,8,12,12,9,0,0, + 48,12,0,231,66,66,66,66,66,66,66,60,8,12,12,9, + 0,0,12,48,0,231,66,66,66,66,66,66,66,60,8,12, + 12,9,0,0,16,40,0,231,66,66,66,66,66,66,66,60, + 8,11,11,9,0,0,102,0,231,66,66,66,66,66,66,66, + 60,7,12,12,9,1,0,12,48,0,238,68,68,40,40,16, + 16,16,124,7,9,9,9,0,0,224,64,124,66,66,66,124, + 64,224,7,9,9,9,0,0,56,68,68,88,68,66,66,82, + 204,7,10,10,9,1,0,96,24,0,120,132,4,124,132,140, + 118,7,10,10,9,1,0,24,96,0,120,132,4,124,132,140, + 118,7,10,10,9,1,0,16,40,0,120,132,4,124,132,140, + 118,7,10,10,9,1,0,52,88,0,120,132,4,124,132,140, + 118,7,9,9,9,1,0,108,0,120,132,4,124,132,140,118, + 7,10,10,9,1,0,48,72,48,120,132,4,124,132,140,118, + 8,7,7,9,0,0,118,137,9,127,136,137,118,7,10,10, + 9,1,253,58,70,130,128,128,66,60,16,8,56,7,10,10, + 9,1,0,96,24,0,56,68,130,254,128,66,60,7,10,10, + 9,1,0,12,48,0,56,68,130,254,128,66,60,7,10,10, + 9,1,0,16,40,0,56,68,130,254,128,66,60,7,9,9, + 9,1,0,108,0,56,68,130,254,128,66,60,5,10,10,9, + 2,0,192,48,0,224,32,32,32,32,32,248,5,10,10,9, + 2,0,48,192,0,224,32,32,32,32,32,248,5,10,10,9, + 2,0,32,80,0,224,32,32,32,32,32,248,5,9,9,9, + 2,0,216,0,224,32,32,32,32,32,248,8,12,12,9,0, + 0,2,228,24,40,68,60,66,129,129,129,66,60,8,10,10, + 9,0,0,26,44,0,220,98,66,66,66,66,231,8,10,10, + 9,0,0,48,12,0,60,66,129,129,129,66,60,8,10,10, + 9,0,0,12,48,0,60,66,129,129,129,66,60,8,10,10, + 9,0,0,16,40,0,60,66,129,129,129,66,60,8,10,10, + 9,0,0,26,44,0,60,66,129,129,129,66,60,8,9,9, + 9,0,0,108,0,60,66,129,129,129,66,60,8,7,7,9, + 0,1,24,24,0,255,0,24,24,8,7,7,9,0,0,61, + 70,137,145,161,66,188,8,10,10,9,0,0,48,12,0,198, + 66,66,66,66,70,59,8,10,10,9,0,0,12,48,0,198, + 66,66,66,66,70,59,8,10,10,9,0,0,16,40,0,198, + 66,66,66,66,70,59,8,9,9,9,0,0,108,0,198,66, + 66,66,66,70,59,8,13,13,9,0,253,6,24,0,231,66, + 66,36,36,24,8,16,16,120,8,12,12,9,0,253,192,64, + 92,98,65,65,65,98,92,64,64,240,8,12,12,9,0,253, + 54,0,231,66,66,36,36,24,8,16,16,120}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 9, '1' Height: 10 + Calculated Max Values w= 9 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=11 len=18 + Font Bounding box w=14 h=20 x=-3 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =11 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR10r[1443] U8G_SECTION(".progmem.u8g_font_courR10r") = { + 0,14,20,253,251,9,1,224,3,220,32,127,253,11,253,10, + 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, + 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, + 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, + 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, + 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, + 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, + 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, + 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, + 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, + 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, + 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, + 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, + 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, + 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, + 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, + 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, + 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, + 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, + 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, + 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, + 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, + 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, + 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, + 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, + 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, + 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, + 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, + 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, + 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, + 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, + 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, + 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, + 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, + 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, + 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, + 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, + 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, + 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, + 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, + 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, + 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, + 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, + 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, + 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, + 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, + 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, + 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, + 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, + 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, + 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, + 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, + 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, + 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, + 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, + 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, + 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, + 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, + 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, + 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, + 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, + 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, + 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, + 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, + 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, + 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, + 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, + 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, + 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, + 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, + 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, + 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, + 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, + 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, + 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, + 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, + 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, + 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, + 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, + 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, + 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, + 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, + 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, + 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, + 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, + 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, + 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, + 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, + 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, + 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, + 100,152,255}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 11 + Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=14 len=28 + Font Bounding box w=15 h=24 x=-3 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR12[3471] U8G_SECTION(".progmem.u8g_font_courR12") = { + 0,15,24,253,250,10,2,12,4,92,32,255,253,14,253,11, + 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, + 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, + 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, + 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, + 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, + 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, + 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, + 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, + 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, + 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, + 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, + 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, + 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, + 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, + 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, + 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, + 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, + 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, + 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, + 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, + 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, + 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, + 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, + 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, + 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, + 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, + 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, + 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, + 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, + 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, + 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, + 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, + 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, + 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, + 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, + 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, + 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, + 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, + 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, + 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, + 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, + 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, + 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, + 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, + 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, + 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, + 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, + 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, + 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, + 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, + 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, + 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, + 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, + 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, + 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, + 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, + 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, + 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, + 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, + 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, + 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, + 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, + 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, + 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, + 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, + 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, + 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, + 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, + 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, + 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, + 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, + 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, + 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, + 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, + 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, + 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, + 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, + 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, + 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, + 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, + 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, + 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, + 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, + 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, + 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, + 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, + 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, + 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, + 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, + 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, + 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, + 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, + 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, + 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, + 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, + 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, + 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, + 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, + 3,10,1,3,96,146,12,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,10,0,1,1,10, + 10,10,4,253,128,128,0,128,128,128,128,128,128,128,5,10, + 10,10,2,0,32,32,120,136,128,128,136,112,32,32,8,10, + 10,10,1,0,28,34,32,32,248,32,32,32,65,255,7,7, + 7,10,1,1,130,124,68,68,68,124,130,9,10,20,10,0, + 0,227,128,65,0,34,0,34,0,20,0,62,0,8,0,62, + 0,8,0,62,0,1,12,12,10,4,254,128,128,128,128,128, + 0,0,128,128,128,128,128,9,12,24,10,0,255,31,0,33, + 0,33,0,112,0,140,0,131,0,96,128,24,128,7,0,66, + 0,66,0,124,0,4,2,2,10,3,8,144,144,10,10,20, + 10,0,0,30,0,33,0,64,128,142,64,144,64,144,64,142, + 64,64,128,33,0,30,0,5,7,7,10,2,3,112,8,120, + 136,120,0,248,7,7,7,10,1,0,18,36,72,144,72,36, + 18,7,4,4,10,1,2,254,2,2,2,7,1,1,10,1, + 4,254,10,10,20,10,0,0,30,0,33,0,64,128,156,64, + 146,64,156,64,146,64,64,128,33,0,30,0,5,1,1,10, + 2,8,248,5,5,5,10,2,6,112,136,136,136,112,7,9, + 9,10,1,0,16,16,16,254,16,16,16,0,254,4,6,6, + 10,2,5,96,144,32,64,144,240,4,6,6,10,3,5,96, + 144,32,16,144,96,3,3,3,10,4,8,32,64,128,8,10, + 10,10,1,253,198,66,66,66,66,70,123,64,64,64,7,12, + 12,10,1,255,62,84,148,148,148,84,52,20,20,20,20,62, + 2,2,2,10,4,4,192,192,3,4,4,10,3,253,64,64, + 32,224,5,6,6,10,2,5,32,224,32,32,32,248,5,7, + 7,10,2,3,112,136,136,136,112,0,248,7,7,7,10,1, + 0,144,72,36,18,36,72,144,10,11,22,10,0,0,32,0, + 224,64,32,128,33,0,34,0,252,128,9,128,18,128,36,128, + 71,192,0,128,10,11,22,10,0,0,32,0,224,64,32,128, + 33,0,34,0,253,128,10,64,16,128,33,0,66,64,3,192, + 10,11,22,10,0,0,96,0,144,64,32,128,17,0,146,0, + 100,128,9,128,18,128,36,128,71,192,0,128,6,10,10,10, + 1,253,16,16,0,16,16,96,128,132,132,120,9,14,28,10, + 0,0,32,0,16,0,8,0,0,0,120,0,20,0,20,0, + 34,0,34,0,34,0,62,0,65,0,65,0,227,128,9,14, + 28,10,0,0,4,0,8,0,16,0,0,0,120,0,20,0, + 20,0,34,0,34,0,34,0,62,0,65,0,65,0,227,128, + 9,14,28,10,0,0,8,0,20,0,34,0,0,0,120,0, + 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, + 227,128,9,13,26,10,0,0,50,0,76,0,0,0,120,0, + 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, + 227,128,9,13,26,10,0,0,36,0,36,0,0,0,120,0, + 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, + 227,128,9,14,28,10,0,0,24,0,36,0,36,0,24,0, + 120,0,20,0,20,0,34,0,34,0,34,0,62,0,65,0, + 65,0,227,128,9,10,20,10,0,0,127,128,40,128,40,128, + 74,0,78,0,122,0,72,128,136,128,136,128,223,128,8,13, + 13,10,1,253,29,99,65,128,128,128,128,65,99,28,16,8, + 56,7,14,14,10,1,0,32,16,8,0,254,66,66,72,120, + 72,64,66,66,254,7,14,14,10,1,0,4,8,16,0,254, + 66,66,72,120,72,64,66,66,254,7,14,14,10,1,0,16, + 40,68,0,254,66,66,72,120,72,64,66,66,254,7,13,13, + 10,1,0,36,36,0,254,66,66,72,120,72,64,66,66,254, + 7,14,14,10,1,0,32,16,8,0,254,16,16,16,16,16, + 16,16,16,254,7,14,14,10,1,0,8,16,32,0,254,16, + 16,16,16,16,16,16,16,254,7,14,14,10,1,0,16,40, + 68,0,254,16,16,16,16,16,16,16,16,254,7,13,13,10, + 1,0,68,68,0,254,16,16,16,16,16,16,16,16,254,8, + 10,10,10,1,0,248,70,66,65,241,65,65,66,70,248,9, + 13,26,10,0,0,25,0,38,0,0,0,231,128,97,0,81, + 0,81,0,73,0,73,0,69,0,69,0,67,0,243,0,8, + 14,14,10,1,0,32,16,8,0,60,66,66,129,129,129,129, + 66,66,60,8,14,14,10,1,0,4,8,16,0,60,66,66, + 129,129,129,129,66,66,60,8,14,14,10,1,0,8,20,34, + 0,60,66,66,129,129,129,129,66,66,60,8,13,13,10,1, + 0,50,76,0,60,66,66,129,129,129,129,66,66,60,8,13, + 13,10,1,0,36,36,0,60,66,66,129,129,129,129,66,66, + 60,7,7,7,10,1,1,130,68,40,16,40,68,130,8,10, + 10,10,1,0,61,66,66,133,137,145,161,66,66,188,9,14, + 28,10,0,0,16,0,8,0,4,0,0,0,247,128,65,0, + 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, + 9,14,28,10,0,0,2,0,4,0,8,0,0,0,247,128, + 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, + 28,0,9,14,28,10,0,0,8,0,20,0,34,0,0,0, + 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, + 34,0,28,0,9,13,26,10,0,0,34,0,34,0,0,0, + 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, + 34,0,28,0,9,14,28,10,0,0,2,0,4,0,8,0, + 0,0,227,128,65,0,34,0,34,0,20,0,8,0,8,0, + 8,0,8,0,62,0,8,10,10,10,1,0,224,64,124,66, + 65,66,124,64,64,224,7,11,11,10,1,0,56,68,68,72, + 88,68,66,66,66,82,204,7,11,11,10,1,0,32,16,8, + 0,56,68,4,124,132,132,122,7,11,11,10,1,0,4,8, + 16,0,56,68,4,124,132,132,122,7,11,11,10,1,0,16, + 40,68,0,56,68,4,124,132,132,122,7,10,10,10,1,0, + 50,76,0,56,68,4,124,132,132,122,7,10,10,10,1,0, + 36,36,0,56,68,4,124,132,132,122,7,12,12,10,1,0, + 24,36,36,24,0,56,68,4,124,132,132,122,9,7,14,10, + 0,0,55,0,72,128,8,128,127,128,136,0,136,128,119,0, + 7,10,10,10,1,253,58,70,130,128,128,66,60,16,8,56, + 7,11,11,10,1,0,32,16,8,0,56,68,130,254,128,66, + 60,7,11,11,10,1,0,4,8,16,0,56,68,130,254,128, + 66,60,7,11,11,10,1,0,16,40,68,0,56,68,130,254, + 128,66,60,7,10,10,10,1,0,36,36,0,56,68,130,254, + 128,66,60,7,11,11,10,1,0,32,16,8,0,112,16,16, + 16,16,16,254,7,11,11,10,1,0,8,16,32,0,112,16, + 16,16,16,16,254,7,11,11,10,1,0,16,40,68,0,112, + 16,16,16,16,16,254,7,10,10,10,1,0,72,72,0,112, + 16,16,16,16,16,254,7,11,11,10,1,0,230,24,104,4, + 60,66,130,130,130,68,56,8,10,10,10,1,0,50,76,0, + 220,98,66,66,66,66,231,7,11,11,10,1,0,32,16,8, + 0,56,68,130,130,130,68,56,7,11,11,10,1,0,8,16, + 32,0,56,68,130,130,130,68,56,7,11,11,10,1,0,16, + 40,68,0,56,68,130,130,130,68,56,7,10,10,10,1,0, + 50,76,0,56,68,130,130,130,68,56,7,10,10,10,1,0, + 68,68,0,56,68,130,130,130,68,56,8,7,7,10,1,1, + 24,24,0,255,0,24,24,7,9,9,10,1,255,2,58,68, + 138,146,162,68,184,128,8,11,11,10,1,0,32,16,8,0, + 198,66,66,66,66,70,59,8,11,11,10,1,0,4,8,16, + 0,198,66,66,66,66,70,59,8,11,11,10,1,0,16,40, + 68,0,198,66,66,66,66,70,59,8,10,10,10,1,0,36, + 36,0,198,66,66,66,66,70,59,9,14,28,10,0,253,2, + 0,4,0,8,0,0,0,227,128,65,0,34,0,34,0,20, + 0,20,0,8,0,8,0,16,0,120,0,8,14,14,10,1, + 253,192,64,64,64,92,98,65,65,65,98,92,64,64,240,9, + 13,26,10,0,253,18,0,18,0,0,0,227,128,65,0,34, + 0,34,0,20,0,20,0,8,0,8,0,16,0,120,0}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 11 + Calculated Max Values w=10 h=13 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 + Font Bounding box w=15 h=24 x=-3 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR12r[1592] U8G_SECTION(".progmem.u8g_font_courR12r") = { + 0,15,24,253,250,10,2,12,4,92,32,127,253,12,253,11, + 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, + 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, + 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, + 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, + 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, + 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, + 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, + 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, + 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, + 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, + 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, + 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, + 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, + 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, + 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, + 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, + 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, + 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, + 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, + 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, + 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, + 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, + 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, + 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, + 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, + 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, + 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, + 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, + 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, + 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, + 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, + 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, + 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, + 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, + 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, + 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, + 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, + 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, + 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, + 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, + 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, + 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, + 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, + 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, + 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, + 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, + 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, + 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, + 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, + 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, + 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, + 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, + 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, + 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, + 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, + 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, + 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, + 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, + 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, + 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, + 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, + 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, + 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, + 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, + 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, + 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, + 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, + 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, + 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, + 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, + 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, + 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, + 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, + 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, + 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, + 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, + 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, + 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, + 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, + 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, + 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, + 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, + 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, + 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, + 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, + 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, + 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, + 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, + 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, + 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, + 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, + 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, + 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, + 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, + 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, + 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, + 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, + 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, + 3,10,1,3,96,146,12,255}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=11 h=16 x= 5 y=10 dx=11 dy= 0 ascent=15 len=32 + Font Bounding box w=16 h=26 x=-3 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR14[4276] U8G_SECTION(".progmem.u8g_font_courR14") = { + 0,16,26,253,249,11,2,74,5,74,32,255,252,15,252,12, + 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, + 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, + 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, + 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, + 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, + 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, + 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, + 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, + 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, + 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, + 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, + 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, + 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, + 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, + 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, + 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, + 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, + 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, + 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, + 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, + 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, + 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, + 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, + 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, + 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, + 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, + 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, + 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, + 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, + 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, + 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, + 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, + 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, + 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, + 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, + 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, + 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, + 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, + 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, + 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, + 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, + 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, + 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, + 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, + 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, + 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, + 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, + 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, + 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, + 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, + 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, + 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, + 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, + 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, + 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, + 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, + 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, + 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, + 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, + 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, + 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, + 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, + 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, + 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, + 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, + 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, + 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, + 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, + 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, + 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, + 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, + 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, + 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, + 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, + 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, + 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, + 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, + 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, + 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, + 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, + 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, + 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, + 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, + 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, + 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, + 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, + 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, + 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, + 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, + 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, + 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, + 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, + 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, + 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, + 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, + 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, + 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, + 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, + 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, + 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, + 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, + 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, + 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, + 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, + 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, + 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, + 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, + 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, + 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, + 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, + 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, + 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, + 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, + 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, + 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, + 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, + 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, + 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, + 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, + 96,153,6,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,11,0,1,2,12,12,11,4,252, + 192,192,0,0,128,128,192,192,192,192,192,192,6,12,12,11, + 2,0,16,16,16,60,68,132,128,128,68,56,16,16,8,11, + 11,11,2,0,28,34,32,32,16,252,16,32,33,65,126,6, + 7,7,11,2,2,132,120,132,132,132,120,132,9,11,22,11, + 1,0,227,128,65,0,34,0,34,0,20,0,20,0,127,0, + 8,0,127,0,8,0,62,0,1,15,15,11,5,253,128,128, + 128,128,128,128,0,0,0,128,128,128,128,128,128,7,14,14, + 11,2,254,62,66,66,64,112,140,130,98,28,6,130,130,132, + 252,4,2,2,11,3,10,144,144,11,11,22,11,0,0,31, + 0,96,192,79,64,145,32,160,32,160,32,160,32,145,32,78, + 64,96,192,31,0,6,8,8,11,2,3,112,8,120,136,152, + 236,0,252,10,8,16,11,1,0,24,192,49,128,99,0,198, + 0,198,0,99,0,49,128,24,192,9,4,8,11,1,3,255, + 128,0,128,0,128,0,128,8,1,1,11,1,5,255,11,11, + 22,11,0,0,31,0,96,192,94,64,145,32,145,32,158,32, + 148,32,146,32,81,64,96,128,31,0,5,1,1,11,3,10, + 248,5,5,5,11,3,6,112,136,136,136,112,9,9,18,11, + 1,1,8,0,8,0,8,0,255,128,8,0,8,0,8,0, + 0,0,255,128,5,7,7,11,3,5,112,136,8,16,32,64, + 248,5,7,7,11,3,5,112,136,8,48,8,136,112,3,3, + 3,11,4,9,32,64,128,9,12,24,11,1,252,195,0,65, + 0,65,0,65,0,65,0,65,0,67,0,125,128,64,0,64, + 0,64,0,64,0,8,14,14,11,1,254,63,74,138,138,138, + 74,58,10,10,10,10,10,10,59,2,2,2,11,4,5,192, + 192,3,3,3,11,4,253,64,32,192,5,7,7,11,3,5, + 32,224,32,32,32,32,248,6,8,8,11,2,3,120,132,132, + 132,132,120,0,252,10,8,16,11,0,0,198,0,99,0,49, + 128,24,192,24,192,49,128,99,0,198,0,11,12,24,11,0, + 0,32,0,224,64,32,128,33,0,33,0,34,64,252,192,9, + 64,10,64,19,224,32,64,0,224,11,12,24,11,0,0,32, + 0,224,64,32,128,33,0,33,0,34,192,253,32,8,32,8, + 64,16,128,33,0,3,224,11,12,24,11,0,0,112,0,136, + 64,8,128,49,0,9,0,138,64,116,192,9,64,10,64,19, + 224,32,64,0,224,6,11,11,11,2,253,24,24,0,16,16, + 112,128,128,132,132,120,11,15,30,11,0,0,16,0,8,0, + 4,0,0,0,60,0,4,0,10,0,10,0,17,0,17,0, + 32,128,63,128,64,64,64,64,241,224,11,15,30,11,0,0, + 1,0,2,0,4,0,0,0,60,0,4,0,10,0,10,0, + 17,0,17,0,32,128,63,128,64,64,64,64,241,224,11,15, + 30,11,0,0,12,0,18,0,33,0,0,0,60,0,4,0, + 10,0,10,0,17,0,17,0,32,128,63,128,64,64,64,64, + 241,224,11,14,28,11,0,0,25,0,38,0,0,0,60,0, + 4,0,10,0,10,0,17,0,17,0,32,128,63,128,64,64, + 64,64,241,224,11,14,28,11,0,0,18,0,18,0,0,0, + 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, + 64,64,64,64,241,224,11,15,30,11,0,0,12,0,18,0, + 18,0,12,0,60,0,4,0,10,0,10,0,17,0,17,0, + 32,128,63,128,64,64,64,64,241,224,11,11,22,11,255,0, + 31,224,6,32,10,32,10,0,18,64,19,192,62,64,34,0, + 66,32,66,32,231,224,9,14,28,11,1,253,30,128,97,128, + 64,128,128,0,128,0,128,0,128,0,128,0,64,128,97,0, + 30,0,8,0,4,0,24,0,8,15,15,11,1,0,32,16, + 8,0,255,65,65,65,72,120,72,65,65,65,255,8,15,15, + 11,1,0,4,8,16,0,255,65,65,65,72,120,72,65,65, + 65,255,8,15,15,11,1,0,24,36,66,0,255,65,65,65, + 72,120,72,65,65,65,255,8,14,14,11,1,0,36,36,0, + 255,65,65,65,72,120,72,65,65,65,255,7,15,15,11,2, + 0,32,16,8,0,254,16,16,16,16,16,16,16,16,16,254, + 7,15,15,11,2,0,8,16,32,0,254,16,16,16,16,16, + 16,16,16,16,254,7,15,15,11,2,0,24,36,66,0,254, + 16,16,16,16,16,16,16,16,16,254,7,14,14,11,2,0, + 36,36,0,254,16,16,16,16,16,16,16,16,16,254,8,11, + 11,11,1,0,252,66,65,65,65,241,65,65,65,66,252,9, + 14,28,11,1,0,25,0,38,0,0,0,231,128,97,0,81, + 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, + 0,9,15,30,11,1,0,16,0,8,0,4,0,0,0,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,9,15,30,11,1,0,4,0,8,0,16, + 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, + 128,128,128,65,0,99,0,28,0,9,15,30,11,1,0,12, + 0,18,0,33,0,0,0,28,0,99,0,65,0,128,128,128, + 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, + 11,1,0,25,0,38,0,0,0,28,0,99,0,65,0,128, + 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, + 14,28,11,1,0,18,0,18,0,0,0,28,0,99,0,65, + 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, + 0,9,9,18,11,1,1,128,128,65,0,34,0,20,0,8, + 0,20,0,34,0,65,0,128,128,11,11,22,11,0,0,14, + 32,49,192,32,128,65,64,66,64,68,64,72,64,80,64,32, + 128,113,128,142,0,10,15,30,11,0,0,16,0,8,0,4, + 0,0,0,243,192,64,128,64,128,64,128,64,128,64,128,64, + 128,64,128,64,128,33,0,30,0,10,15,30,11,0,0,2, + 0,4,0,8,0,0,0,243,192,64,128,64,128,64,128,64, + 128,64,128,64,128,64,128,64,128,33,0,30,0,10,15,30, + 11,0,0,12,0,18,0,33,0,0,0,243,192,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,64,128,33,0,30, + 0,10,14,28,11,0,0,18,0,18,0,0,0,243,192,64, + 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, + 0,30,0,9,15,30,11,1,0,2,0,4,0,8,0,0, + 0,227,128,65,0,34,0,34,0,20,0,20,0,8,0,8, + 0,8,0,8,0,62,0,9,11,22,11,1,0,224,0,64, + 0,126,0,65,0,64,128,64,128,65,0,126,0,64,0,64, + 0,224,0,8,11,11,11,1,0,60,66,66,68,88,70,65, + 65,65,73,230,9,12,24,11,1,0,32,0,16,0,8,0, + 0,0,60,0,66,0,2,0,126,0,130,0,130,0,134,0, + 123,128,9,12,24,11,1,0,4,0,8,0,16,0,0,0, + 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, + 9,12,24,11,1,0,24,0,36,0,66,0,0,0,60,0, + 66,0,2,0,126,0,130,0,130,0,134,0,123,128,9,11, + 22,11,1,0,50,0,76,0,0,0,60,0,66,0,2,0, + 126,0,130,0,130,0,134,0,123,128,9,11,22,11,1,0, + 36,0,36,0,0,0,60,0,66,0,2,0,126,0,130,0, + 130,0,134,0,123,128,9,13,26,11,1,0,24,0,36,0, + 36,0,24,0,0,0,60,0,66,0,2,0,126,0,130,0, + 130,0,134,0,123,128,11,8,16,11,0,0,113,128,138,64, + 4,32,127,224,132,0,132,0,138,32,113,192,8,11,11,11, + 1,253,61,67,129,128,128,128,67,60,16,8,48,8,12,12, + 11,1,0,32,16,8,0,60,66,129,255,128,128,67,60,8, + 12,12,11,1,0,2,4,8,0,60,66,129,255,128,128,67, + 60,8,12,12,11,1,0,24,36,66,0,60,66,129,255,128, + 128,67,60,8,11,11,11,1,0,36,36,0,60,66,129,255, + 128,128,67,60,7,12,12,11,2,0,32,16,8,0,112,16, + 16,16,16,16,16,254,7,12,12,11,2,0,8,16,32,0, + 112,16,16,16,16,16,16,254,7,12,12,11,2,0,48,72, + 132,0,112,16,16,16,16,16,16,254,7,11,11,11,2,0, + 72,72,0,112,16,16,16,16,16,16,254,8,12,12,11,1, + 0,114,140,52,66,62,67,129,129,129,129,66,60,9,11,22, + 11,1,0,50,0,76,0,0,0,222,0,97,0,65,0,65, + 0,65,0,65,0,65,0,227,128,8,12,12,11,1,0,32, + 16,8,0,60,66,129,129,129,129,66,60,8,12,12,11,1, + 0,4,8,16,0,60,66,129,129,129,129,66,60,8,12,12, + 11,1,0,24,36,66,0,60,66,129,129,129,129,66,60,8, + 11,11,11,1,0,50,76,0,60,66,129,129,129,129,66,60, + 8,11,11,11,1,0,36,36,0,60,66,129,129,129,129,66, + 60,8,9,9,11,1,1,24,24,0,0,255,0,0,24,24, + 8,8,8,11,1,0,61,66,133,137,145,161,66,188,9,12, + 24,11,1,0,32,0,16,0,8,0,0,0,195,0,65,0, + 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,11, + 1,0,2,0,4,0,8,0,0,0,195,0,65,0,65,0, + 65,0,65,0,65,0,67,0,61,128,9,12,24,11,1,0, + 24,0,36,0,66,0,0,0,195,0,65,0,65,0,65,0, + 65,0,65,0,67,0,61,128,9,11,22,11,1,0,36,0, + 36,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, + 67,0,61,128,9,16,32,11,1,252,2,0,4,0,8,0, + 0,0,227,128,65,0,65,0,34,0,34,0,20,0,20,0, + 8,0,8,0,16,0,16,0,248,0,9,16,32,11,1,252, + 192,0,64,0,64,0,64,0,94,0,97,0,64,128,64,128, + 64,128,64,128,97,0,94,0,64,0,64,0,64,0,240,0, + 9,15,30,11,1,252,36,0,36,0,0,0,227,128,65,0, + 65,0,34,0,34,0,20,0,20,0,8,0,8,0,16,0, + 16,0,248,0}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=11 h=16 x= 5 y= 9 dx=11 dy= 0 ascent=13 len=26 + Font Bounding box w=16 h=26 x=-3 y=-7 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR14r[1988] U8G_SECTION(".progmem.u8g_font_courR14r") = { + 0,16,26,253,249,11,2,74,5,74,32,127,252,13,252,12, + 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, + 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, + 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, + 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, + 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, + 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, + 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, + 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, + 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, + 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, + 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, + 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, + 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, + 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, + 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, + 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, + 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, + 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, + 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, + 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, + 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, + 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, + 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, + 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, + 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, + 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, + 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, + 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, + 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, + 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, + 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, + 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, + 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, + 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, + 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, + 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, + 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, + 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, + 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, + 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, + 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, + 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, + 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, + 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, + 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, + 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, + 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, + 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, + 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, + 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, + 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, + 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, + 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, + 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, + 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, + 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, + 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, + 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, + 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, + 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, + 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, + 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, + 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, + 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, + 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, + 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, + 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, + 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, + 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, + 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, + 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, + 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, + 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, + 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, + 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, + 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, + 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, + 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, + 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, + 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, + 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, + 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, + 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, + 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, + 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, + 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, + 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, + 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, + 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, + 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, + 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, + 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, + 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, + 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, + 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, + 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, + 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, + 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, + 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, + 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, + 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, + 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, + 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, + 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, + 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, + 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, + 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, + 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, + 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, + 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, + 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, + 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, + 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, + 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, + 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, + 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, + 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, + 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, + 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, + 96,153,6,255}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 15 + Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=19 len=42 + Font Bounding box w=23 h=32 x=-5 y=-8 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =16 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR18[6152] U8G_SECTION(".progmem.u8g_font_courR18") = { + 0,23,32,251,248,14,3,161,7,151,32,255,251,19,251,16, + 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, + 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, + 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, + 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, + 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, + 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, + 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, + 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, + 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, + 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, + 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, + 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, + 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, + 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, + 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, + 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, + 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, + 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, + 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, + 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, + 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, + 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, + 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, + 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, + 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, + 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, + 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, + 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, + 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, + 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, + 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, + 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, + 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, + 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, + 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, + 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, + 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, + 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, + 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, + 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, + 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, + 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, + 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, + 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, + 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, + 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, + 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, + 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, + 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, + 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, + 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, + 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, + 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, + 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, + 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, + 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, + 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, + 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, + 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, + 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, + 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, + 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, + 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, + 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, + 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, + 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, + 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, + 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, + 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, + 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, + 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, + 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, + 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, + 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, + 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, + 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, + 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, + 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, + 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, + 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, + 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, + 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, + 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, + 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, + 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, + 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, + 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, + 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, + 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, + 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, + 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, + 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, + 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, + 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, + 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, + 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, + 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, + 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, + 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, + 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, + 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, + 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, + 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, + 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, + 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, + 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, + 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, + 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, + 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, + 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, + 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, + 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, + 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, + 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, + 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, + 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, + 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, + 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, + 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, + 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, + 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, + 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, + 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, + 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, + 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, + 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, + 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, + 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, + 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, + 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, + 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, + 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, + 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, + 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, + 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, + 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, + 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, + 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, + 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, + 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, + 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, + 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, + 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, + 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, + 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, + 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, + 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, + 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, + 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, + 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, + 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, + 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, + 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, + 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, + 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, + 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, + 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, + 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, + 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, + 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, + 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, + 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, + 192,12,3,6,15,1,6,60,48,102,96,195,192,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, + 0,15,0,1,2,16,16,15,6,251,192,192,0,0,0,128, + 128,128,192,192,192,192,192,192,192,192,8,16,16,15,3,0, + 8,8,8,8,29,99,65,128,128,128,64,99,28,8,8,8, + 10,14,28,15,2,0,14,0,17,128,32,0,32,0,32,0, + 32,0,254,0,16,0,16,0,16,0,16,0,32,64,64,64, + 255,128,10,10,20,15,2,2,128,64,94,128,33,0,64,128, + 64,128,64,128,64,128,33,0,94,128,128,64,11,14,28,15, + 2,0,241,224,64,64,32,128,32,128,17,0,17,0,10,0, + 127,192,4,0,4,0,127,192,4,0,4,0,63,128,1,19, + 19,15,7,253,128,128,128,128,128,128,128,128,0,0,0,128, + 128,128,128,128,128,128,128,10,18,36,15,2,254,15,192,16, + 64,32,64,32,64,32,0,112,0,140,0,130,0,65,0,32, + 128,16,64,12,64,3,128,1,0,129,0,129,0,130,0,252, + 0,7,2,2,15,4,12,198,198,13,13,26,15,1,1,15, + 128,48,96,64,16,70,144,137,136,144,136,144,8,144,8,136, + 136,71,16,64,16,48,96,15,128,7,9,9,15,4,5,120, + 132,60,68,132,140,118,0,254,12,11,22,15,1,0,6,48, + 12,96,24,192,49,128,99,0,198,0,99,0,49,128,24,192, + 12,96,6,48,11,4,8,15,2,5,255,224,0,32,0,32, + 0,32,10,1,2,15,2,7,255,192,13,13,26,15,1,1, + 15,128,48,96,64,16,79,16,136,136,136,136,143,8,137,8, + 136,136,72,144,64,16,48,96,15,128,7,1,1,15,4,12, + 254,7,7,7,15,4,9,56,68,130,130,130,68,56,11,13, + 26,15,2,1,4,0,4,0,4,0,4,0,4,0,255,224, + 4,0,4,0,4,0,4,0,4,0,0,0,255,224,6,9, + 9,15,4,7,56,68,132,4,8,16,32,68,252,6,9,9, + 15,4,7,120,132,4,8,56,4,4,132,120,5,4,4,15, + 5,12,24,48,96,192,12,16,32,15,1,251,224,224,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,96,48,160, + 47,48,32,0,32,0,32,0,32,0,32,0,11,18,36,15, + 2,254,31,224,100,128,196,128,196,128,196,128,196,128,196,128, + 100,128,28,128,4,128,4,128,4,128,4,128,4,128,4,128, + 4,128,4,128,60,224,3,3,3,15,6,6,224,224,224,4, + 5,5,15,5,252,32,32,16,144,96,7,9,9,15,4,7, + 48,208,16,16,16,16,16,16,254,7,9,9,15,4,5,56, + 68,130,130,130,68,56,0,254,12,11,22,15,1,0,198,0, + 99,0,49,128,24,192,12,96,6,48,12,96,24,192,49,128, + 99,0,198,0,14,16,32,15,0,0,48,0,208,0,16,8, + 16,16,16,32,16,32,16,64,16,152,255,40,2,72,4,72, + 4,136,9,8,17,252,0,8,0,28,14,16,32,15,0,0, + 48,0,208,0,16,8,16,16,16,32,16,32,16,64,16,184, + 255,68,2,132,4,4,4,8,8,16,16,32,0,68,0,252, + 14,16,32,15,0,0,120,0,132,0,4,8,8,16,56,32, + 4,32,4,64,132,152,121,40,2,72,4,72,4,136,9,8, + 17,252,0,8,0,28,8,14,14,15,3,253,24,24,0,0, + 8,8,48,64,128,128,128,129,65,62,13,19,38,15,1,0, + 24,0,12,0,6,0,3,0,0,0,63,0,5,0,8,128, + 8,128,8,128,16,64,16,64,16,64,63,224,32,32,32,32, + 64,16,64,16,240,120,13,19,38,15,1,0,0,192,1,128, + 3,0,6,0,0,0,63,0,5,0,8,128,8,128,8,128, + 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, + 240,120,13,19,38,15,1,0,6,0,15,0,25,128,48,192, + 0,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, + 16,64,63,224,32,32,32,32,64,16,64,16,240,120,13,18, + 36,15,1,0,28,64,54,192,35,128,0,0,63,0,5,0, + 8,128,8,128,8,128,16,64,16,64,16,64,63,224,32,32, + 32,32,64,16,64,16,240,120,13,18,36,15,1,0,24,192, + 24,192,0,0,0,0,63,0,5,0,8,128,8,128,8,128, + 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, + 240,120,13,19,38,15,1,0,7,0,8,128,8,128,8,128, + 7,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, + 16,64,63,224,32,32,32,32,64,16,64,16,240,120,15,14, + 28,15,255,0,15,254,2,130,4,130,4,130,4,136,8,136, + 8,248,8,136,31,136,16,130,16,130,32,130,32,130,243,254, + 11,18,36,15,2,252,15,32,48,224,96,96,64,32,128,0, + 128,0,128,0,128,0,128,0,128,0,64,32,96,96,48,192, + 15,0,4,0,2,0,18,0,12,0,12,19,38,15,1,0, + 24,0,12,0,6,0,3,0,0,0,255,224,32,32,32,32, + 32,32,34,0,34,0,62,0,34,0,34,0,32,16,32,16, + 32,16,32,16,255,240,12,19,38,15,1,0,0,192,1,128, + 3,0,6,0,0,0,255,224,32,32,32,32,32,32,34,0, + 34,0,62,0,34,0,34,0,32,16,32,16,32,16,32,16, + 255,240,12,19,38,15,1,0,6,0,15,0,25,128,48,192, + 0,0,255,224,32,32,32,32,32,32,34,0,34,0,62,0, + 34,0,34,0,32,16,32,16,32,16,32,16,255,240,12,18, + 36,15,1,0,25,128,25,128,0,0,0,0,255,224,32,32, + 32,32,32,32,34,0,34,0,62,0,34,0,34,0,32,16, + 32,16,32,16,32,16,255,240,9,19,38,15,3,0,96,0, + 48,0,24,0,12,0,0,0,255,128,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,255,128,9,19,38,15,3,0,3,0,6,0,12,0, + 24,0,0,0,255,128,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, + 9,19,38,15,3,0,24,0,60,0,102,0,195,0,0,0, + 255,128,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,255,128,9,18,36,15, + 3,0,99,0,99,0,0,0,0,0,255,128,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,255,128,13,14,28,15,0,0,127,192,32,48, + 32,16,32,8,32,8,32,8,252,8,32,8,32,8,32,8, + 32,8,32,16,32,48,127,192,14,18,36,15,0,0,14,32, + 27,96,17,192,0,0,240,252,48,16,40,16,36,16,36,16, + 34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48, + 252,48,13,19,38,15,1,0,24,0,12,0,6,0,3,0, + 0,0,15,128,48,96,96,48,64,16,128,8,128,8,128,8, + 128,8,128,8,128,8,64,16,96,48,48,96,15,128,13,19, + 38,15,1,0,0,96,0,192,1,128,3,0,0,0,15,128, + 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, + 128,8,64,16,96,48,48,96,15,128,13,19,38,15,1,0, + 3,0,7,128,12,192,24,96,0,0,15,128,48,96,96,48, + 64,16,128,8,128,8,128,8,128,8,128,8,128,8,64,16, + 96,48,48,96,15,128,13,18,36,15,1,0,14,32,27,96, + 17,192,0,0,15,128,48,96,96,48,64,16,128,8,128,8, + 128,8,128,8,128,8,128,8,64,16,96,48,48,96,15,128, + 13,18,36,15,1,0,24,192,24,192,0,0,0,0,15,128, + 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, + 128,8,64,16,96,48,48,96,15,128,11,11,22,15,2,2, + 128,32,64,64,32,128,17,0,10,0,4,0,10,0,17,0, + 32,128,64,64,128,32,14,15,30,15,0,0,0,4,7,200, + 24,48,48,48,32,72,64,136,64,136,65,8,66,8,68,8, + 72,8,48,16,48,48,88,96,135,128,12,19,38,15,1,0, + 24,0,12,0,6,0,3,0,0,0,249,240,64,32,64,32, + 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, + 64,32,32,64,31,128,12,19,38,15,1,0,0,192,1,128, + 3,0,6,0,0,0,249,240,64,32,64,32,64,32,64,32, + 64,32,64,32,64,32,64,32,64,32,64,32,64,32,32,64, + 31,128,12,19,38,15,1,0,6,0,15,0,25,128,48,192, + 0,0,249,240,64,32,64,32,64,32,64,32,64,32,64,32, + 64,32,64,32,64,32,64,32,64,32,32,64,31,128,12,18, + 36,15,1,0,25,128,25,128,0,0,0,0,249,240,64,32, + 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, + 64,32,64,32,32,64,31,128,13,19,38,15,1,0,0,192, + 1,128,3,0,6,0,0,0,240,120,32,32,16,64,16,64, + 8,128,8,128,5,0,2,0,2,0,2,0,2,0,2,0, + 2,0,31,192,11,14,28,15,2,0,248,0,32,0,32,0, + 63,128,32,64,32,32,32,32,32,32,32,32,32,64,63,128, + 32,0,32,0,248,0,11,16,32,15,2,0,14,0,17,0, + 32,128,32,128,32,128,32,128,33,0,39,0,32,192,32,64, + 32,32,32,32,32,32,36,32,36,64,243,128,11,16,32,15, + 2,0,48,0,24,0,12,0,6,0,0,0,30,0,97,0, + 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, + 126,224,11,16,32,15,2,0,1,128,3,0,6,0,12,0, + 0,0,30,0,97,0,0,128,0,128,0,128,63,128,64,128, + 128,128,128,128,129,128,126,224,11,16,32,15,2,0,12,0, + 30,0,51,0,97,128,0,0,30,0,97,0,0,128,0,128, + 0,128,63,128,64,128,128,128,128,128,129,128,126,224,11,15, + 30,15,2,0,56,128,109,128,71,0,0,0,30,0,97,0, + 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, + 126,224,11,15,30,15,2,0,49,128,49,128,0,0,0,0, + 30,0,97,0,0,128,0,128,0,128,63,128,64,128,128,128, + 128,128,129,128,126,224,11,17,34,15,2,0,14,0,17,0, + 17,0,17,0,14,0,0,0,30,0,97,0,0,128,0,128, + 0,128,63,128,64,128,128,128,128,128,129,128,126,224,15,11, + 22,15,0,0,28,112,98,140,65,4,1,2,1,2,63,254, + 65,0,129,0,129,2,130,132,124,120,11,15,30,15,2,252, + 31,64,96,192,64,64,128,64,128,0,128,0,128,0,128,0, + 64,96,96,192,31,0,4,0,2,0,18,0,12,0,11,16, + 32,15,2,0,48,0,24,0,12,0,6,0,0,0,31,0, + 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, + 96,96,31,128,11,16,32,15,2,0,1,128,3,0,6,0, + 12,0,0,0,31,0,96,192,64,64,128,32,128,32,255,224, + 128,0,128,0,64,0,96,96,31,128,11,16,32,15,2,0, + 12,0,30,0,51,0,97,128,0,0,31,0,96,192,64,64, + 128,32,128,32,255,224,128,0,128,0,64,0,96,96,31,128, + 11,15,30,15,2,0,49,128,49,128,0,0,0,0,31,0, + 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, + 96,96,31,128,9,16,32,15,3,0,96,0,48,0,24,0, + 12,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,255,128,9,16,32,15,3,0, + 3,0,6,0,12,0,24,0,0,0,120,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, + 9,16,32,15,3,0,24,0,60,0,102,0,195,0,0,0, + 120,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,255,128,9,15,30,15,3,0,99,0,99,0, + 0,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,255,128,12,16,32,15,1,0, + 124,192,135,0,13,0,48,128,0,64,15,224,48,96,32,48, + 64,16,64,16,64,16,64,16,64,16,32,32,48,96,15,128, + 13,15,30,15,1,0,28,64,54,192,35,128,0,0,231,128, + 40,64,48,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,248,248,11,16,32,15,2,0,24,0,12,0,6,0, + 3,0,0,0,31,0,96,192,64,64,128,32,128,32,128,32, + 128,32,128,32,64,64,96,192,31,0,11,16,32,15,2,0, + 1,128,3,0,6,0,12,0,0,0,31,0,96,192,64,64, + 128,32,128,32,128,32,128,32,128,32,64,64,96,192,31,0, + 11,16,32,15,2,0,12,0,30,0,51,0,97,128,0,0, + 31,0,96,192,64,64,128,32,128,32,128,32,128,32,128,32, + 64,64,96,192,31,0,11,15,30,15,2,0,28,64,54,192, + 35,128,0,0,31,0,96,192,64,64,128,32,128,32,128,32, + 128,32,128,32,64,64,96,192,31,0,11,15,30,15,2,0, + 49,128,49,128,0,0,0,0,31,0,96,192,64,64,128,32, + 128,32,128,32,128,32,128,32,64,64,96,192,31,0,11,9, + 18,15,2,3,14,0,14,0,0,0,0,0,255,224,0,0, + 0,0,14,0,14,0,12,12,24,15,1,0,0,16,15,160, + 48,64,32,160,65,16,66,16,68,16,72,16,80,16,32,32, + 80,96,143,128,12,16,32,15,1,0,24,0,12,0,6,0, + 3,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,96,16,160,15,48,12,16,32,15,1,0, + 0,192,1,128,3,0,6,0,0,0,224,224,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,96,16,160,15,48, + 12,16,32,15,1,0,6,0,15,0,25,128,48,192,0,0, + 224,224,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,96,16,160,15,48,12,15,30,15,1,0,25,128,25,128, + 0,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,96,16,160,15,48,12,21,42,15,1,251, + 0,192,1,128,3,0,6,0,0,0,240,240,64,32,64,32, + 32,64,32,64,32,128,16,128,17,0,9,0,10,0,6,0, + 4,0,4,0,8,0,8,0,254,0,13,21,42,15,1,251, + 224,0,32,0,32,0,32,0,32,0,39,192,56,48,48,16, + 32,8,32,8,32,8,32,8,32,8,48,16,56,48,39,192, + 32,0,32,0,32,0,32,0,252,0,12,20,40,15,1,251, + 25,128,25,128,0,0,0,0,240,240,64,32,64,32,32,64, + 32,64,32,128,16,128,17,0,9,0,10,0,6,0,4,0, + 4,0,8,0,8,0,254,0}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 15 + Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=17 len=40 + Font Bounding box w=23 h=32 x=-5 y=-8 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =16 descent=-5 + Max Font ascent =17 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR18r[2862] U8G_SECTION(".progmem.u8g_font_courR18r") = { + 0,23,32,251,248,14,3,161,7,151,32,127,251,17,251,16, + 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, + 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, + 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, + 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, + 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, + 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, + 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, + 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, + 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, + 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, + 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, + 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, + 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, + 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, + 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, + 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, + 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, + 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, + 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, + 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, + 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, + 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, + 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, + 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, + 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, + 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, + 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, + 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, + 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, + 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, + 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, + 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, + 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, + 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, + 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, + 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, + 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, + 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, + 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, + 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, + 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, + 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, + 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, + 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, + 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, + 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, + 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, + 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, + 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, + 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, + 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, + 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, + 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, + 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, + 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, + 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, + 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, + 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, + 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, + 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, + 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, + 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, + 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, + 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, + 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, + 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, + 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, + 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, + 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, + 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, + 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, + 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, + 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, + 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, + 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, + 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, + 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, + 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, + 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, + 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, + 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, + 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, + 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, + 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, + 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, + 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, + 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, + 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, + 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, + 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, + 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, + 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, + 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, + 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, + 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, + 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, + 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, + 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, + 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, + 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, + 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, + 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, + 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, + 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, + 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, + 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, + 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, + 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, + 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, + 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, + 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, + 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, + 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, + 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, + 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, + 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, + 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, + 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, + 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, + 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, + 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, + 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, + 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, + 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, + 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, + 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, + 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, + 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, + 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, + 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, + 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, + 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, + 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, + 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, + 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, + 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, + 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, + 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, + 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, + 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, + 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, + 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, + 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, + 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, + 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, + 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, + 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, + 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, + 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, + 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, + 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, + 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, + 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, + 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, + 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, + 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, + 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, + 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, + 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, + 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, + 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, + 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, + 192,12,3,6,15,1,6,60,48,102,96,195,192,255}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 20 + Calculated Max Values w=19 h=28 x= 9 y=17 dx=20 dy= 0 ascent=26 len=81 + Font Bounding box w=28 h=42 x=-6 y=-10 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =19 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =26 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR24[8729] U8G_SECTION(".progmem.u8g_font_courR24") = { + 0,28,42,250,246,19,4,184,10,129,32,255,250,26,250,21, + 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, + 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, + 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, + 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, + 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, + 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, + 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, + 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, + 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, + 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, + 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, + 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, + 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, + 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, + 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, + 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, + 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, + 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, + 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, + 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, + 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, + 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, + 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, + 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, + 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, + 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, + 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, + 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, + 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, + 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, + 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, + 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, + 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, + 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, + 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, + 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, + 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, + 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, + 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, + 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, + 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, + 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, + 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, + 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, + 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, + 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, + 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, + 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, + 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, + 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, + 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, + 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, + 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, + 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, + 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, + 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, + 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, + 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, + 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, + 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, + 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, + 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, + 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, + 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, + 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, + 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, + 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, + 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, + 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, + 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, + 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, + 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, + 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, + 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, + 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, + 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, + 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, + 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, + 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, + 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, + 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, + 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, + 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, + 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, + 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, + 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, + 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, + 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, + 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, + 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, + 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, + 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, + 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, + 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, + 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, + 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, + 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, + 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, + 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, + 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, + 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, + 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, + 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, + 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, + 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, + 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, + 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, + 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, + 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, + 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, + 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, + 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, + 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, + 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, + 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, + 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, + 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, + 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, + 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, + 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, + 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, + 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, + 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, + 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, + 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, + 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, + 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, + 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, + 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, + 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, + 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, + 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, + 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, + 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, + 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, + 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, + 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, + 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, + 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, + 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, + 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, + 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, + 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, + 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, + 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, + 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, + 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, + 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, + 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, + 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, + 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, + 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, + 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, + 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, + 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, + 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, + 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, + 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, + 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, + 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, + 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, + 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, + 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, + 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, + 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, + 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, + 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, + 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, + 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, + 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, + 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, + 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, + 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, + 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, + 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, + 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, + 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, + 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, + 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, + 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, + 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, + 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, + 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, + 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, + 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, + 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, + 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, + 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, + 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, + 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, + 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, + 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, + 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, + 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, + 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, + 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, + 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, + 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, + 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, + 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, + 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, + 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, + 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, + 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, + 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, + 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, + 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, + 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, + 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, + 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, + 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, + 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, + 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, + 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, + 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, + 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, + 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, + 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, + 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, + 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, + 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, + 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, + 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, + 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, + 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, + 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, + 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, + 199,24,129,176,0,224,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,20,0,1,5,20,20, + 20,7,250,112,248,112,0,0,0,0,32,32,32,32,32,32, + 32,112,112,112,112,112,32,11,20,40,20,4,0,4,0,4, + 0,4,0,4,0,31,128,48,224,96,32,192,32,128,0,128, + 0,128,0,128,0,192,0,96,32,48,224,31,128,4,0,4, + 0,4,0,4,0,14,19,38,20,2,0,3,224,12,48,8, + 24,24,0,16,0,16,0,16,0,24,0,8,0,255,128,8, + 0,8,0,8,0,8,0,8,0,24,0,16,4,48,12,127, + 248,13,13,26,20,3,3,192,24,111,176,56,224,32,32,96, + 48,64,16,64,16,64,16,96,48,32,32,56,224,111,176,192, + 24,15,19,38,20,2,0,248,62,96,12,48,24,16,16,24, + 48,8,32,12,96,6,192,2,128,3,128,63,248,1,0,1, + 0,63,248,1,0,1,0,1,0,1,0,31,240,1,25,25, + 20,9,252,128,128,128,128,128,128,128,128,128,128,128,0,0, + 0,0,128,128,128,128,128,128,128,128,128,128,14,23,46,20, + 3,254,7,248,28,8,16,8,16,8,16,0,24,0,124,0, + 198,0,131,0,129,192,192,96,112,56,24,12,12,4,7,4, + 1,132,0,252,0,96,0,32,64,32,64,32,64,224,127,128, + 10,3,6,20,5,17,97,128,243,192,97,128,19,19,57,20, + 0,0,1,240,0,7,28,0,28,7,0,48,1,128,33,232, + 128,99,24,192,70,8,64,204,8,96,136,0,32,136,0,32, + 136,0,32,140,0,32,198,12,96,67,24,64,97,240,192,48, + 1,128,24,3,0,15,30,0,1,240,0,9,12,24,20,5, + 7,60,0,102,0,2,0,2,0,126,0,198,0,130,0,206, + 0,123,128,0,0,0,0,255,128,16,14,28,20,2,0,1, + 131,3,6,6,12,12,24,24,48,48,96,96,192,225,192,96, + 192,48,96,24,48,12,24,6,12,3,6,14,6,12,20,3, + 6,255,252,0,4,0,4,0,4,0,4,0,4,15,1,2, + 20,2,9,255,254,19,19,57,20,0,0,3,248,0,14,14, + 0,24,3,0,48,1,128,103,224,192,66,48,64,194,24,96, + 130,8,32,130,8,32,130,24,32,130,48,32,131,224,32,194, + 48,96,66,24,64,103,12,192,48,1,128,24,3,0,14,14, + 0,3,248,0,9,2,4,20,5,17,255,128,255,128,9,10, + 20,20,5,11,62,0,99,0,65,0,193,128,128,128,128,128, + 193,128,65,0,99,0,62,0,15,16,32,20,2,1,1,0, + 1,0,1,0,1,0,1,0,1,0,255,254,1,0,1,0, + 1,0,1,0,1,0,1,0,0,0,0,0,255,254,8,14, + 14,20,5,7,60,102,67,193,3,2,6,12,24,16,48,96, + 193,255,8,14,14,20,6,7,60,102,195,1,1,6,28,6, + 3,1,1,195,102,60,6,5,5,20,9,17,12,24,48,96, + 192,16,20,40,20,1,250,240,60,16,4,16,4,16,4,16, + 4,16,4,16,4,16,4,16,4,16,4,24,12,24,28,28, + 52,23,231,16,0,16,0,16,0,16,0,16,0,16,0,15, + 23,46,20,2,254,15,254,57,16,113,16,97,16,225,16,193, + 16,193,16,225,16,97,16,113,16,61,16,15,16,1,16,1, + 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, + 16,31,190,5,4,4,20,7,7,112,248,248,112,5,5,5, + 20,7,251,32,32,48,152,240,7,14,14,20,6,7,112,208, + 16,16,16,16,16,16,16,16,16,16,16,254,9,12,24,20, + 5,7,28,0,119,0,65,0,193,128,128,128,193,128,65,0, + 119,0,28,0,0,0,0,0,255,128,16,14,28,20,2,0, + 193,128,96,192,48,96,24,48,12,24,6,12,3,6,3,135, + 3,6,6,12,12,24,24,48,48,96,96,192,18,21,63,20, + 1,0,48,0,192,240,0,128,16,1,128,16,3,0,16,2, + 0,16,6,0,16,12,0,16,8,0,16,24,0,16,48,0, + 16,35,0,16,103,0,254,197,0,0,141,0,1,153,0,3, + 17,0,2,49,0,6,63,128,12,1,0,8,1,0,24,7, + 128,18,21,63,20,1,0,48,0,128,240,1,128,16,3,0, + 16,6,0,16,4,0,16,12,0,16,24,0,16,16,0,16, + 48,0,16,96,0,16,71,128,16,204,192,253,152,64,3,0, + 192,2,0,128,6,1,128,12,7,0,8,12,0,24,24,0, + 48,48,0,96,63,192,19,21,63,20,0,0,60,0,0,102, + 0,96,3,0,192,3,1,128,6,3,0,28,6,0,6,12, + 0,3,8,0,1,24,0,1,48,0,195,33,128,102,99,128, + 60,194,128,1,134,128,1,12,128,3,8,128,6,24,128,12, + 31,192,24,0,128,48,0,128,0,3,192,11,20,40,20,4, + 250,14,0,31,0,14,0,0,0,0,0,0,0,0,0,4, + 0,4,0,12,0,24,0,112,0,64,0,192,0,128,0,128, + 0,192,32,96,32,49,224,31,0,19,26,78,20,0,0,6, + 0,0,3,0,0,1,128,0,0,192,0,0,96,0,0,0, + 0,0,0,0,31,224,0,0,160,0,1,176,0,1,16,0, + 1,16,0,3,24,0,2,8,0,2,8,0,6,12,0,4, + 4,0,4,4,0,12,6,0,15,254,0,8,2,0,24,3, + 0,16,1,0,16,1,0,48,1,128,254,15,224,19,26,78, + 20,0,0,0,12,0,0,24,0,0,48,0,0,96,0,0, + 192,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, + 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, + 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, + 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, + 224,19,26,78,20,0,0,0,64,0,0,224,0,1,176,0, + 3,24,0,6,12,0,0,0,0,0,0,0,31,224,0,0, + 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, + 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, + 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, + 1,128,254,15,224,19,24,72,20,0,0,3,132,0,6,236, + 0,4,56,0,0,0,0,0,0,0,31,224,0,0,160,0, + 1,176,0,1,16,0,1,16,0,3,24,0,2,8,0,2, + 8,0,6,12,0,4,4,0,4,4,0,12,6,0,15,254, + 0,8,2,0,24,3,0,16,1,0,16,1,0,48,1,128, + 254,15,224,19,24,72,20,0,0,6,12,0,15,30,0,6, + 12,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, + 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, + 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, + 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, + 224,19,26,78,20,0,0,0,224,0,1,176,0,1,16,0, + 1,16,0,1,176,0,0,224,0,0,0,0,31,224,0,0, + 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, + 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, + 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, + 1,128,254,15,224,18,19,57,20,1,0,31,255,128,2,64, + 128,2,64,128,6,64,128,4,64,128,4,64,128,4,64,0, + 12,68,0,8,68,0,8,124,0,8,68,0,24,68,0,31, + 192,0,16,64,0,48,64,64,32,64,64,32,64,64,32,64, + 64,251,255,192,15,24,48,20,2,251,7,196,28,116,48,12, + 96,12,64,4,192,4,128,0,128,0,128,0,128,0,128,0, + 128,0,128,0,192,0,64,2,96,4,48,28,28,112,7,192, + 1,0,1,0,1,128,4,192,7,128,15,26,52,20,1,0, + 12,0,6,0,3,0,1,128,0,192,0,0,0,0,255,252, + 16,4,16,4,16,4,16,4,16,4,16,64,16,64,16,64, + 31,192,16,64,16,64,16,0,16,2,16,2,16,2,16,2, + 16,2,255,254,15,26,52,20,1,0,0,48,0,96,0,192, + 1,128,3,0,0,0,0,0,255,252,16,4,16,4,16,4, + 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, + 16,0,16,2,16,2,16,2,16,2,16,2,255,254,15,26, + 52,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, + 0,0,255,252,16,4,16,4,16,4,16,4,16,4,16,64, + 16,64,16,64,31,192,16,64,16,64,16,0,16,2,16,2, + 16,2,16,2,16,2,255,254,15,24,48,20,1,0,12,48, + 30,120,12,48,0,0,0,0,255,252,16,4,16,4,16,4, + 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, + 16,0,16,2,16,2,16,2,16,2,16,2,255,254,11,26, + 52,20,4,0,48,0,24,0,12,0,6,0,3,0,0,0, + 0,0,255,224,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,255,224,11,26,52,20,4,0,0,192, + 1,128,3,0,6,0,12,0,0,0,0,0,255,224,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 255,224,11,26,52,20,4,0,4,0,14,0,27,0,49,128, + 96,192,0,0,0,0,255,224,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,255,224,11,24,48,20, + 4,0,96,192,241,224,96,192,0,0,0,0,255,224,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 255,224,15,19,38,20,1,0,255,192,32,112,32,24,32,12, + 32,4,32,6,32,2,32,2,32,2,254,2,32,2,32,2, + 32,2,32,6,32,4,32,12,32,24,32,112,255,192,18,24, + 72,20,0,0,3,132,0,6,236,0,4,56,0,0,0,0, + 0,0,0,248,31,192,28,1,0,20,1,0,22,1,0,18, + 1,0,19,1,0,17,129,0,16,129,0,16,193,0,16,65, + 0,16,97,0,16,33,0,16,49,0,16,25,0,16,9,0, + 16,13,0,16,5,0,16,7,0,127,3,0,15,26,52,20, + 2,0,24,0,12,0,6,0,3,0,1,128,0,0,0,0, + 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, + 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, + 48,24,28,112,7,192,15,26,52,20,2,0,0,24,0,48, + 0,96,0,192,1,128,0,0,0,0,7,192,28,112,48,24, + 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, + 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, + 15,26,52,20,2,0,1,0,3,128,6,192,12,96,24,48, + 0,0,0,0,7,192,28,112,48,24,96,12,64,4,192,6, + 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, + 96,12,32,8,48,24,28,112,7,192,15,24,48,20,2,0, + 14,16,27,176,16,224,0,0,0,0,7,192,28,112,48,24, + 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, + 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, + 15,24,48,20,2,0,48,48,120,120,48,48,0,0,0,0, + 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, + 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, + 48,24,28,112,7,192,13,14,28,20,3,1,128,8,192,24, + 96,48,48,96,24,192,13,128,7,0,7,0,13,128,24,192, + 48,96,96,48,192,24,128,8,16,21,42,20,2,255,0,1, + 7,195,28,118,48,28,32,24,96,60,64,36,192,102,128,194, + 129,130,129,2,131,2,134,2,204,6,72,4,120,12,48,8, + 48,24,124,48,199,224,128,0,17,26,78,20,1,0,6,0, + 0,3,0,0,1,128,0,0,192,0,0,96,0,0,0,0, + 0,0,0,254,63,128,32,2,0,32,2,0,32,2,0,32, + 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, + 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, + 16,4,0,24,12,0,14,56,0,3,224,0,17,26,78,20, + 1,0,0,24,0,0,48,0,0,96,0,0,192,0,1,128, + 0,0,0,0,0,0,0,254,63,128,32,2,0,32,2,0, + 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, + 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, + 0,48,6,0,16,4,0,24,12,0,14,56,0,3,224,0, + 17,26,78,20,1,0,0,128,0,1,192,0,3,96,0,6, + 48,0,12,24,0,0,0,0,0,0,0,254,63,128,32,2, + 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, + 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, + 2,0,32,2,0,48,6,0,16,4,0,24,12,0,14,56, + 0,3,224,0,17,24,72,20,1,0,12,24,0,30,60,0, + 12,24,0,0,0,0,0,0,0,254,63,128,32,2,0,32, + 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, + 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, + 32,2,0,48,6,0,16,4,0,24,12,0,14,56,0,3, + 224,0,15,26,52,20,2,0,0,48,0,96,0,192,1,128, + 3,0,0,0,0,0,248,62,96,12,48,24,16,16,24,48, + 8,32,12,96,6,192,2,128,3,128,1,0,1,0,1,0, + 1,0,1,0,1,0,1,0,1,0,31,240,16,19,38,20, + 1,0,254,0,16,0,16,0,16,0,31,224,16,60,16,6, + 16,2,16,3,16,3,16,2,16,6,16,60,31,224,16,0, + 16,0,16,0,16,0,254,0,15,21,42,20,1,0,7,192, + 12,96,8,32,24,48,16,16,16,16,16,16,16,48,16,96, + 17,192,16,112,16,24,16,4,16,6,16,2,16,2,16,2, + 17,6,17,4,17,140,248,248,15,22,44,20,2,0,24,0, + 12,0,6,0,3,0,1,128,0,0,0,0,0,0,15,128, + 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, + 128,16,128,16,128,48,192,240,127,158,15,22,44,20,2,0, + 0,96,0,192,1,128,3,0,6,0,0,0,0,0,0,0, + 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, + 192,16,128,16,128,16,128,48,192,240,127,158,15,22,44,20, + 2,0,1,0,3,128,6,192,12,96,24,48,0,0,0,0, + 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, + 112,48,192,16,128,16,128,16,128,48,192,240,127,158,15,20, + 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, + 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, + 192,16,128,16,128,16,128,48,192,240,127,158,15,20,40,20, + 2,0,48,192,121,224,48,192,0,0,0,0,0,0,15,128, + 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, + 128,16,128,16,128,48,192,240,127,158,15,23,46,20,2,0, + 7,0,13,128,8,128,8,128,13,128,7,0,0,0,0,0, + 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, + 112,48,192,16,128,16,128,16,128,48,192,240,127,158,19,14, + 42,20,0,0,31,15,128,113,152,192,0,240,64,0,96,96, + 0,96,32,30,64,32,115,255,224,192,192,0,128,64,0,128, + 96,0,128,224,0,193,80,96,99,88,192,62,79,128,14,19, + 38,20,3,251,15,200,56,104,96,24,64,24,192,8,128,8, + 128,0,128,0,128,0,192,0,64,4,96,28,56,112,15,192, + 2,0,2,0,3,0,9,128,15,0,14,22,44,20,2,0, + 24,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0, + 15,192,56,112,96,24,64,8,192,12,128,4,255,252,128,0, + 128,0,128,0,192,0,96,12,56,56,15,224,14,22,44,20, + 2,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, + 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, + 128,0,128,0,128,0,192,0,96,12,56,56,15,224,14,22, + 44,20,2,0,1,0,3,128,6,192,12,96,24,48,0,0, + 0,0,0,0,15,192,56,112,96,24,64,8,192,12,128,4, + 255,252,128,0,128,0,128,0,192,0,96,12,56,56,15,224, + 14,20,40,20,2,0,48,96,120,240,48,96,0,0,0,0, + 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, + 128,0,128,0,128,0,192,0,96,12,56,56,15,224,13,22, + 44,20,3,0,48,0,24,0,12,0,6,0,3,0,0,0, + 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, + 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, + 13,22,44,20,3,0,0,192,1,128,3,0,6,0,12,0, + 0,0,0,0,0,0,126,0,2,0,2,0,2,0,2,0, + 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, + 255,248,13,21,42,20,3,0,4,0,14,0,27,0,49,128, + 96,192,0,0,0,0,126,0,2,0,2,0,2,0,2,0, + 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, + 255,248,13,20,40,20,3,0,97,128,243,192,97,128,0,0, + 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, + 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, + 15,20,40,20,2,0,124,12,79,56,1,224,3,192,14,96, + 56,48,32,24,0,12,15,228,56,54,96,14,192,6,128,2, + 128,2,128,2,192,6,64,4,96,12,24,56,15,224,15,20, + 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, + 227,192,46,112,56,16,48,24,32,8,32,8,32,8,32,8, + 32,8,32,8,32,8,32,8,32,8,248,62,15,22,44,20, + 2,0,12,0,6,0,3,0,1,128,0,192,0,0,0,0, + 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, + 128,2,128,2,192,6,64,4,96,12,56,56,15,224,15,22, + 44,20,2,0,0,48,0,96,0,192,1,128,3,0,0,0, + 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, + 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, + 15,22,44,20,2,0,1,128,3,192,6,96,12,48,24,24, + 0,0,0,0,0,0,15,224,56,56,96,12,64,4,192,6, + 128,2,128,2,128,2,128,2,192,6,64,4,96,12,56,56, + 15,224,15,20,40,20,2,0,14,16,27,176,16,224,0,0, + 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, + 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, + 15,20,40,20,2,0,24,96,60,240,24,96,0,0,0,0, + 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, + 128,2,128,2,192,6,64,4,96,12,56,56,15,224,14,16, + 32,20,2,1,3,0,7,128,3,0,0,0,0,0,0,0, + 0,0,0,0,255,252,0,0,0,0,0,0,0,0,3,0, + 7,128,3,0,15,16,32,20,2,255,0,2,7,230,28,60, + 48,24,64,52,192,102,128,194,129,130,131,2,134,2,204,6, + 88,4,112,24,120,112,207,192,128,0,16,22,44,20,1,0, + 12,0,6,0,3,0,1,128,0,192,0,0,0,0,0,0, + 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, + 16,4,16,4,16,12,24,28,12,52,7,231,16,22,44,20, + 1,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, + 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, + 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,21, + 42,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, + 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, + 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,20, + 40,20,1,0,24,48,60,120,24,48,0,0,0,0,0,0, + 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, + 16,4,16,4,16,12,24,28,12,52,7,231,15,28,56,20, + 2,250,0,48,0,96,0,192,1,128,3,0,0,0,0,0, + 0,0,248,62,64,4,96,12,32,8,48,24,16,16,24,48, + 8,32,12,96,4,64,6,192,2,128,3,128,1,0,3,0, + 2,0,2,0,6,0,4,0,127,128,17,27,81,20,0,250, + 240,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, + 0,0,16,0,0,17,248,0,23,14,0,28,3,0,24,1, + 0,24,1,128,16,0,128,16,0,128,16,0,128,16,0,128, + 24,1,128,24,1,0,28,3,0,23,14,0,17,248,0,16, + 0,0,16,0,0,16,0,0,16,0,0,16,0,0,255,0, + 0,15,25,50,20,2,250,24,24,60,60,24,24,0,0,0, + 0,248,62,64,4,96,12,32,8,48,24,16,16,24,48,8, + 32,12,96,4,64,6,192,2,128,3,128,1,0,3,0,2, + 0,2,0,6,0,4,0,127,128}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 20 + Calculated Max Values w=15 h=25 x= 7 y= 9 dx=20 dy= 0 ascent=22 len=50 + Font Bounding box w=28 h=42 x=-6 y=-10 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =20 descent= 0 + X Font ascent =20 descent= 0 + Max Font ascent =22 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR24n[638] U8G_SECTION(".progmem.u8g_font_courR24n") = { + 0,28,42,250,246,20,0,0,0,0,42,57,0,22,252,20, + 0,11,13,26,20,4,8,4,0,4,0,4,0,4,0,132, + 32,245,224,31,0,14,0,10,0,27,0,49,128,32,128,96, + 192,15,17,34,20,2,1,1,0,1,0,1,0,1,0,1, + 0,1,0,1,0,1,0,255,254,1,0,1,0,1,0,1, + 0,1,0,1,0,1,0,1,0,6,9,9,20,5,252,60, + 60,120,120,96,224,192,192,128,15,1,2,20,2,9,255,254, + 5,4,4,20,7,0,112,248,248,112,11,25,50,20,4,253, + 0,32,0,96,0,64,0,64,0,192,0,128,1,128,1,0, + 3,0,2,0,2,0,6,0,4,0,12,0,8,0,8,0, + 24,0,16,0,48,0,32,0,96,0,64,0,64,0,192,0, + 128,0,11,20,40,20,4,0,31,0,49,128,96,192,64,64, + 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, + 128,32,128,32,192,96,64,64,64,64,96,192,49,128,31,0, + 11,20,40,20,4,0,12,0,60,0,228,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,255,224,13,20, + 40,20,3,0,15,192,48,96,96,16,64,16,64,16,0,16, + 0,48,0,32,0,96,0,192,1,128,3,0,6,0,12,0, + 24,0,48,0,96,0,192,0,128,8,255,248,13,20,40,20, + 3,0,15,128,56,224,96,48,0,16,0,16,0,16,0,16, + 0,32,0,64,7,128,0,96,0,16,0,8,0,8,0,8, + 0,8,0,24,192,48,112,224,31,128,13,20,40,20,3,0, + 0,192,1,64,1,64,2,64,6,64,4,64,8,64,24,64, + 16,64,32,64,96,64,64,64,128,64,255,248,0,64,0,64, + 0,64,0,64,0,64,3,248,13,20,40,20,3,0,63,240, + 32,0,32,0,32,0,32,0,32,0,32,0,39,128,60,224, + 32,48,0,16,0,24,0,8,0,8,0,8,0,24,192,16, + 96,48,56,224,15,128,12,20,40,20,4,0,7,192,28,32, + 48,0,32,0,96,0,64,0,192,0,143,128,184,224,160,32, + 192,48,192,16,192,16,192,16,192,16,64,16,96,48,32,32, + 56,224,15,128,11,20,40,20,4,0,255,224,128,32,128,32, + 0,96,0,64,0,64,0,192,0,128,0,128,1,128,1,0, + 1,0,3,0,2,0,2,0,2,0,6,0,4,0,4,0, + 4,0,11,20,40,20,4,0,31,0,96,192,64,64,192,96, + 128,32,128,32,192,96,64,64,49,128,31,0,113,192,64,64, + 192,96,128,32,128,32,128,32,192,96,64,64,113,192,31,0, + 12,20,40,20,4,0,31,0,112,192,64,96,192,32,128,48, + 128,48,128,48,128,48,192,80,64,208,115,144,30,16,0,32, + 0,32,0,32,0,64,0,192,1,128,14,0,120,0}; +/* + Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 20 + Calculated Max Values w=19 h=26 x= 9 y=17 dx=20 dy= 0 ascent=22 len=60 + Font Bounding box w=28 h=42 x=-6 y=-10 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =19 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =22 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_courR24r[3991] U8G_SECTION(".progmem.u8g_font_courR24r") = { + 0,28,42,250,246,19,4,184,10,129,32,127,250,22,250,21, + 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, + 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, + 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, + 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, + 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, + 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, + 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, + 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, + 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, + 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, + 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, + 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, + 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, + 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, + 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, + 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, + 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, + 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, + 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, + 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, + 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, + 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, + 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, + 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, + 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, + 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, + 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, + 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, + 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, + 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, + 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, + 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, + 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, + 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, + 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, + 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, + 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, + 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, + 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, + 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, + 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, + 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, + 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, + 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, + 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, + 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, + 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, + 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, + 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, + 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, + 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, + 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, + 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, + 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, + 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, + 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, + 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, + 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, + 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, + 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, + 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, + 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, + 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, + 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, + 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, + 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, + 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, + 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, + 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, + 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, + 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, + 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, + 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, + 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, + 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, + 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, + 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, + 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, + 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, + 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, + 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, + 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, + 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, + 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, + 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, + 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, + 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, + 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, + 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, + 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, + 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, + 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, + 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, + 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, + 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, + 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, + 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, + 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, + 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, + 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, + 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, + 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, + 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, + 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, + 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, + 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, + 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, + 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, + 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, + 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, + 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, + 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, + 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, + 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, + 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, + 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, + 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, + 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, + 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, + 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, + 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, + 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, + 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, + 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, + 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, + 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, + 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, + 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, + 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, + 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, + 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, + 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, + 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, + 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, + 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, + 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, + 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, + 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, + 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, + 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, + 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, + 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, + 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, + 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, + 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, + 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, + 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, + 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, + 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, + 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, + 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, + 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, + 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, + 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, + 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, + 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, + 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, + 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, + 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, + 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, + 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, + 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, + 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, + 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, + 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, + 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, + 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, + 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, + 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, + 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, + 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, + 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, + 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, + 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, + 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, + 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, + 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, + 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, + 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, + 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, + 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, + 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, + 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, + 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, + 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, + 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, + 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, + 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, + 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, + 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, + 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, + 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, + 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, + 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, + 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, + 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, + 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, + 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, + 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, + 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, + 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, + 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, + 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, + 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, + 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, + 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, + 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, + 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, + 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, + 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, + 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, + 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, + 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, + 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, + 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, + 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, + 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, + 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, + 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, + 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, + 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, + 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, + 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, + 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, + 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, + 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, + 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, + 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, + 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, + 199,24,129,176,0,224,255}; +/* + Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 + Copyright: 2001 Computing Research Lab, New Mexico State University. + Capital A Height: 3, '1' Height: 11 + Calculated Max Values w=16 h=17 x= 7 y= 6 dx=19 dy= 0 ascent=17 len=34 + Font Bounding box w=40 h=30 x=-9 y=-10 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 1 + X Font ascent =12 descent= 0 + Max Font ascent =17 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[3981] U8G_SECTION(".progmem.u8g_font_cu12_67_75") = { + 0,40,30,247,246,3,2,98,5,14,32,255,1,17,254,12, + 0,11,5,10,12,1,4,2,128,1,64,255,224,1,64,2, + 128,5,11,11,6,1,1,32,32,32,32,32,32,168,112,168, + 112,32,11,5,10,12,1,4,32,96,65,128,255,0,65,128, + 32,96,11,5,10,12,1,4,192,128,48,64,31,224,48,64, + 192,128,11,7,14,12,1,3,0,32,32,32,64,32,255,224, + 64,32,32,32,0,32,7,11,11,8,1,1,16,56,84,16, + 16,16,16,16,16,16,254,11,7,14,12,1,3,128,0,128, + 128,128,64,255,224,128,64,128,128,128,0,7,11,11,8,1, + 1,254,16,16,16,16,16,16,16,84,56,16,7,11,11,8, + 1,1,16,56,84,16,16,16,16,16,84,56,254,11,7,14, + 12,1,4,1,192,0,32,32,32,64,32,255,192,64,0,32, + 0,11,7,14,12,1,4,112,0,128,0,128,128,128,64,127, + 224,0,64,0,128,11,7,14,12,1,4,1,192,2,32,34, + 32,66,32,255,192,66,0,34,0,11,7,14,12,1,4,112, + 0,136,0,136,128,136,64,127,224,8,64,8,128,12,5,10, + 13,1,4,38,64,73,32,233,112,80,160,32,64,12,5,10, + 13,1,4,33,64,66,32,255,240,68,32,40,64,4,11,11, + 5,1,1,16,16,32,64,176,208,32,160,160,192,240,6,11, + 11,7,1,1,32,64,252,68,36,4,4,4,4,4,4,6, + 11,11,7,1,1,16,8,252,136,144,128,128,128,128,128,128, + 6,11,11,7,1,1,4,4,4,4,4,4,36,68,252,64, + 32,6,11,11,7,1,1,128,128,128,128,128,128,144,136,252, + 8,16,8,6,6,9,1,2,252,4,4,21,14,4,6,8, + 8,7,1,1,4,4,4,36,68,252,64,32,11,8,16,11, + 1,1,15,128,16,64,32,32,32,32,32,32,168,32,112,0, + 32,0,11,8,16,11,1,1,62,0,65,0,128,128,128,128, + 128,128,130,160,1,192,0,128,9,11,22,10,1,1,255,128, + 0,0,240,0,192,0,160,0,144,0,8,0,4,0,2,0, + 1,0,0,128,12,13,26,13,1,0,128,0,144,0,160,0, + 255,240,160,0,144,0,128,16,0,144,0,80,255,240,0,80, + 0,144,0,16,10,7,14,11,1,2,3,192,67,0,130,128, + 130,128,128,128,65,0,62,0,10,7,14,11,1,2,240,0, + 48,128,80,64,80,64,64,64,32,128,31,0,11,3,6,12, + 1,6,32,0,64,0,255,224,11,3,6,12,1,6,255,224, + 64,0,32,0,3,11,11,4,1,1,128,192,160,128,128,128, + 128,128,128,128,128,3,11,11,4,1,1,32,96,160,32,32, + 32,32,32,32,32,32,11,3,6,12,1,6,0,128,0,64, + 255,224,11,3,6,12,1,6,255,224,0,64,0,128,3,11, + 11,4,1,1,128,128,128,128,128,128,128,128,160,192,128,3, + 11,11,4,1,1,32,32,32,32,32,32,32,32,160,96,32, + 11,11,22,12,1,1,0,128,0,64,255,224,0,64,0,128, + 0,0,32,0,64,0,255,224,64,0,32,0,11,11,22,12, + 1,1,32,128,112,128,168,128,32,128,32,128,32,128,32,128, + 32,128,34,160,33,192,32,128,11,11,22,12,1,1,32,0, + 64,0,255,224,64,0,32,0,0,0,0,128,0,64,255,224, + 0,64,0,128,11,11,22,12,1,1,32,0,64,0,255,224, + 64,0,32,0,0,0,32,0,64,0,255,224,64,0,32,0, + 11,11,22,12,1,1,32,128,113,192,170,160,32,128,32,128, + 32,128,32,128,32,128,32,128,32,128,32,128,11,11,22,12, + 1,1,0,128,0,64,255,224,0,64,0,128,0,0,0,128, + 0,64,255,224,0,64,0,128,11,11,22,12,1,1,32,128, + 32,128,32,128,32,128,32,128,32,128,32,128,32,128,170,160, + 113,192,32,128,11,8,16,12,1,3,32,0,64,0,255,224, + 0,0,0,0,255,224,0,64,0,128,11,8,16,12,1,3, + 0,128,0,64,255,224,0,0,0,0,255,224,64,0,32,0, + 11,7,14,12,1,3,16,128,32,128,127,224,129,0,127,224, + 34,0,18,0,13,7,14,14,1,3,17,64,33,32,127,240, + 130,8,127,240,36,32,20,64,11,7,14,12,1,3,9,0, + 8,128,255,192,16,32,255,192,32,128,33,0,11,7,14,12, + 1,3,16,0,32,0,127,224,128,0,127,224,32,0,16,0, + 7,11,11,8,1,1,16,40,108,170,40,40,40,40,40,40, + 40,11,7,14,12,1,3,1,0,0,128,255,192,0,32,255, + 192,0,128,1,0,7,11,11,8,1,1,40,40,40,40,40, + 40,40,170,108,40,16,12,7,14,12,1,3,16,128,32,64, + 127,224,128,16,127,224,32,64,16,128,7,12,12,8,1,0, + 16,40,108,170,40,40,40,40,170,108,40,16,10,10,20,11, + 1,1,248,0,144,0,136,0,196,0,162,0,17,0,8,128, + 4,64,2,0,1,0,10,10,20,11,1,1,7,192,2,64, + 4,64,8,192,17,64,34,0,68,0,136,0,16,0,32,0, + 10,10,20,11,1,1,32,0,16,0,136,0,68,0,34,0, + 17,64,8,192,4,64,2,64,7,192,10,10,20,11,1,1, + 1,0,2,0,4,64,8,128,17,0,162,0,196,0,136,0, + 144,0,248,0,11,7,14,12,1,3,16,0,63,224,64,0, + 255,224,64,0,63,224,16,0,11,7,14,12,1,3,1,0, + 255,128,0,64,255,224,0,64,255,128,1,0,12,5,10,13, + 1,4,32,0,72,128,245,80,66,32,32,0,12,5,10,13, + 1,4,0,64,17,32,170,240,68,32,0,64,5,11,11,6, + 1,1,32,112,168,32,32,248,32,248,32,32,32,5,11,11, + 6,1,1,32,32,32,248,32,248,32,32,168,112,32,11,5, + 10,12,1,4,32,0,64,0,238,224,64,0,32,0,5,11, + 11,6,1,1,32,112,168,0,32,32,32,0,32,32,32,11, + 5,10,12,1,4,0,128,0,64,238,224,0,64,0,128,5, + 11,11,6,1,1,32,32,32,0,32,32,32,0,168,112,32, + 12,7,14,13,1,3,128,0,144,0,160,0,255,240,160,0, + 144,0,128,0,12,7,14,13,1,3,0,16,0,144,0,80, + 255,240,0,80,0,144,0,16,12,9,18,13,1,2,8,0, + 24,0,47,240,64,16,128,16,64,16,47,240,24,0,8,0, + 9,12,24,10,1,1,8,0,20,0,34,0,65,0,227,128, + 34,0,34,0,34,0,34,0,34,0,34,0,62,0,12,9, + 18,13,1,2,1,0,1,128,255,64,128,32,128,16,128,32, + 255,64,1,128,1,0,9,12,24,10,1,1,62,0,34,0, + 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, + 20,0,8,0,9,17,34,10,1,0,8,0,20,0,34,0, + 65,0,227,128,34,0,34,0,34,0,34,0,34,0,34,0, + 62,0,0,0,62,0,34,0,34,0,62,0,9,14,28,10, + 1,0,8,0,20,0,34,0,65,0,227,128,34,0,34,0, + 34,0,34,0,34,0,34,0,227,128,128,128,255,128,9,14, + 28,10,1,0,8,0,20,0,62,0,65,0,227,128,34,0, + 34,0,34,0,34,0,34,0,34,0,227,128,128,128,255,128, + 9,14,28,10,1,0,8,0,28,0,42,0,73,0,235,128, + 42,0,42,0,42,0,42,0,42,0,42,0,235,128,136,128, + 255,128,9,15,30,10,1,2,8,0,20,0,34,0,73,0, + 213,128,34,0,65,0,227,128,34,0,34,0,34,0,34,0, + 34,0,34,0,62,0,9,17,34,10,1,0,8,0,20,0, + 34,0,73,0,213,128,34,0,65,0,227,128,34,0,34,0, + 34,0,34,0,34,0,34,0,227,128,128,128,255,128,14,9, + 18,16,2,2,224,64,160,96,191,208,128,24,128,20,128,24, + 191,208,160,96,224,64,11,11,22,12,1,1,255,224,128,0, + 188,0,176,0,168,0,164,0,130,0,129,0,128,128,128,64, + 128,32,11,11,22,12,1,1,128,32,64,32,32,32,16,32, + 8,32,4,160,2,160,1,160,7,160,0,32,255,224,9,16, + 32,10,1,0,8,0,20,0,34,0,65,0,227,128,34,0, + 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, + 20,0,8,0,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 11,11,22,14,2,1,255,224,255,224,255,224,255,224,255,224, + 255,224,255,224,255,224,255,224,255,224,255,224,11,11,22,14, + 2,1,255,224,128,32,128,32,128,32,128,32,128,32,128,32, + 128,32,128,32,128,32,255,224,11,11,22,14,2,1,63,128, + 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, + 64,64,63,128,11,11,22,14,2,1,255,224,128,32,191,160, + 191,160,191,160,191,160,191,160,191,160,191,160,128,32,255,224, + 11,11,22,14,2,1,255,224,128,32,255,224,128,32,255,224, + 128,32,255,224,128,32,255,224,128,32,255,224,11,11,22,14, + 2,1,255,224,170,160,170,160,170,160,170,160,170,160,170,160, + 170,160,170,160,170,160,255,224,11,11,22,14,2,1,255,224, + 170,160,255,224,170,160,255,224,170,160,255,224,170,160,255,224, + 170,160,255,224,11,11,22,14,2,1,255,224,201,32,164,160, + 146,96,201,32,164,160,146,96,201,32,164,160,146,96,255,224, + 11,11,22,14,2,1,255,224,146,96,164,160,201,32,146,96, + 164,160,201,32,146,96,164,160,201,32,255,224,11,11,22,14, + 2,1,255,224,213,96,170,160,213,96,170,160,213,96,170,160, + 213,96,170,160,213,96,255,224,7,7,7,12,3,3,254,254, + 254,254,254,254,254,7,7,7,12,3,3,254,130,130,130,130, + 130,254,13,6,12,16,2,3,255,248,255,248,255,248,255,248, + 255,248,255,248,13,6,12,16,2,3,255,248,128,8,128,8, + 128,8,128,8,255,248,6,13,13,9,2,254,252,252,252,252, + 252,252,252,252,252,252,252,252,252,6,13,13,9,2,254,252, + 132,132,132,132,132,132,132,132,132,132,132,252,16,6,12,19, + 2,3,31,255,63,254,63,254,127,252,127,252,255,248,16,6, + 12,19,2,3,31,255,32,2,32,2,64,4,64,4,255,248, + 11,12,24,14,2,1,4,0,4,0,14,0,14,0,31,0, + 31,0,63,128,63,128,127,192,127,192,255,224,255,224,11,12, + 24,14,2,1,4,0,4,0,10,0,10,0,17,0,17,0, + 32,128,32,128,64,64,64,64,128,32,255,224,7,8,8,12, + 3,1,16,16,56,56,124,124,254,254,7,8,8,12,3,1, + 16,16,40,40,68,68,130,254,12,11,22,15,2,1,192,0, + 240,0,252,0,255,0,255,192,255,240,255,192,255,0,252,0, + 240,0,192,0,12,11,22,15,2,1,192,0,176,0,140,0, + 131,0,128,192,128,48,128,192,131,0,140,0,176,0,192,0, + 8,7,7,13,3,1,192,240,252,255,252,240,192,8,7,7, + 13,3,1,192,176,140,131,140,176,192,12,7,14,15,2,1, + 192,0,252,0,255,192,255,240,255,192,252,0,192,0,12,7, + 14,15,2,1,192,0,188,0,131,192,128,48,131,192,188,0, + 192,0,11,12,24,14,2,1,255,224,255,224,127,192,127,192, + 63,128,63,128,31,0,31,0,14,0,14,0,4,0,4,0, + 11,12,24,14,2,1,255,224,128,32,64,64,64,64,32,128, + 32,128,17,0,17,0,10,0,10,0,4,0,4,0,7,8, + 8,12,3,1,254,254,124,124,56,56,16,16,7,8,8,12, + 3,1,254,130,68,68,40,40,16,16,12,11,22,15,2,1, + 0,48,0,240,3,240,15,240,63,240,255,240,63,240,15,240, + 3,240,0,240,0,48,12,11,22,15,2,1,0,48,0,208, + 3,16,12,16,48,16,192,16,48,16,12,16,3,16,0,208, + 0,48,8,7,7,13,3,1,3,15,63,255,63,15,3,8, + 7,7,13,3,1,3,13,49,193,49,13,3,12,7,14,15, + 2,1,0,48,3,240,63,240,255,240,63,240,3,240,0,48, + 12,7,14,15,2,1,0,48,3,208,60,16,192,16,60,16, + 3,208,0,48,11,11,22,14,2,1,4,0,14,0,31,0, + 63,128,127,192,255,224,127,192,63,128,31,0,14,0,4,0, + 11,11,22,14,2,1,4,0,10,0,17,0,32,128,64,64, + 128,32,64,64,32,128,17,0,10,0,4,0,11,11,22,14, + 2,1,4,0,10,0,17,0,36,128,78,64,159,32,78,64, + 36,128,17,0,10,0,4,0,11,11,22,14,2,1,31,0, + 96,192,64,64,142,32,159,32,159,32,159,32,142,32,64,64, + 96,192,31,0,7,12,12,8,1,0,16,40,40,68,68,130, + 130,68,68,40,40,16,11,11,22,14,2,1,31,0,96,192, + 64,64,128,32,128,32,128,32,128,32,128,32,64,64,96,192, + 31,0,11,11,22,14,2,1,14,0,32,128,64,64,0,0, + 128,32,128,32,128,32,0,0,64,64,32,128,14,0,11,11, + 22,14,2,1,31,0,106,192,106,192,170,160,170,160,170,160, + 170,160,170,160,106,192,106,192,31,0,11,11,22,14,2,1, + 31,0,96,192,64,64,142,32,145,32,145,32,145,32,142,32, + 64,64,96,192,31,0,11,11,22,14,2,1,31,0,127,192, + 127,192,255,224,255,224,255,224,255,224,255,224,127,192,127,192, + 31,0,11,11,22,14,2,1,31,0,120,192,120,64,248,32, + 248,32,248,32,248,32,248,32,120,64,120,192,31,0,11,11, + 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, + 131,224,131,224,67,192,99,192,31,0,11,11,22,14,2,1, + 31,0,127,192,127,192,255,224,255,224,128,32,128,32,128,32, + 64,64,96,192,31,0,11,11,22,14,2,1,31,0,96,192, + 64,64,128,32,128,32,128,32,255,224,255,224,127,192,127,192, + 31,0,11,11,22,14,2,1,31,0,103,192,71,192,135,224, + 135,224,135,224,128,32,128,32,64,64,96,192,31,0,11,11, + 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, + 255,224,255,224,127,192,127,192,31,0,6,11,11,8,2,1, + 28,124,124,252,252,252,252,252,124,124,28,6,11,11,9,2, + 1,224,248,248,252,252,252,252,252,248,248,224,7,12,12,10, + 2,1,254,254,254,254,254,198,130,130,130,198,254,254,13,13, + 26,16,2,0,255,248,240,120,207,152,223,216,191,232,191,232, + 191,232,191,232,191,232,223,216,207,152,240,120,255,248,13,7, + 14,16,2,6,255,248,240,120,207,152,223,216,191,232,191,232, + 191,232,13,7,14,16,2,0,191,232,191,232,191,232,223,216, + 207,152,240,120,255,248,6,6,6,8,2,6,28,96,64,128, + 128,128,6,6,6,13,7,6,224,24,8,4,4,4,6,6, + 6,13,7,1,4,4,4,8,24,224,6,6,6,8,2,1, + 128,128,128,64,96,28,11,6,12,14,2,6,31,0,96,192, + 64,64,128,32,128,32,128,32,11,6,12,14,2,1,128,32, + 128,32,128,32,64,64,96,192,31,0,12,12,24,15,2,1, + 0,16,0,48,0,112,0,240,1,240,3,240,7,240,15,240, + 31,240,63,240,127,240,255,240,12,12,24,15,2,1,128,0, + 192,0,224,0,240,0,248,0,252,0,254,0,255,0,255,128, + 255,192,255,224,255,240,12,12,24,15,2,1,255,240,255,224, + 255,192,255,128,255,0,254,0,252,0,248,0,240,0,224,0, + 192,0,128,0,12,12,24,15,2,1,255,240,127,240,63,240, + 31,240,15,240,7,240,3,240,1,240,0,240,0,112,0,48, + 0,16,7,7,7,8,1,2,56,68,130,130,130,68,56,11, + 11,22,14,2,1,255,224,248,32,248,32,248,32,248,32,248, + 32,248,32,248,32,248,32,248,32,255,224,11,11,22,14,2, + 1,255,224,131,224,131,224,131,224,131,224,131,224,131,224,131, + 224,131,224,131,224,255,224,11,11,22,14,2,1,255,224,255, + 224,255,160,255,32,254,32,252,32,248,32,240,32,224,32,192, + 32,255,224,11,11,22,14,2,1,255,224,128,96,128,224,129, + 224,131,224,135,224,143,224,159,224,191,224,255,224,255,224,11, + 11,22,14,2,1,255,224,132,32,132,32,132,32,132,32,132, + 32,132,32,132,32,132,32,132,32,255,224,11,12,24,14,2, + 1,4,0,4,0,10,0,10,0,17,0,17,0,32,128,36, + 128,78,64,68,64,128,32,255,224,11,12,24,14,2,1,4, + 0,4,0,14,0,14,0,29,0,29,0,60,128,60,128,124, + 64,124,64,252,32,255,224,11,12,24,14,2,1,4,0,4, + 0,14,0,14,0,23,0,23,0,39,128,39,128,71,192,71, + 192,135,224,255,224,13,13,26,16,2,0,31,192,32,32,64, + 16,128,8,128,8,128,8,128,8,128,8,128,8,128,8,64, + 16,32,32,31,192,11,11,22,14,2,1,255,224,132,32,132, + 32,132,32,132,32,252,32,128,32,128,32,128,32,128,32,255, + 224,11,11,22,14,2,1,255,224,128,32,128,32,128,32,128, + 32,252,32,132,32,132,32,132,32,132,32,255,224,11,11,22, + 14,2,1,255,224,128,32,128,32,128,32,128,32,135,224,132, + 32,132,32,132,32,132,32,255,224,11,11,22,14,2,1,255, + 224,132,32,132,32,132,32,132,32,135,224,128,32,128,32,128, + 32,128,32,255,224,11,11,22,14,2,1,31,0,100,192,68, + 64,132,32,132,32,252,32,128,32,128,32,64,64,96,192,31, + 0,11,11,22,14,2,1,31,0,96,192,64,64,128,32,128, + 32,252,32,132,32,132,32,68,64,100,192,31,0,11,11,22, + 14,2,1,31,0,96,192,64,64,128,32,128,32,135,224,132, + 32,132,32,68,64,100,192,31,0,11,11,22,14,2,1,31, + 0,100,192,68,64,132,32,132,32,135,224,128,32,128,32,64, + 64,96,192,31,0,255,255,255,255,255,255,255,255}; +/* + Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 + Copyright: 2001 Computing Research Lab, New Mexico State University. + Capital A Height: 11, '1' Height: 6 + Calculated Max Values w=16 h=13 x= 3 y= 3 dx=19 dy= 0 ascent=13 len=24 + Font Bounding box w=40 h=30 x=-9 y=-10 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =12 descent= 0 + Max Font ascent =13 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_cu12_75r[1123] U8G_SECTION(".progmem.u8g_font_cu12_75r") = { + 0,40,30,247,246,11,2,247,0,0,32,79,0,13,254,12, + 0,11,11,22,14,2,1,255,224,255,224,255,224,255,224,255, + 224,255,224,255,224,255,224,255,224,255,224,255,224,11,11,22, + 14,2,1,255,224,128,32,128,32,128,32,128,32,128,32,128, + 32,128,32,128,32,128,32,255,224,11,11,22,14,2,1,63, + 128,64,64,128,32,128,32,128,32,128,32,128,32,128,32,128, + 32,64,64,63,128,11,11,22,14,2,1,255,224,128,32,191, + 160,191,160,191,160,191,160,191,160,191,160,191,160,128,32,255, + 224,11,11,22,14,2,1,255,224,128,32,255,224,128,32,255, + 224,128,32,255,224,128,32,255,224,128,32,255,224,11,11,22, + 14,2,1,255,224,170,160,170,160,170,160,170,160,170,160,170, + 160,170,160,170,160,170,160,255,224,11,11,22,14,2,1,255, + 224,170,160,255,224,170,160,255,224,170,160,255,224,170,160,255, + 224,170,160,255,224,11,11,22,14,2,1,255,224,201,32,164, + 160,146,96,201,32,164,160,146,96,201,32,164,160,146,96,255, + 224,11,11,22,14,2,1,255,224,146,96,164,160,201,32,146, + 96,164,160,201,32,146,96,164,160,201,32,255,224,11,11,22, + 14,2,1,255,224,213,96,170,160,213,96,170,160,213,96,170, + 160,213,96,170,160,213,96,255,224,7,7,7,12,3,3,254, + 254,254,254,254,254,254,7,7,7,12,3,3,254,130,130,130, + 130,130,254,13,6,12,16,2,3,255,248,255,248,255,248,255, + 248,255,248,255,248,13,6,12,16,2,3,255,248,128,8,128, + 8,128,8,128,8,255,248,6,13,13,9,2,254,252,252,252, + 252,252,252,252,252,252,252,252,252,252,6,13,13,9,2,254, + 252,132,132,132,132,132,132,132,132,132,132,132,252,16,6,12, + 19,2,3,31,255,63,254,63,254,127,252,127,252,255,248,16, + 6,12,19,2,3,31,255,32,2,32,2,64,4,64,4,255, + 248,11,12,24,14,2,1,4,0,4,0,14,0,14,0,31, + 0,31,0,63,128,63,128,127,192,127,192,255,224,255,224,11, + 12,24,14,2,1,4,0,4,0,10,0,10,0,17,0,17, + 0,32,128,32,128,64,64,64,64,128,32,255,224,7,8,8, + 12,3,1,16,16,56,56,124,124,254,254,7,8,8,12,3, + 1,16,16,40,40,68,68,130,254,12,11,22,15,2,1,192, + 0,240,0,252,0,255,0,255,192,255,240,255,192,255,0,252, + 0,240,0,192,0,12,11,22,15,2,1,192,0,176,0,140, + 0,131,0,128,192,128,48,128,192,131,0,140,0,176,0,192, + 0,8,7,7,13,3,1,192,240,252,255,252,240,192,8,7, + 7,13,3,1,192,176,140,131,140,176,192,12,7,14,15,2, + 1,192,0,252,0,255,192,255,240,255,192,252,0,192,0,12, + 7,14,15,2,1,192,0,188,0,131,192,128,48,131,192,188, + 0,192,0,11,12,24,14,2,1,255,224,255,224,127,192,127, + 192,63,128,63,128,31,0,31,0,14,0,14,0,4,0,4, + 0,11,12,24,14,2,1,255,224,128,32,64,64,64,64,32, + 128,32,128,17,0,17,0,10,0,10,0,4,0,4,0,7, + 8,8,12,3,1,254,254,124,124,56,56,16,16,7,8,8, + 12,3,1,254,130,68,68,40,40,16,16,12,11,22,15,2, + 1,0,48,0,240,3,240,15,240,63,240,255,240,63,240,15, + 240,3,240,0,240,0,48,12,11,22,15,2,1,0,48,0, + 208,3,16,12,16,48,16,192,16,48,16,12,16,3,16,0, + 208,0,48,8,7,7,13,3,1,3,15,63,255,63,15,3, + 8,7,7,13,3,1,3,13,49,193,49,13,3,12,7,14, + 15,2,1,0,48,3,240,63,240,255,240,63,240,3,240,0, + 48,12,7,14,15,2,1,0,48,3,208,60,16,192,16,60, + 16,3,208,0,48,11,11,22,14,2,1,4,0,14,0,31, + 0,63,128,127,192,255,224,127,192,63,128,31,0,14,0,4, + 0,11,11,22,14,2,1,4,0,10,0,17,0,32,128,64, + 64,128,32,64,64,32,128,17,0,10,0,4,0,11,11,22, + 14,2,1,4,0,10,0,17,0,36,128,78,64,159,32,78, + 64,36,128,17,0,10,0,4,0,11,11,22,14,2,1,31, + 0,96,192,64,64,142,32,159,32,159,32,159,32,142,32,64, + 64,96,192,31,0,7,12,12,8,1,0,16,40,40,68,68, + 130,130,68,68,40,40,16,11,11,22,14,2,1,31,0,96, + 192,64,64,128,32,128,32,128,32,128,32,128,32,64,64,96, + 192,31,0,11,11,22,14,2,1,14,0,32,128,64,64,0, + 0,128,32,128,32,128,32,0,0,64,64,32,128,14,0,11, + 11,22,14,2,1,31,0,106,192,106,192,170,160,170,160,170, + 160,170,160,170,160,106,192,106,192,31,0,11,11,22,14,2, + 1,31,0,96,192,64,64,142,32,145,32,145,32,145,32,142, + 32,64,64,96,192,31,0,11,11,22,14,2,1,31,0,127, + 192,127,192,255,224,255,224,255,224,255,224,255,224,127,192,127, + 192,31,0}; +/* + Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 + Copyright: 2001 Computing Research Lab, New Mexico State University. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=16 h=16 x= 3 y=11 dx=16 dy= 0 ascent=16 len=32 + Font Bounding box w=40 h=30 x=-9 y=-10 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_cu12[3993] U8G_SECTION(".progmem.u8g_font_cu12") = { + 0,40,30,247,246,11,2,90,5,94,32,255,252,16,252,12, + 252,0,0,0,5,0,0,2,12,12,5,1,0,192,192,192, + 192,192,192,192,0,0,0,192,192,4,5,5,7,2,7,144, + 144,144,144,144,10,15,30,12,1,253,4,128,4,128,9,0, + 9,0,9,0,255,192,18,0,18,0,18,0,255,192,36,0, + 36,0,36,0,72,0,72,0,5,14,14,8,1,255,32,112, + 168,168,168,160,96,48,40,168,168,168,112,32,11,13,26,14, + 1,255,96,64,152,128,151,128,145,0,146,0,98,0,4,0, + 8,192,9,32,17,32,33,32,33,32,64,192,10,12,24,13, + 1,0,24,0,36,0,36,0,36,0,40,0,51,192,49,0, + 81,0,138,0,138,0,196,64,123,128,1,5,5,4,2,7, + 128,128,128,128,128,4,15,15,6,2,253,16,32,64,64,128, + 128,128,128,128,128,128,64,64,32,16,4,15,15,6,1,253, + 128,64,32,32,16,16,16,16,16,16,16,32,32,64,128,7, + 7,7,7,0,5,16,146,84,56,84,146,16,9,9,18,11, + 2,255,8,0,8,0,8,0,8,0,255,128,8,0,8,0, + 8,0,8,0,2,5,5,5,1,253,192,192,64,64,128,4, + 1,1,7,2,3,240,2,2,2,5,1,0,192,192,5,16, + 16,8,2,252,8,8,16,16,16,16,32,32,32,32,64,64, + 64,64,128,128,5,11,11,7,1,0,112,80,136,136,136,136, + 136,136,136,80,112,5,11,11,7,1,0,32,224,32,32,32, + 32,32,32,32,32,248,5,11,11,7,1,0,112,136,136,136, + 8,16,16,32,72,72,248,5,11,11,7,1,0,112,136,136, + 8,8,48,8,8,136,136,112,7,11,11,9,1,0,24,24, + 40,40,72,200,254,8,8,8,62,5,11,11,7,1,0,136, + 240,128,128,240,200,8,8,136,144,96,5,11,11,7,1,0, + 48,72,64,128,240,136,136,136,136,80,112,6,12,12,8,1, + 0,128,252,132,136,16,16,16,32,32,32,32,32,5,11,11, + 7,1,0,112,136,136,136,80,112,136,136,136,136,112,5,11, + 11,7,1,0,112,80,136,136,136,136,120,8,16,144,96,2, + 7,7,7,3,0,192,192,0,0,0,192,192,2,10,10,5, + 1,253,192,192,0,0,0,192,192,64,64,128,5,9,9,6, + 1,1,8,16,32,64,128,64,32,16,8,10,5,10,13,2, + 2,255,192,0,0,0,0,0,0,255,192,5,9,9,6,1, + 1,128,64,32,16,8,16,32,64,128,5,12,12,8,1,0, + 112,136,136,16,32,32,96,0,0,0,96,96,10,12,24,12, + 1,0,30,0,33,0,76,128,147,64,161,64,161,64,161,64, + 161,64,147,64,77,128,32,192,31,0,11,11,22,11,0,0, + 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, + 32,128,32,128,241,224,10,11,22,10,0,0,255,0,32,128, + 32,64,32,64,32,128,63,0,32,128,32,64,32,64,32,128, + 255,0,9,11,22,10,1,0,30,128,33,128,64,128,128,128, + 128,0,128,0,128,0,128,128,64,128,33,0,30,0,10,11, + 22,10,0,0,254,0,33,128,32,128,32,64,32,64,32,64, + 32,64,32,64,32,128,33,128,254,0,10,11,22,10,1,0, + 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, + 32,128,32,128,255,128,9,11,22,9,1,0,255,128,32,128, + 32,128,34,128,34,0,62,0,34,0,34,0,32,0,32,0, + 248,0,10,11,22,10,1,0,30,128,33,128,64,128,128,128, + 128,0,128,0,131,192,128,128,64,128,32,128,31,128,11,11, + 22,11,1,0,251,224,32,128,32,128,32,128,32,128,63,128, + 32,128,32,128,32,128,32,128,251,224,5,11,11,5,1,0, + 248,32,32,32,32,32,32,32,32,32,248,6,11,11,6,1, + 0,124,16,16,16,16,16,16,16,16,144,224,11,11,22,11, + 1,0,249,224,32,128,33,0,34,0,36,0,46,0,50,0, + 33,0,33,0,32,128,249,224,8,11,11,8,0,0,248,32, + 32,32,32,32,33,33,33,35,255,14,11,22,14,1,0,240, + 60,48,48,48,48,40,80,40,80,40,144,36,144,36,144,35, + 16,35,16,251,124,11,11,22,11,1,0,227,224,48,128,48, + 128,40,128,40,128,36,128,34,128,34,128,33,128,33,128,248, + 128,10,11,22,10,1,0,30,0,33,0,64,128,128,64,128, + 64,128,64,128,64,128,64,64,128,33,0,30,0,9,11,22, + 9,1,0,255,0,33,128,32,128,32,128,33,128,63,0,32, + 0,32,0,32,0,32,0,248,0,10,14,28,10,1,253,30, + 0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,92, + 128,51,0,30,0,2,0,2,64,1,128,11,11,22,11,1, + 0,254,0,33,0,32,128,32,128,33,0,62,0,35,0,33, + 0,33,0,33,0,248,224,6,11,11,7,1,0,124,132,132, + 128,64,48,8,4,132,132,248,9,11,22,9,1,0,255,128, + 136,128,136,128,136,128,8,0,8,0,8,0,8,0,8,0, + 8,0,62,0,11,11,22,11,1,0,251,224,32,128,32,128, + 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, + 11,11,22,11,1,0,241,224,32,128,32,128,17,0,17,0, + 17,0,10,0,10,0,10,0,4,0,4,0,16,11,22,16, + 1,0,241,207,33,132,33,132,34,68,18,72,18,72,18,72, + 20,40,12,48,12,48,8,16,11,11,22,11,1,0,243,192, + 17,0,18,0,10,0,12,0,4,0,10,0,26,0,17,0, + 32,128,241,224,11,11,22,11,1,0,241,224,32,128,17,0, + 17,0,10,0,14,0,4,0,4,0,4,0,4,0,31,0, + 7,11,11,7,1,0,254,196,132,136,8,16,34,34,66,70, + 254,3,16,16,5,1,252,224,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,224,5,16,16,8,2,252,128,128,64, + 64,64,64,32,32,32,32,16,16,16,16,8,8,3,16,16, + 5,0,252,224,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,224,5,3,3,6,1,9,32,112,136,11,1,2,12, + 1,254,255,224,3,4,4,6,3,8,128,192,64,32,6,7, + 7,7,1,0,112,136,8,120,136,136,124,6,12,12,7,1, + 0,192,64,64,64,64,120,68,68,68,68,68,120,5,7,7, + 6,1,0,112,136,128,128,128,136,112,6,12,12,7,1,0, + 24,8,8,8,8,120,136,136,136,136,136,124,5,7,7,6, + 1,0,112,136,248,128,128,136,112,5,12,12,6,1,0,56, + 72,64,64,64,240,64,64,64,64,64,224,7,11,11,8,1, + 252,62,68,68,68,120,64,124,130,130,130,124,7,12,12,8, + 1,0,192,64,64,64,64,120,68,68,68,68,68,238,3,11, + 11,4,1,0,192,192,0,0,192,64,64,64,64,64,224,4, + 14,14,5,0,253,48,48,0,0,48,16,16,16,16,16,16, + 16,144,224,7,12,12,8,1,0,192,64,64,64,64,94,72, + 80,112,88,72,238,3,12,12,4,1,0,192,64,64,64,64, + 64,64,64,64,64,64,224,11,7,14,12,1,0,251,128,68, + 64,68,64,68,64,68,64,68,64,238,224,7,7,7,8,1, + 0,248,68,68,68,68,68,238,5,7,7,6,1,0,112,136, + 136,136,136,136,112,6,10,10,7,1,253,248,68,68,68,68, + 68,120,64,64,224,6,10,10,7,1,253,120,136,136,136,136, + 136,120,8,8,28,5,7,7,6,1,0,208,104,64,64,64, + 64,240,5,7,7,6,1,0,120,136,128,112,8,136,240,6, + 10,10,7,1,0,32,32,32,248,32,32,32,36,36,24,7, + 7,7,8,1,0,204,68,68,68,68,68,62,8,7,7,9, + 1,0,231,36,36,36,24,24,24,11,7,14,11,0,0,238, + 224,36,128,42,128,42,128,42,128,27,0,17,0,8,7,7, + 9,1,0,231,36,24,24,24,36,231,8,10,10,8,1,253, + 231,36,36,36,24,24,24,16,144,224,5,7,7,6,1,0, + 248,144,144,32,72,72,248,5,16,16,6,1,252,24,32,32, + 32,32,32,32,192,32,32,32,32,32,32,32,24,1,16,16, + 3,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,5,16,16,5,0,252,192,32,32,32,32,32,32, + 24,32,32,32,32,32,32,32,192,5,3,3,8,1,9,72, + 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,5,0,0,2,12,12,5,1,253,192, + 192,0,0,0,192,192,192,192,192,192,192,5,11,11,7,1, + 254,16,16,112,168,160,160,160,200,112,64,64,8,12,12,9, + 1,0,6,9,17,16,16,124,16,16,16,81,178,204,7,7, + 7,9,1,3,130,124,68,68,68,124,130,11,11,22,12,0, + 0,241,224,32,128,17,0,10,0,127,192,14,0,4,0,127, + 192,4,0,4,0,31,0,1,16,16,3,2,252,128,128,128, + 128,128,128,128,0,0,128,128,128,128,128,128,128,4,13,13, + 6,1,0,96,144,128,128,96,144,144,144,96,16,16,144,96, + 5,2,2,6,1,11,216,216,9,10,20,10,1,3,62,0, + 65,0,158,128,162,128,162,128,160,128,162,128,156,128,65,0, + 62,0,4,6,6,5,1,7,96,16,112,144,112,240,7,7, + 7,9,1,0,18,36,108,216,108,36,18,6,4,4,8,1, + 2,252,4,4,4,3,1,1,5,0,3,224,9,10,20,10, + 1,3,62,0,65,0,188,128,146,128,146,128,156,128,146,128, + 186,128,65,0,62,0,5,1,1,7,1,11,248,4,4,4, + 6,2,8,96,144,144,96,7,9,9,9,2,1,16,16,16, + 254,16,16,16,0,254,4,7,7,5,1,6,96,144,16,16, + 32,64,240,4,7,7,5,1,6,96,144,16,32,16,144,96, + 3,4,4,6,3,11,32,96,64,128,7,10,10,8,1,253, + 136,136,136,136,136,218,164,128,128,128,7,15,15,8,1,252, + 62,116,244,244,244,116,52,20,20,20,20,20,20,20,20,2, + 2,2,4,2,5,192,192,3,3,3,7,2,253,64,32,224, + 3,7,7,4,1,6,64,192,64,64,64,64,224,4,6,6, + 5,1,7,96,144,144,144,96,240,7,7,7,8,1,0,144, + 72,108,54,108,72,144,11,11,22,12,1,0,64,0,196,0, + 68,0,68,0,68,64,232,192,9,64,10,64,11,224,16,64, + 16,224,11,11,22,12,1,0,64,0,196,0,68,0,68,0, + 68,0,232,192,9,32,8,32,8,64,16,128,17,224,12,11, + 22,13,1,0,96,0,146,0,18,0,34,0,18,32,148,96, + 100,160,5,32,5,240,8,32,8,112,5,12,12,8,1,253, + 48,48,0,0,0,48,32,32,64,128,136,112,11,16,32,11, + 0,0,8,0,12,0,4,0,2,0,0,0,4,0,4,0, + 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, + 241,224,11,16,32,11,0,0,2,0,6,0,4,0,8,0, + 0,0,4,0,4,0,10,0,10,0,10,0,17,0,17,0, + 31,0,32,128,32,128,241,224,11,15,30,11,0,0,4,0, + 14,0,17,0,0,0,4,0,4,0,10,0,10,0,10,0, + 17,0,17,0,31,0,32,128,32,128,241,224,11,15,30,11, + 0,0,9,0,21,0,18,0,0,0,4,0,4,0,10,0, + 10,0,10,0,17,0,17,0,31,0,32,128,32,128,241,224, + 11,14,28,11,0,0,27,0,27,0,0,0,4,0,4,0, + 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, + 241,224,11,15,30,11,0,0,6,0,9,0,9,0,6,0, + 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, + 32,128,32,128,241,224,14,11,22,15,0,0,15,248,10,24, + 10,8,10,40,18,32,31,224,18,36,18,36,34,8,34,8, + 247,248,9,14,28,10,1,253,30,128,33,128,64,128,128,128, + 128,0,128,0,128,0,128,128,64,128,33,0,30,0,8,0, + 4,0,28,0,10,16,32,11,0,0,16,0,24,0,8,0, + 4,0,0,0,255,128,32,128,32,128,34,128,34,0,62,0, + 34,64,34,64,32,128,32,128,255,128,10,16,32,11,0,0, + 4,0,12,0,8,0,16,0,0,0,255,128,32,128,32,128, + 34,128,34,0,62,0,34,64,34,64,32,128,32,128,255,128, + 10,15,30,11,0,0,8,0,28,0,34,0,0,0,255,128, + 32,128,32,128,34,128,34,0,62,0,34,64,34,64,32,128, + 32,128,255,128,10,14,28,11,0,0,54,0,54,0,0,0, + 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, + 32,128,32,128,255,128,5,16,16,6,1,0,64,96,32,16, + 0,248,32,32,32,32,32,32,32,32,32,248,5,16,16,6, + 1,0,16,48,32,64,0,248,32,32,32,32,32,32,32,32, + 32,248,5,15,15,6,1,0,32,112,136,0,248,32,32,32, + 32,32,32,32,32,32,248,5,14,14,6,1,0,216,216,0, + 248,32,32,32,32,32,32,32,32,32,248,10,11,22,11,0, + 0,254,0,33,128,32,128,32,64,32,64,248,64,32,64,32, + 64,32,128,33,128,254,0,11,15,30,12,0,0,9,0,21, + 0,18,0,0,0,227,224,48,128,48,128,40,128,40,128,36, + 128,34,128,34,128,33,128,33,128,248,128,10,16,32,12,1, + 0,16,0,24,0,8,0,4,0,0,0,30,0,33,0,64, + 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, + 0,10,16,32,12,1,0,2,0,6,0,4,0,8,0,0, + 0,30,0,33,0,64,128,128,64,128,64,128,64,128,64,128, + 64,64,128,33,0,30,0,10,15,30,12,1,0,8,0,28, + 0,34,0,0,0,30,0,33,0,64,128,128,64,128,64,128, + 64,128,64,128,64,64,128,33,0,30,0,10,15,30,12,1, + 0,18,0,42,0,36,0,0,0,30,0,33,0,64,128,128, + 64,128,64,128,64,128,64,128,64,64,128,33,0,30,0,10, + 14,28,12,1,0,54,0,54,0,0,0,30,0,33,0,64, + 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, + 0,7,7,7,9,1,0,130,68,40,16,40,68,130,10,13, + 26,12,1,255,0,128,31,0,33,0,66,128,130,64,132,64, + 140,64,136,64,144,64,80,128,33,0,62,0,64,0,11,16, + 32,12,1,0,8,0,12,0,4,0,2,0,0,0,251,224, + 32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128, + 17,0,14,0,11,16,32,12,1,0,2,0,6,0,4,0, + 8,0,0,0,251,224,32,128,32,128,32,128,32,128,32,128, + 32,128,32,128,32,128,17,0,14,0,11,15,30,12,1,0, + 4,0,14,0,17,0,0,0,251,224,32,128,32,128,32,128, + 32,128,32,128,32,128,32,128,32,128,17,0,14,0,11,14, + 28,12,1,0,27,0,27,0,0,0,251,224,32,128,32,128, + 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, + 11,16,32,12,0,0,2,0,6,0,4,0,8,0,0,0, + 241,224,32,128,17,0,17,0,10,0,14,0,4,0,4,0, + 4,0,4,0,31,0,9,11,22,10,0,0,248,0,32,0, + 62,0,33,0,32,128,32,128,32,128,33,0,62,0,32,0, + 248,0,6,12,12,7,1,0,48,72,72,72,72,216,72,68, + 68,68,68,216,6,12,12,7,1,0,64,96,32,16,0,112, + 136,8,120,136,136,124,6,12,12,7,1,0,16,48,32,64, + 0,112,136,8,120,136,136,124,6,11,11,7,1,0,32,112, + 136,0,112,136,8,120,136,136,124,6,11,11,7,1,0,72, + 168,144,0,112,136,8,120,136,136,124,6,10,10,7,1,0, + 216,216,0,112,136,8,120,136,136,124,6,11,11,7,1,0, + 48,72,72,48,112,136,8,120,136,136,124,10,7,14,11,1, + 0,115,128,140,64,15,192,120,0,136,0,140,64,115,128,5, + 10,10,6,1,253,112,136,128,128,128,136,112,32,16,112,5, + 12,12,6,1,0,64,96,32,16,0,112,136,248,128,128,136, + 112,5,12,12,6,1,0,16,48,32,64,0,112,136,248,128, + 128,136,112,5,11,11,6,1,0,32,112,136,0,112,136,248, + 128,128,136,112,5,10,10,6,1,0,216,216,0,112,136,248, + 128,128,136,112,4,12,12,4,0,0,128,192,64,32,0,96, + 32,32,32,32,32,112,4,12,12,4,1,0,16,48,32,64, + 0,192,64,64,64,64,64,224,5,11,11,5,0,0,32,112, + 136,0,96,32,32,32,32,32,112,5,10,10,6,0,0,216, + 216,0,96,32,32,32,32,32,112,5,12,12,6,1,0,80, + 112,224,16,16,120,136,136,136,136,136,112,7,11,11,8,1, + 0,72,168,144,0,248,68,68,68,68,68,238,5,12,12,6, + 1,0,64,96,32,16,0,112,136,136,136,136,136,112,5,12, + 12,6,1,0,16,48,32,64,0,112,136,136,136,136,136,112, + 5,11,11,6,1,0,32,112,136,0,112,136,136,136,136,136, + 112,5,11,11,6,1,0,72,168,144,0,112,136,136,136,136, + 136,112,5,10,10,6,1,0,216,216,0,112,136,136,136,136, + 136,112,9,7,14,11,1,0,8,0,8,0,0,0,255,128, + 0,0,8,0,8,0,5,11,11,6,1,254,8,16,112,152, + 168,168,168,200,112,64,128,7,12,12,8,1,0,64,96,32, + 16,0,204,68,68,68,68,68,62,7,12,12,8,1,0,8, + 24,16,32,0,204,68,68,68,68,68,62,7,11,11,8,1, + 0,16,56,68,0,204,68,68,68,68,68,62,7,10,10,8, + 1,0,108,108,0,204,68,68,68,68,68,62,8,15,15,8, + 1,253,4,12,8,16,0,231,36,36,36,24,24,24,16,144, + 224,6,15,15,7,1,253,192,64,64,64,64,120,68,68,68, + 68,68,120,64,64,224,8,13,13,8,1,253,54,54,0,231, + 36,36,36,24,24,24,16,144,224}; +/* + Fontname: cursor + Copyright: These glyphs are unencumbered + Capital A Height: 15, '1' Height: 16 + Calculated Max Values w=16 h=16 x= 1 y= 0 dx=17 dy= 0 ascent=15 len=32 + Font Bounding box w=31 h=31 x=-15 y=-16 + Calculated Min Values x=-15 y=-16 dx= 0 dy= 0 + Pure Font ascent =15 descent=-8 + X Font ascent =16 descent=-16 + Max Font ascent =15 descent=-16 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_cursor[5286] U8G_SECTION(".progmem.u8g_font_cursor") = { + 0,31,31,241,240,15,4,101,8,211,32,255,248,15,240,16, + 240,14,14,28,17,250,248,224,28,240,60,248,124,124,248,63, + 240,31,224,15,192,15,192,31,224,63,240,124,248,248,124,240, + 60,224,28,16,16,32,17,249,247,240,15,248,31,252,63,254, + 127,127,254,63,252,31,248,15,240,15,240,31,248,63,252,127, + 254,254,127,252,63,248,31,240,15,14,14,28,17,243,242,0, + 12,0,60,0,248,3,248,15,240,63,240,3,224,7,224,14, + 192,28,192,56,128,112,128,224,0,64,0,16,16,32,17,242, + 241,0,7,0,31,0,127,1,254,7,254,31,252,63,252,63, + 248,7,248,15,240,31,240,62,224,124,224,248,64,112,0,32, + 0,8,10,10,17,253,255,255,0,255,24,24,24,24,90,60, + 24,10,12,24,17,252,254,255,192,255,192,255,192,255,192,255, + 192,30,0,30,0,127,128,127,128,127,128,63,0,30,0,8, + 10,10,17,253,255,24,60,90,24,24,24,24,255,0,255,10, + 12,24,17,252,254,12,0,30,0,127,128,127,128,127,128,30, + 0,30,0,255,192,255,192,255,192,255,192,255,192,16,8,16, + 17,242,251,1,0,7,192,136,96,255,255,0,24,0,32,0, + 64,255,192,16,9,18,17,242,251,7,0,15,192,159,224,255, + 255,255,255,255,255,255,248,255,224,255,192,13,14,28,17,250, + 248,226,56,34,32,34,32,34,32,255,248,162,40,162,40,162, + 40,162,40,255,248,34,32,34,32,34,32,226,56,15,16,32, + 17,249,247,251,190,251,190,251,190,59,184,255,254,255,254,255, + 254,251,190,251,190,255,254,255,254,255,254,59,184,251,190,251, + 190,251,190,14,14,28,17,0,255,192,0,192,0,196,16,196, + 32,196,64,196,128,197,0,198,0,199,240,192,0,192,0,192, + 0,255,252,255,252,16,16,32,17,255,254,240,0,240,0,247, + 12,247,28,247,56,247,112,247,224,247,192,247,252,247,252,247, + 252,240,0,255,255,255,255,255,255,255,255,14,14,28,17,243, + 255,0,12,0,12,32,140,16,140,8,140,4,140,2,140,1, + 140,63,140,0,12,0,12,0,12,255,252,255,252,16,16,32, + 17,242,254,0,15,0,15,48,239,56,239,28,239,14,239,7, + 239,3,239,63,239,63,239,63,239,0,15,255,255,255,255,255, + 255,255,255,13,14,28,17,250,255,2,0,2,0,2,0,2, + 0,2,0,2,0,34,32,18,64,10,128,7,0,2,0,0, + 0,255,248,255,248,15,16,32,17,249,254,3,128,3,128,3, + 128,3,128,3,128,3,128,51,152,59,184,31,240,15,224,7, + 192,3,128,255,254,255,254,255,254,255,254,14,10,20,17,249, + 255,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,255,252,255,252,16,12,24,17,248,254,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,255,255,255,255,255, + 255,255,255,15,16,32,17,248,248,255,254,128,0,191,254,160, + 2,175,250,168,10,171,234,170,42,170,170,171,170,168,42,175, + 234,160,10,191,250,128,2,255,254,16,16,32,17,248,248,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,10, + 14,28,17,252,242,12,0,12,0,30,0,30,0,63,0,63, + 0,127,128,127,128,204,192,140,64,12,0,12,0,12,0,12, + 0,12,16,32,17,251,241,15,0,15,0,31,128,31,128,63, + 192,63,192,127,224,127,224,255,240,255,240,255,240,239,112,15, + 0,15,0,15,0,15,0,14,14,28,17,249,249,7,128,31, + 224,63,240,120,120,112,56,224,28,224,28,224,28,224,28,112, + 56,120,120,63,240,31,224,7,128,16,16,32,17,248,248,7, + 224,31,248,63,252,127,254,127,254,252,63,248,31,248,31,248, + 31,248,31,252,63,127,254,127,254,63,252,31,248,7,224,14, + 16,32,17,250,243,63,240,103,152,200,204,147,36,158,36,136, + 68,199,140,127,248,83,40,83,40,83,40,87,168,211,44,240, + 60,255,252,255,252,15,16,32,17,250,243,127,248,239,156,219, + 238,183,182,191,246,159,102,207,206,255,252,215,172,215,172,215, + 172,223,236,215,174,243,62,255,254,255,254,15,16,32,17,249, + 249,31,240,32,8,96,6,80,26,79,226,192,2,192,2,64, + 2,64,2,89,26,106,170,235,170,218,154,64,2,64,2,63, + 252,16,16,32,17,249,249,31,240,63,248,127,255,127,255,255, + 255,255,255,255,255,255,255,127,255,127,255,255,255,255,255,255, + 255,255,255,127,255,63,252,16,15,30,17,249,248,2,128,2, + 128,2,128,2,128,2,128,2,128,254,255,0,0,254,255,2, + 128,2,128,2,128,2,128,2,128,2,128,16,16,32,17,249, + 247,7,192,7,192,7,192,7,192,7,192,255,255,255,255,255, + 255,255,255,255,255,7,192,7,192,7,192,7,192,7,192,7, + 192,16,15,30,17,249,248,66,132,162,138,82,148,42,168,22, + 208,10,160,253,127,2,128,253,127,10,160,22,208,42,168,82, + 148,162,138,66,132,16,15,30,17,249,248,102,204,182,219,222, + 246,110,236,54,216,250,191,252,127,1,0,252,127,250,191,54, + 216,110,236,222,246,182,219,102,204,16,15,30,17,249,248,1, + 0,1,0,1,0,1,0,1,0,1,0,1,0,254,255,1, + 0,1,0,1,0,1,0,1,0,1,0,1,0,16,16,32, + 17,249,247,3,128,3,128,3,128,3,128,3,128,3,128,255, + 255,255,255,255,255,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,15,15,30,17,249,248,2,128,6,192,10,160,18, + 144,34,136,66,132,254,254,0,0,254,254,66,132,34,136,18, + 144,10,160,6,192,2,128,16,16,32,17,249,247,7,192,15, + 224,31,240,59,184,115,156,227,142,255,255,254,255,255,255,227, + 142,115,156,59,184,31,240,15,224,7,192,3,128,10,10,20, + 17,251,251,30,0,127,128,127,128,255,192,255,192,255,192,255, + 192,127,128,127,128,30,0,12,12,24,17,250,250,31,128,127, + 224,127,224,255,240,255,240,255,240,255,240,255,240,255,240,127, + 224,127,224,31,128,12,12,24,17,250,249,255,240,128,16,128, + 16,128,16,128,16,134,16,134,16,128,16,128,16,128,16,128, + 16,255,240,14,14,28,17,249,248,255,252,255,252,255,252,224, + 28,224,28,231,156,231,156,231,156,231,156,224,28,224,28,255, + 252,255,252,255,252,10,14,28,17,251,249,12,0,30,0,63, + 0,109,128,204,192,12,0,12,0,12,0,12,0,204,192,109, + 128,63,0,30,0,12,0,12,16,32,17,250,248,15,0,31, + 128,63,192,127,224,255,240,255,240,255,240,15,0,15,0,255, + 240,255,240,255,240,127,224,63,192,31,128,15,0,15,15,30, + 17,242,241,0,2,0,12,0,60,0,248,3,248,15,240,63, + 240,1,224,2,224,4,192,8,192,16,128,32,128,64,0,128, + 0,15,16,32,17,242,240,0,6,0,30,0,126,1,252,7, + 248,31,248,127,240,127,240,7,224,15,224,29,192,57,192,113, + 128,225,128,192,0,128,0,15,15,30,17,242,241,0,2,0, + 12,0,60,0,248,3,248,0,112,0,176,1,32,2,32,4, + 0,8,0,16,0,32,0,64,0,128,0,15,15,30,17,242, + 241,0,6,0,30,0,124,1,252,7,248,7,248,1,240,3, + 240,7,96,14,64,28,0,56,0,112,0,224,0,192,0,12, + 12,24,17,250,249,255,240,137,16,153,144,176,208,224,112,134, + 16,134,16,224,112,176,208,153,144,137,16,255,240,14,14,28, + 17,249,248,255,252,255,252,207,204,223,236,252,252,251,124,247, + 188,247,188,251,124,252,252,223,236,207,204,255,252,255,252,14, + 14,28,17,250,248,143,192,223,224,248,48,144,16,152,0,252, + 0,0,0,0,0,0,252,0,100,32,36,48,124,31,236,15, + 196,16,16,32,17,249,247,199,224,239,240,255,248,255,252,252, + 28,255,12,255,0,255,0,0,255,0,255,48,127,56,63,63, + 255,31,255,15,247,7,227,14,14,28,17,249,249,3,0,7, + 128,15,192,3,0,35,16,99,24,255,252,255,252,99,24,35, + 16,3,0,15,192,7,128,3,0,16,16,32,17,248,248,3, + 192,3,224,7,224,15,240,23,232,59,220,255,255,255,255,255, + 255,255,255,59,220,23,232,15,240,7,224,3,192,3,192,16, + 15,30,17,242,243,0,120,0,112,128,51,159,176,255,240,254, + 48,252,48,96,56,0,240,31,224,8,0,8,0,8,0,8, + 0,30,0,16,16,32,17,242,243,0,252,0,252,192,255,255, + 255,255,255,255,252,255,252,255,252,255,252,255,252,127,248,31, + 240,28,0,28,0,63,0,63,0,16,16,32,17,254,240,63, + 0,16,128,200,64,234,160,200,32,203,160,248,60,56,63,8, + 39,8,39,9,47,9,39,9,32,17,16,33,8,62,248,16, + 16,32,17,254,240,63,0,223,128,239,192,255,224,239,224,239, + 252,255,254,255,255,63,239,15,239,15,255,15,239,15,231,31, + 240,63,248,62,248,13,16,32,17,244,240,0,24,0,120,1, + 224,3,192,7,128,15,192,31,224,95,192,255,224,191,224,15, + 192,15,128,148,0,196,0,104,0,48,0,13,16,32,17,244, + 240,0,56,0,248,3,240,7,224,15,192,31,224,127,240,255, + 240,255,240,255,240,255,224,255,192,255,128,254,0,252,0,120, + 0,15,14,28,17,0,242,127,128,128,64,126,32,16,16,14, + 16,16,16,14,40,16,68,12,130,3,4,2,72,1,16,0, + 160,0,64,16,16,32,17,0,241,127,128,255,192,255,224,255, + 240,127,248,31,248,63,248,31,252,63,254,31,255,15,254,7, + 252,3,248,1,240,0,224,0,64,15,14,28,17,250,250,62, + 248,99,140,193,6,128,2,128,2,128,2,128,2,192,6,96, + 12,48,24,24,48,12,96,6,192,3,128,15,14,28,17,250, + 250,62,248,127,252,227,142,193,6,192,6,192,6,194,134,225, + 14,112,28,56,56,28,112,15,224,7,192,3,128,16,16,32, + 17,248,248,255,255,213,85,170,171,213,85,160,11,208,5,160, + 11,208,5,160,11,208,5,160,11,208,5,170,171,213,85,170, + 171,255,255,16,16,32,17,248,248,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,14,14,28,17,249,248,127, + 248,63,240,159,228,207,204,231,156,243,60,255,252,255,252,243, + 60,231,156,207,204,159,228,63,240,127,248,16,16,32,17,248, + 247,63,252,127,254,127,254,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,127,254,127,254,63, + 252,8,14,14,17,0,242,128,192,224,240,248,252,254,255,248, + 216,140,12,6,6,10,16,32,17,255,241,192,0,224,0,240, + 0,248,0,252,0,254,0,255,0,255,128,255,192,255,192,254, + 0,239,0,207,0,7,128,7,128,3,0,14,13,26,17,0, + 249,192,0,192,0,193,0,194,0,196,0,200,0,223,252,200, + 0,196,0,194,0,193,0,192,0,192,0,16,15,30,17,255, + 248,240,0,240,0,240,192,241,192,243,128,247,0,255,255,255, + 255,255,255,247,0,243,128,241,192,240,192,240,0,240,0,10, + 14,28,17,0,249,192,0,192,0,192,0,192,0,192,0,192, + 0,255,192,255,192,192,0,192,0,192,0,192,0,192,0,192, + 0,12,16,32,17,255,248,240,0,240,0,240,0,240,0,240, + 0,240,0,255,240,255,240,255,240,255,240,240,0,240,0,240, + 0,240,0,240,0,240,0,16,16,32,17,248,248,128,3,127, + 253,127,253,68,69,69,85,69,85,69,85,69,85,68,69,127, + 253,127,253,127,253,127,253,127,253,127,253,128,3,15,16,32, + 17,248,248,127,252,255,254,255,254,255,254,255,254,255,254,255, + 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, + 254,127,252,10,10,20,17,0,255,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,255,192,255,192,12,12,24, + 17,255,254,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,255,240,255,240,255,240,255,240,10,10,20,17,247, + 255,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,255,192,255,192,12,12,24,17,246,254,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,255,240,255,240,255, + 240,255,240,16,16,32,17,242,245,3,128,30,240,2,128,129, + 0,67,135,36,75,29,112,5,64,4,64,2,128,4,64,9, + 32,18,144,20,80,120,60,248,63,16,16,32,17,242,245,31, + 224,63,240,63,248,195,130,231,199,127,255,63,251,31,240,7, + 224,7,192,15,224,31,240,63,248,126,252,252,127,252,127,16, + 16,32,17,248,248,128,3,127,253,127,253,68,69,84,85,84, + 85,84,85,84,85,68,69,127,253,127,253,127,253,127,253,127, + 253,127,253,128,3,15,16,32,17,248,248,127,252,255,254,255, + 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, + 254,255,254,255,254,255,254,255,254,127,252,15,14,28,17,252, + 243,7,0,12,0,6,0,3,0,127,248,128,4,179,54,179, + 54,179,54,128,6,128,6,96,28,24,96,7,128,16,16,32, + 17,252,241,15,128,30,0,15,0,7,0,127,248,255,252,255, + 255,255,255,255,255,255,255,255,255,255,255,63,247,31,224,15, + 192,7,128,11,16,32,17,246,255,112,0,136,0,140,0,74, + 0,122,0,33,0,17,0,16,128,8,128,12,64,4,64,2, + 32,1,224,0,224,0,96,0,32,13,16,32,17,245,255,252, + 0,254,0,255,0,127,0,63,128,63,128,31,192,15,192,15, + 224,7,224,7,240,3,248,1,248,0,248,0,120,0,56,15, + 16,32,17,249,252,7,128,15,192,31,224,51,48,51,48,31, + 224,15,192,7,128,135,132,135,134,67,8,56,112,7,128,31, + 226,240,62,128,4,16,16,32,17,249,252,15,192,31,224,63, + 240,127,248,127,248,63,240,31,224,143,193,143,199,207,207,247, + 156,120,120,7,128,127,227,255,255,240,62,10,10,20,17,252, + 251,12,0,12,0,12,0,12,0,255,192,255,192,12,0,12, + 0,12,0,12,0,12,12,24,17,251,250,15,0,15,0,15, + 0,15,0,255,240,255,240,255,240,255,240,15,0,15,0,15, + 0,15,0,9,15,30,17,252,248,62,0,127,0,227,128,193, + 128,225,128,99,128,7,0,30,0,28,0,20,0,20,0,119, + 0,54,0,28,0,8,0,11,16,32,17,251,248,31,0,63, + 128,127,192,255,224,241,224,249,224,123,224,63,192,31,128,31, + 0,31,0,63,128,127,192,63,128,31,0,14,0,8,14,14, + 17,249,242,1,3,7,15,31,63,127,255,31,27,49,48,96, + 96,10,16,32,17,248,241,0,192,1,192,3,192,7,192,15, + 192,31,192,63,192,127,192,255,192,255,192,31,192,61,192,60, + 192,120,0,120,0,48,0,14,13,26,17,243,249,0,12,0, + 12,2,12,1,12,0,140,0,76,255,236,0,76,0,140,1, + 12,2,12,0,12,0,12,16,15,30,17,242,248,0,15,0, + 15,3,15,3,143,1,207,0,239,255,255,255,255,255,255,0, + 239,1,207,3,143,3,15,0,15,0,15,10,14,28,17,247, + 249,0,192,0,192,0,192,0,192,0,192,0,192,255,192,255, + 192,0,192,0,192,0,192,0,192,0,192,0,192,12,16,32, + 17,246,248,0,240,0,240,0,240,0,240,0,240,0,240,255, + 240,255,240,255,240,255,240,0,240,0,240,0,240,0,240,0, + 240,0,240,16,16,32,17,248,248,128,3,127,253,127,253,68, + 69,85,69,85,69,85,69,85,69,68,69,127,253,127,253,127, + 253,127,253,127,253,127,253,128,3,15,16,32,17,248,248,127, + 252,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, + 254,255,254,255,254,255,254,255,254,255,254,255,254,127,252,14, + 14,28,17,250,248,255,252,128,68,128,68,128,68,255,196,136, + 68,136,68,136,68,136,68,143,252,136,4,136,4,136,4,255, + 252,16,16,32,17,249,247,255,255,255,255,255,255,224,119,255, + 247,255,247,255,247,238,119,238,119,239,255,239,255,239,255,238, + 7,255,255,255,255,255,255,12,13,26,17,250,242,1,0,1, + 0,5,128,5,128,13,128,13,192,29,192,29,192,61,224,61, + 224,125,224,125,240,248,224,16,16,32,17,248,240,0,192,0, + 224,1,224,3,240,3,240,7,240,7,248,15,248,15,248,31, + 252,31,252,63,252,63,255,127,255,255,248,127,224,7,15,15, + 17,253,0,40,40,40,40,40,40,40,40,40,40,40,254,124, + 56,16,9,16,32,17,252,255,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,255,128,255,128, + 127,0,62,0,28,0,8,0,15,7,14,17,249,252,16,16, + 48,24,127,252,240,30,127,252,48,24,16,16,15,9,18,17, + 249,251,24,48,56,56,127,252,255,254,255,254,255,254,127,252, + 56,56,24,48,15,7,14,17,1,252,16,0,48,0,127,254, + 240,0,127,254,48,0,16,0,16,9,18,17,0,251,12,0, + 28,0,63,255,127,255,255,255,127,255,63,255,28,0,12,0, + 15,7,14,17,241,252,0,16,0,24,255,252,0,30,255,252, + 0,24,0,16,16,9,18,17,241,251,0,48,0,56,255,252, + 255,254,255,255,255,254,255,252,0,56,0,48,7,15,15,17, + 253,240,16,56,124,254,40,40,40,40,40,40,40,40,40,40, + 40,9,16,32,17,252,240,8,0,28,0,62,0,127,0,255, + 128,255,128,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,62,0,7,15,15,17,253,248,16,56,124, + 254,40,40,40,40,40,40,40,254,124,56,16,9,15,30,17, + 252,248,28,0,62,0,127,0,255,128,255,128,62,0,62,0, + 62,0,62,0,62,0,255,128,255,128,127,0,62,0,28,0, + 15,16,32,17,246,240,0,32,0,112,0,248,1,222,5,222, + 9,222,17,222,17,222,17,222,17,222,49,222,113,222,253,222, + 24,136,0,120,0,48,16,16,32,17,245,240,0,56,0,124, + 0,254,0,255,6,255,14,255,30,255,30,255,30,255,30,255, + 62,255,126,255,254,255,126,254,12,126,0,60,14,14,28,17, + 249,249,255,0,128,0,128,0,128,0,143,192,136,64,136,68, + 136,68,8,68,15,196,0,36,0,20,0,12,3,252,16,16, + 32,17,248,248,255,192,255,192,255,192,224,0,239,240,239,240, + 239,247,238,119,238,119,239,247,15,247,15,255,0,31,3,255, + 3,255,3,255,16,16,32,17,250,247,32,16,16,32,16,32, + 8,64,8,64,135,135,103,152,31,224,31,224,103,152,135,135, + 8,64,8,64,16,32,16,32,32,16,16,16,32,17,250,247, + 96,24,48,48,16,32,24,96,143,193,207,207,111,220,63,240, + 63,224,111,248,207,207,143,193,24,64,24,96,48,48,96,24, + 11,16,32,17,247,242,0,96,1,0,52,96,121,0,104,96, + 252,0,132,0,228,0,164,0,228,0,164,0,228,0,228,0, + 132,0,132,0,252,0,12,16,32,17,246,242,0,48,24,176, + 62,176,62,176,126,176,255,0,255,0,255,0,255,0,255,0, + 255,0,255,0,255,0,255,0,255,0,255,0,15,16,32,17, + 249,247,1,0,2,128,2,128,2,128,4,64,4,64,4,64, + 57,56,192,6,56,56,9,32,18,144,36,72,40,40,48,24, + 32,8,16,16,32,17,249,247,1,0,3,128,3,128,6,192, + 6,192,12,96,28,120,249,62,192,7,248,62,57,56,51,152, + 102,204,108,108,120,60,112,28,15,13,26,17,249,249,3,128, + 15,224,28,112,48,24,96,12,193,6,194,134,193,6,96,12, + 48,24,28,112,15,224,3,128,16,14,28,17,249,249,7,192, + 15,224,31,240,60,120,112,28,225,14,195,135,198,199,195,135, + 225,14,112,28,60,120,31,240,7,192,13,13,26,16,250,249, + 2,0,2,0,2,0,2,0,2,0,2,0,255,248,2,0, + 2,0,2,0,2,0,2,0,2,0,15,15,30,16,249,248, + 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, + 255,254,3,128,3,128,3,128,3,128,3,128,3,128,14,14, + 28,17,0,242,192,0,240,0,124,0,127,0,63,192,63,240, + 31,0,31,0,12,128,12,64,4,32,4,16,0,8,0,4, + 16,16,32,17,255,241,224,0,248,0,254,0,127,128,127,224, + 63,252,63,252,31,252,31,192,15,224,15,112,7,56,7,28, + 7,14,0,7,0,3,14,14,28,17,0,242,255,252,255,252, + 192,0,192,0,192,0,199,240,198,0,197,0,196,128,196,64, + 196,32,196,16,192,0,192,0,16,16,32,17,255,241,255,255, + 255,255,255,255,255,255,240,0,247,252,247,252,247,252,247,192, + 247,224,247,112,247,56,247,28,247,12,240,0,240,0,14,14, + 28,17,243,242,255,252,255,252,0,12,0,12,0,12,63,140, + 1,140,2,140,4,140,8,140,16,140,32,140,0,12,0,12, + 16,16,32,17,242,241,255,255,255,255,255,255,255,255,0,15, + 63,239,63,239,63,239,3,239,7,239,14,239,28,239,56,239, + 48,239,0,15,0,15,13,14,28,17,250,242,255,248,255,248, + 0,0,2,0,7,0,10,128,18,64,34,32,2,0,2,0, + 2,0,2,0,2,0,2,0,15,16,32,17,249,241,255,254, + 255,254,255,254,255,254,3,128,7,192,15,224,31,240,59,184, + 51,152,3,128,3,128,3,128,3,128,3,128,3,128,14,10, + 20,17,249,246,255,252,255,252,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,3,0,16,12,24,17,248,245,255,255, + 255,255,255,255,255,255,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,7,16,16,17,253,240,16,0,56,124, + 254,238,254,124,56,16,186,214,146,130,130,130,9,16,32,17, + 252,240,28,0,28,0,62,0,127,0,255,128,255,128,255,128, + 127,0,62,0,93,0,255,128,255,128,255,128,235,128,235,128, + 227,128,10,10,20,17,0,246,255,192,255,192,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,12,12,24,17, + 255,245,255,240,255,240,255,240,255,240,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,14,14,28,17,249,244, + 17,32,4,80,147,76,79,144,50,96,194,24,2,0,2,0, + 2,0,2,0,2,0,2,128,2,128,1,0,16,16,32,17, + 248,242,23,110,223,251,191,252,127,255,255,252,255,255,243,158, + 3,128,3,128,3,128,3,128,3,224,3,224,3,224,3,224, + 1,192,10,10,20,17,247,246,255,192,255,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,12,12,24,17, + 246,245,255,240,255,240,255,240,255,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,16,16,32,17,241,249, + 31,224,31,224,31,224,63,240,97,24,193,12,129,7,131,135, + 131,135,132,7,200,12,96,24,63,240,31,224,31,224,31,224, + 16,16,32,17,241,249,63,240,63,240,63,240,127,248,255,252, + 255,255,255,255,255,255,255,255,255,255,255,255,255,252,127,248, + 63,240,63,240,63,240,7,14,14,10,253,249,238,56,16,16, + 16,16,16,16,16,16,16,16,56,238,9,16,32,10,252,248, + 247,128,255,128,255,128,62,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,62,0,255,128,255,128,247,128, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255}; +/* + Fontname: cursor + Copyright: These + Capital A Height: 0, '1' Height: 0 + Calculated Max Values w=16 h=16 x= 0 y= 0 dx=17 dy= 0 ascent= 7 len=32 + Font Bounding box w=31 h=31 x=-15 y=-16 + Calculated Min Values x=-14 y=-16 dx= 0 dy= 0 + Pure Font ascent = 0 descent= 0 + X Font ascent = 0 descent= 0 + Max Font ascent = 7 descent=-16 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_cursorr[492] U8G_SECTION(".progmem.u8g_font_cursorr") = { + 0,31,31,241,240,0,1,6,0,0,32,80,0,7,240,0, + 0,255,255,14,14,28,17,243,242,0,12,0,60,0,248,3, + 248,15,240,63,240,3,224,7,224,14,192,28,192,56,128,112, + 128,224,0,64,0,16,16,32,17,242,241,0,7,0,31,0, + 127,1,254,7,254,31,252,63,252,63,248,7,248,15,240,31, + 240,62,224,124,224,248,64,112,0,32,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,10,14,28, + 17,252,242,12,0,12,0,30,0,30,0,63,0,63,0,127, + 128,127,128,204,192,140,64,12,0,12,0,12,0,12,0,12, + 16,32,17,251,241,15,0,15,0,31,128,31,128,63,192,63, + 192,127,224,127,224,255,240,255,240,255,240,239,112,15,0,15, + 0,15,0,15,0,255,255,255,255,255,255,16,15,30,17,249, + 248,2,128,2,128,2,128,2,128,2,128,2,128,254,255,0, + 0,254,255,2,128,2,128,2,128,2,128,2,128,2,128,16, + 16,32,17,249,247,7,192,7,192,7,192,7,192,7,192,255, + 255,255,255,255,255,255,255,255,255,7,192,7,192,7,192,7, + 192,7,192,7,192,255,255,16,15,30,17,249,248,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,254,255,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,16,16,32,17,249, + 247,3,128,3,128,3,128,3,128,3,128,3,128,255,255,255, + 255,255,255,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,255,255,255,255,255,255,255,255,15,15,30,17,242,241,0, + 2,0,12,0,60,0,248,3,248,15,240,63,240,1,224,2, + 224,4,192,8,192,16,128,32,128,64,0,128,0,15,16,32, + 17,242,240,0,6,0,30,0,126,1,252,7,248,31,248,127, + 240,127,240,7,224,15,224,29,192,57,192,113,128,225,128,192, + 0,128,0,15,15,30,17,242,241,0,2,0,12,0,60,0, + 248,3,248,0,112,0,176,1,32,2,32,4,0,8,0,16, + 0,32,0,64,0,128,0,15,15,30,17,242,241,0,6,0, + 30,0,124,1,252,7,248,7,248,1,240,3,240,7,96,14, + 64,28,0,56,0,112,0,224,0,192,0,255}; +/* + Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 7 len= 9 + Font Bounding box w= 7 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 7 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fixed_v0[1702] U8G_SECTION(".progmem.u8g_font_fixed_v0") = { + 1,7,9,0,254,7,1,46,2,94,32,255,254,7,254,7, + 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, + 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, + 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, + 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, + 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, + 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, + 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, + 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, + 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, + 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, + 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, + 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, + 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, + 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, + 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, + 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, + 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, + 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, + 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, + 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, + 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, + 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, + 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, + 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, + 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, + 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, + 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, + 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, + 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, + 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, + 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, + 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, + 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, + 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, + 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, + 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, + 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, + 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, + 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, + 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, + 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, + 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, + 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, + 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, + 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, + 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, + 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, + 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, + 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, + 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, + 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, + 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, + 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, + 103,192,32,16,24,16,32,192,4,82,98,72,176,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2, + 87,103,48,0,248,32,32,32,248,2,87,103,32,112,168,160, + 168,112,32,2,87,103,64,64,64,240,64,72,120,3,85,101, + 136,112,80,112,136,2,87,103,136,136,80,248,32,248,32,34, + 23,103,128,128,128,0,128,128,128,2,87,103,120,128,120,136, + 240,8,240,5,81,97,248,2,87,103,112,136,168,200,168,136, + 112,2,87,103,112,8,120,136,120,0,248,4,83,99,72,144, + 72,4,82,98,248,8,255,2,87,103,112,136,248,200,200,136, + 112,8,81,97,248,20,51,99,64,160,64,2,87,103,32,32, + 248,32,32,0,248,255,255,255,255,255,255,255,255,255,4,83, + 99,144,72,144,255,255,255,255,2,87,103,64,32,112,136,248, + 136,136,2,87,103,16,32,112,136,248,136,136,2,87,103,32, + 80,112,136,248,136,136,2,87,103,72,176,112,136,248,136,136, + 2,87,103,80,0,112,136,248,136,136,2,87,103,112,0,112, + 136,248,136,136,2,87,103,120,160,160,240,160,160,184,0,89, + 105,112,136,128,128,128,136,112,32,96,2,87,103,64,32,248, + 128,224,128,248,2,87,103,16,32,248,128,224,128,248,2,87, + 103,32,80,248,128,224,128,248,2,87,103,80,0,248,128,224, + 128,248,2,87,103,64,32,248,32,32,32,248,2,87,103,16, + 32,248,32,32,32,248,2,87,103,32,80,248,32,32,32,248, + 2,87,103,80,0,248,32,32,32,248,2,87,103,240,136,136, + 232,136,136,240,2,87,103,72,176,136,200,168,152,136,2,87, + 103,64,32,112,136,136,136,112,2,87,103,16,32,112,136,136, + 136,112,2,87,103,32,80,112,136,136,136,112,2,87,103,72, + 176,112,136,136,136,112,2,87,103,80,0,112,136,136,136,112, + 20,51,99,160,64,160,2,87,103,112,136,152,168,200,136,112, + 2,87,103,64,32,136,136,136,136,112,2,87,103,16,32,136, + 136,136,136,112,2,87,103,32,80,136,136,136,136,112,2,87, + 103,80,0,136,136,136,136,112,2,87,103,16,32,136,136,80, + 32,32,2,87,103,128,128,240,136,240,128,128,0,89,105,240, + 136,136,176,136,136,176,128,128,2,87,103,64,32,112,8,120, + 136,120,2,87,103,16,32,112,8,120,136,120,2,87,103,32, + 80,112,8,120,136,120,2,87,103,72,176,112,8,120,136,120, + 2,87,103,80,0,112,8,120,136,120,2,87,103,48,0,112, + 8,120,136,120,2,85,101,240,40,120,160,120,0,87,103,112, + 136,128,136,112,32,96,2,87,103,64,32,112,136,248,128,120, + 2,87,103,16,32,112,136,248,128,120,2,87,103,32,80,112, + 136,248,128,120,2,87,103,80,0,112,136,248,128,120,2,87, + 103,64,32,248,32,32,32,248,2,87,103,16,32,248,32,32, + 32,248,2,87,103,32,80,248,32,32,32,248,2,87,103,80, + 0,248,32,32,32,248,2,87,103,8,56,8,120,136,136,120, + 2,87,103,72,176,176,200,136,136,136,2,87,103,64,32,112, + 136,136,136,112,2,87,103,16,32,112,136,136,136,112,2,87, + 103,32,80,112,136,136,136,112,2,87,103,72,176,112,136,136, + 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, + 0,248,0,32,2,85,101,112,152,168,200,112,2,87,103,64, + 32,136,136,136,136,112,2,87,103,16,32,136,136,136,136,112, + 2,87,103,32,80,136,136,136,136,112,2,87,103,80,0,136, + 136,136,136,112,0,89,105,16,32,136,136,136,136,120,8,112, + 2,87,103,128,128,240,136,240,128,128,0,89,105,80,0,136, + 136,136,136,120,8,112}; +/* + Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 0, '1' Height: 7 + Calculated Max Values w= 5 h= 7 x= 1 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 + Font Bounding box w= 7 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 7 descent= 0 + X Font ascent = 7 descent= 0 + Max Font ascent = 7 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[159] U8G_SECTION(".progmem.u8g_font_fixed_v0n") = { + 1,7,9,0,254,7,0,0,0,0,42,57,0,7,0,7, + 0,2,87,103,32,168,112,32,112,168,32,3,85,101,32,32, + 248,32,32,18,34,98,64,128,5,81,97,248,18,18,98,128, + 128,2,87,103,8,16,16,32,64,64,128,2,87,103,112,136, + 136,136,136,136,112,2,87,103,32,96,32,32,32,32,248,2, + 87,103,112,136,8,16,32,64,248,2,87,103,240,8,8,48, + 8,8,240,2,87,103,16,144,144,248,16,16,16,2,87,103, + 248,128,128,240,8,8,240,2,87,103,112,128,128,240,136,136, + 112,2,87,103,248,8,8,8,8,8,8,2,87,103,112,136, + 136,112,136,136,112,2,87,103,112,136,136,248,8,8,112}; +/* + Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 7 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 7 len= 9 + Font Bounding box w= 7 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 7 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[878] U8G_SECTION(".progmem.u8g_font_fixed_v0r") = { + 1,7,9,0,254,7,1,46,2,94,32,127,254,7,254,7, + 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, + 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, + 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, + 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, + 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, + 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, + 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, + 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, + 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, + 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, + 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, + 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, + 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, + 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, + 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, + 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, + 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, + 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, + 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, + 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, + 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, + 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, + 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, + 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, + 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, + 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, + 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, + 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, + 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, + 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, + 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, + 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, + 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, + 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, + 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, + 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, + 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, + 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, + 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, + 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, + 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, + 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, + 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, + 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, + 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, + 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, + 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, + 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, + 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, + 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, + 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, + 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, + 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, + 103,192,32,16,24,16,32,192,4,82,98,72,176,255}; +/* + Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO8859-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w= 7 h=10 x= 4 y=10 dx= 8 dy= 0 ascent=12 len=10 + Font Bounding box w= 7 h=12 x= 0 y= 0 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent =10 descent= 1 + X Font ascent =12 descent= 0 + Max Font ascent =12 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[1042] U8G_SECTION(".progmem.u8g_font_freedoomr10r") = { + 0,7,12,0,0,10,1,113,3,88,32,127,1,12,0,12, + 0,0,0,0,7,0,1,0,0,0,7,0,1,0,0,0, + 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, + 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, + 1,3,10,10,7,0,2,96,128,128,128,128,128,128,128,128, + 96,3,10,10,7,3,2,192,32,32,32,32,32,32,32,32, + 192,5,5,5,8,1,7,168,112,32,112,168,7,7,7,8, + 0,4,16,16,16,254,16,16,16,2,2,2,7,2,10,64, + 128,7,1,1,8,0,7,254,2,2,2,7,2,2,192,192, + 7,10,10,8,0,2,2,4,4,8,16,16,32,64,64,128, + 6,10,10,7,0,2,252,132,132,132,132,132,132,132,132,252, + 2,10,10,7,4,2,192,64,64,64,64,64,64,64,64,64, + 6,10,10,7,0,2,252,4,4,4,4,252,128,128,128,252, + 6,10,10,7,0,2,252,4,4,4,60,4,4,4,4,252, + 6,10,10,7,0,2,132,132,132,132,132,252,4,4,4,4, + 6,10,10,7,0,2,252,128,128,128,252,4,4,4,4,252, + 6,10,10,7,0,2,252,128,128,128,252,132,132,132,132,252, + 6,10,10,7,0,2,252,4,4,4,4,4,4,4,4,4, + 6,10,10,7,0,2,252,132,132,132,252,132,132,132,132,252, + 6,10,10,7,0,2,252,132,132,132,252,4,4,4,4,252, + 2,7,7,7,2,2,192,192,0,0,0,192,192,0,0,0, + 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, + 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, + 1,7,10,10,8,0,2,254,130,130,130,130,254,130,130,130, + 130,7,10,10,8,0,2,254,130,130,130,252,130,130,130,130, + 254,7,10,10,8,0,2,254,128,128,128,128,128,128,128,128, + 254,7,10,10,8,0,2,252,130,130,130,130,130,130,130,130, + 252,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, + 254,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, + 128,7,10,10,8,0,2,254,128,128,128,158,130,130,130,130, + 254,7,10,10,8,0,2,130,130,130,130,254,130,130,130,130, + 130,1,10,10,8,3,2,128,128,128,128,128,128,128,128,128, + 128,7,10,10,8,0,2,30,2,2,2,2,2,130,130,130, + 124,7,10,10,8,0,2,130,132,136,144,224,160,144,136,132, + 130,7,10,10,8,0,2,128,128,128,128,128,128,128,128,128, + 254,7,10,10,8,0,2,130,198,170,146,130,130,130,130,130, + 130,7,10,10,8,0,2,194,194,162,162,146,146,138,138,134, + 134,7,10,10,8,0,2,124,130,130,130,130,130,130,130,130, + 124,7,10,10,8,0,2,254,130,130,130,254,128,128,128,128, + 128,7,10,10,8,0,2,120,132,132,132,132,132,132,132,132, + 126,7,10,10,8,0,2,254,130,130,130,254,160,144,136,132, + 130,7,10,10,8,0,2,254,128,128,128,128,254,2,2,2, + 254,7,9,9,8,0,3,254,16,16,16,16,16,16,16,16, + 7,10,10,8,0,2,130,130,130,130,130,130,130,130,130,254, + 7,10,10,8,0,2,130,130,130,68,68,108,40,40,16,16, + 7,10,10,8,0,2,130,130,130,130,130,146,146,170,170,198, + 7,10,10,8,0,2,130,68,68,40,16,16,40,68,68,130, + 7,10,10,8,0,2,130,130,130,130,254,16,16,16,16,16, + 7,10,10,8,0,2,254,2,6,12,24,48,96,192,128,254, + 4,10,10,7,0,2,240,128,128,128,128,128,128,128,128,240, + 6,10,10,7,0,2,128,64,64,32,32,16,16,8,8,4, + 4,10,10,7,2,2,240,16,16,16,16,16,16,16,16,240, + 5,3,3,7,1,9,32,80,136,6,1,1,7,0,2,252, + 2,2,2,7,2,10,128,64,0,0,0,7,0,1,0,0, + 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, + 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, + 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, + 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, + 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, + 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, + 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, + 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, + 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, + 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, + 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, + 0,1}; +/* + Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=17 h=24 x= 7 y=13 dx=19 dy= 0 ascent=26 len=72 + Font Bounding box w=18 h=26 x= 0 y= 0 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =26 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[943] U8G_SECTION(".progmem.u8g_font_freedoomr25n") = { + 0,18,26,0,0,24,3,112,3,144,32,127,0,26,0,24, + 0,0,0,0,11,0,0,255,255,255,255,255,255,255,255,255, + 255,17,16,48,19,1,6,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,255,255,128,255, + 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,7,8,8,11,3,2,62,62,62, + 62,62,240,240,240,9,2,4,11,1,13,255,128,255,128,5, + 5,5,11,5,2,248,248,248,248,248,255,17,24,72,19,1, + 2,255,255,128,255,255,128,192,3,128,192,3,128,192,3,128, + 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, + 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, + 128,192,3,128,192,3,128,192,3,128,192,3,128,192,3,128, + 255,255,128,255,255,128,255,255,128,6,24,24,19,7,2,252, + 252,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,17,24,72,19,1,2,255,255,128, + 255,255,128,0,3,128,0,3,128,0,3,128,0,3,128,0, + 3,128,0,3,128,0,3,128,0,3,128,0,3,128,255,255, + 128,255,255,128,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,255,255,128,255, + 255,128,255,255,128,17,24,72,19,1,2,255,255,128,255,255, + 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, + 0,3,128,0,3,128,0,3,128,0,3,128,31,255,128,31, + 255,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, + 128,0,3,128,0,3,128,0,3,128,255,255,128,255,255,128, + 255,255,128,17,24,72,19,1,2,192,3,128,192,3,128,192, + 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, + 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, + 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, + 3,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, + 128,17,24,72,19,1,2,255,255,128,255,255,128,192,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,255,255,128,255,255,128,0,3, + 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, + 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,17, + 24,72,19,1,2,255,255,128,255,255,128,192,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,255,255,128,255,255,128,192,3,128,192, + 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, + 128,192,3,128,255,255,128,255,255,128,255,255,128,16,24,48, + 19,2,2,255,255,255,255,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,17,24,72,19,1,2,255,255,128,255,255,128,192, + 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, + 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, + 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, + 3,128,192,3,128,192,3,128,255,255,128,255,255,128,255,255, + 128,17,24,72,19,1,2,255,255,128,255,255,128,192,3,128, + 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, + 3,128,192,3,128,192,3,128,255,255,128,255,255,128,0,3, + 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, + 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,5, + 16,16,11,5,2,248,248,248,248,248,0,0,0,0,0,0, + 248,248,248,248,248,7,16,16,11,3,2,62,62,62,62,62, + 0,0,0,62,62,62,62,62,240,240,240,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=16 h=17 x= 4 y=10 dx=17 dy= 0 ascent=17 len=34 + Font Bounding box w=24 h=21 x=-1 y=-4 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =17 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub11[3948] U8G_SECTION(".progmem.u8g_font_fub11") = { + 0,24,21,255,252,11,2,82,5,55,32,255,253,17,252,11, + 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, + 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, + 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, + 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, + 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, + 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, + 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, + 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, + 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, + 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, + 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, + 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, + 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, + 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, + 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, + 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, + 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, + 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, + 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, + 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, + 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, + 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, + 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, + 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, + 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, + 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, + 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, + 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, + 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, + 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, + 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, + 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, + 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, + 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, + 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, + 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, + 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, + 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, + 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, + 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, + 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, + 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, + 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, + 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, + 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, + 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, + 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, + 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, + 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, + 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, + 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, + 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, + 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, + 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, + 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, + 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, + 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, + 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, + 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, + 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, + 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, + 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, + 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, + 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, + 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, + 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, + 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, + 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, + 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, + 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, + 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, + 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, + 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, + 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, + 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, + 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, + 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, + 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, + 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, + 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, + 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, + 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, + 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, + 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, + 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, + 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, + 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, + 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, + 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, + 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, + 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, + 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, + 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, + 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, + 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, + 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, + 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, + 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, + 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, + 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, + 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, + 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, + 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, + 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, + 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, + 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, + 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, + 0,3,121,223,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,5,0,0,2,11,11,6,2, + 253,192,0,0,192,192,192,192,192,192,192,192,7,12,12,9, + 1,254,4,4,60,110,206,208,208,214,110,60,32,64,8,11, + 11,10,1,0,62,119,96,96,252,96,96,96,96,96,255,9, + 8,16,10,1,2,128,128,93,0,34,0,65,0,65,0,34, + 0,93,0,128,128,9,11,22,11,1,0,195,128,99,0,103, + 0,247,128,62,0,60,0,255,128,24,0,24,0,24,0,24, + 0,1,14,14,5,2,253,128,128,128,128,128,128,0,0,128, + 128,128,128,128,128,6,14,14,8,1,253,120,236,192,224,120, + 124,204,204,248,120,28,12,156,248,5,1,1,5,0,10,216, + 12,11,22,14,1,0,31,128,57,192,111,96,217,176,152,16, + 152,16,153,144,143,16,64,32,48,192,31,128,5,8,8,7, + 1,3,112,216,120,216,216,120,0,248,8,6,6,10,1,1, + 103,102,238,206,102,103,9,4,8,10,0,3,255,128,0,128, + 0,128,0,128,255,12,11,22,14,1,0,31,128,57,192,111, + 96,201,176,136,144,143,16,137,144,136,144,72,160,48,192,31, + 128,5,1,1,5,0,10,248,4,4,4,6,1,7,96,208, + 144,240,9,10,20,16,3,0,8,0,8,0,8,0,255,128, + 8,0,8,0,8,0,0,0,0,0,255,128,5,6,6,7, + 1,5,112,216,24,48,192,248,5,7,7,7,1,4,112,216, + 24,112,24,216,112,3,3,3,4,1,9,96,192,128,255,7, + 14,14,9,1,253,126,244,244,244,244,116,20,20,20,20,20, + 20,20,20,2,2,2,4,1,4,192,192,4,4,4,3,0, + 252,64,48,176,224,3,6,6,5,1,5,96,224,96,96,96, + 96,6,8,8,8,1,3,120,252,204,204,204,120,0,252,8, + 6,6,10,1,1,204,102,103,103,102,204,12,11,22,13,1, + 0,224,128,97,128,99,0,99,0,102,0,108,224,12,224,25, + 224,25,96,51,240,96,96,11,11,22,13,1,0,97,0,227, + 0,98,0,102,0,100,0,109,224,27,96,24,96,49,192,35, + 0,99,224,12,11,22,13,1,0,120,192,216,128,113,128,217, + 0,115,0,6,96,4,224,13,224,25,96,25,240,48,96,7, + 11,11,9,1,253,24,0,24,24,56,112,224,192,194,254,60, + 11,16,32,11,0,0,24,0,12,0,4,0,0,0,0,0, + 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, + 127,192,96,224,224,96,11,16,32,11,0,0,3,0,2,0, + 4,0,0,0,0,0,14,0,14,0,15,0,27,0,27,128, + 57,128,49,128,63,192,127,192,96,224,224,96,11,16,32,11, + 0,0,6,0,14,0,25,0,0,0,0,0,14,0,14,0, + 15,0,27,0,27,128,57,128,49,128,63,192,127,192,96,224, + 224,96,11,15,30,11,0,0,13,0,23,0,0,0,0,0, + 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, + 127,192,96,224,224,96,11,15,30,11,0,0,27,0,0,0, + 0,0,0,0,14,0,14,0,15,0,27,0,27,0,59,128, + 49,128,63,192,127,192,96,224,224,96,10,17,34,12,1,0, + 12,0,18,0,18,0,30,0,0,0,0,0,12,0,30,0, + 30,0,63,0,51,0,51,0,99,128,127,128,255,192,192,192, + 192,192,15,11,22,16,0,0,3,254,7,128,7,128,13,128, + 29,128,25,254,57,128,63,128,97,128,97,128,193,254,10,15, + 30,12,1,252,31,0,119,128,97,192,192,0,192,0,192,0, + 192,0,193,192,97,192,115,128,62,0,8,0,14,0,2,0, + 28,0,8,16,16,10,1,0,96,48,24,0,0,255,192,192, + 192,192,255,192,192,192,192,255,8,16,16,10,1,0,12,8, + 16,0,0,255,192,192,192,192,255,192,192,192,192,255,8,16, + 16,10,1,0,24,60,36,0,0,255,192,192,192,192,255,192, + 192,192,192,255,8,15,15,10,1,0,102,0,0,0,255,192, + 192,192,192,255,192,192,192,192,255,4,16,16,4,255,0,192, + 96,48,0,0,48,48,48,48,48,48,48,48,48,48,48,4, + 16,16,4,1,0,112,96,192,0,0,192,192,192,192,192,192, + 192,192,192,192,192,4,16,16,4,0,0,96,240,144,0,0, + 96,96,96,96,96,96,96,96,96,96,96,5,15,15,5,0, + 0,216,0,0,0,48,48,48,48,48,48,48,48,48,48,48, + 11,11,22,12,0,0,127,0,99,128,96,192,96,224,96,96, + 252,96,96,96,96,224,96,192,99,128,127,0,10,15,30,12, + 1,0,25,0,22,0,0,0,0,0,240,192,240,192,248,192, + 216,192,220,192,204,192,206,192,198,192,199,192,195,192,195,192, + 11,16,32,13,1,0,24,0,8,0,12,0,0,0,0,0, + 31,0,123,192,96,192,192,96,192,96,192,96,192,96,192,96, + 96,192,123,192,31,0,11,16,32,13,1,0,3,0,2,0, + 4,0,0,0,0,0,31,0,123,192,96,192,192,96,192,96, + 192,96,192,96,192,96,96,192,123,192,31,0,11,16,32,13, + 1,0,14,0,27,0,17,0,0,0,0,0,31,0,123,192, + 96,192,192,96,192,96,192,96,192,96,192,96,96,192,123,192, + 31,0,11,15,30,13,1,0,31,0,0,0,0,0,0,0, + 31,0,123,192,96,192,192,96,192,96,192,96,192,96,224,224, + 96,192,127,192,31,0,11,15,30,13,1,0,27,0,0,0, + 0,0,0,0,31,0,123,192,96,192,192,96,192,96,192,96, + 192,96,192,96,96,192,123,192,31,0,8,8,8,16,4,0, + 129,195,102,24,24,36,66,129,11,11,22,13,1,0,31,160, + 59,192,96,192,193,96,194,96,196,96,200,96,208,96,224,192, + 123,128,191,0,10,16,32,12,1,0,48,0,24,0,8,0, + 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,127,128,62,0,10,16,32,12,1,0, + 3,0,6,0,4,0,0,0,0,0,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,225,192,127,128,62,0, + 10,16,32,12,1,0,28,0,30,0,51,0,0,0,0,0, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,62,0,10,15,30,12,1,0,51,0,0,0, + 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,115,128,62,0,10,16,32,10,0,0, + 6,0,6,0,4,0,0,0,0,0,225,192,113,128,51,128, + 59,0,31,0,30,0,12,0,12,0,12,0,12,0,12,0, + 8,11,11,10,1,0,192,192,254,199,195,195,199,254,192,192, + 192,8,11,11,10,1,0,124,238,198,206,220,216,206,199,195, + 219,222,7,12,12,9,1,0,96,48,16,0,60,110,6,126, + 230,198,238,118,7,12,12,9,1,0,12,24,16,0,60,110, + 6,126,230,198,238,118,7,12,12,9,1,0,56,44,68,0, + 60,110,6,126,230,198,238,118,7,11,11,9,1,0,60,0, + 0,60,110,6,126,230,198,238,118,7,11,11,9,1,0,108, + 0,0,60,230,6,126,230,198,238,118,7,13,13,9,1,0, + 24,36,36,60,0,60,102,6,126,230,198,238,126,13,8,16, + 15,1,0,60,224,103,176,7,24,127,248,231,0,199,24,237, + 184,120,240,7,12,12,9,1,252,60,110,198,192,192,198,110, + 60,16,28,4,56,7,13,13,9,1,0,96,32,48,16,0, + 60,110,198,254,192,198,110,60,7,13,13,9,1,0,12,12, + 24,16,0,60,110,198,254,192,198,110,60,7,13,13,9,1, + 0,24,56,44,68,0,60,110,198,254,192,198,110,60,7,12, + 12,9,1,0,108,0,0,0,60,110,198,254,192,206,110,60, + 3,12,12,4,0,0,192,96,32,0,96,96,96,96,96,96, + 96,96,3,12,12,4,1,0,96,192,128,0,192,192,192,192, + 192,192,192,192,5,12,12,4,0,0,96,208,136,0,96,96, + 96,96,96,96,96,96,5,11,11,5,0,0,216,0,0,48, + 48,48,48,48,48,48,48,8,11,11,10,1,0,51,28,102, + 62,103,195,195,195,195,103,60,7,11,11,9,1,0,60,0, + 0,220,238,198,198,198,198,198,198,8,13,13,10,1,0,96, + 48,16,8,0,60,102,195,195,195,195,102,60,8,13,13,10, + 1,0,6,12,8,16,0,60,102,195,195,195,195,102,60,8, + 13,13,10,1,0,24,28,36,34,0,60,102,195,195,195,195, + 102,60,8,11,11,10,1,0,60,0,0,60,102,195,195,195, + 195,102,60,8,12,12,10,1,0,102,0,0,0,60,102,195, + 195,195,195,102,60,10,6,12,16,3,2,12,0,0,0,255, + 192,0,0,0,0,12,0,8,10,10,10,1,255,1,62,102, + 207,203,211,227,118,252,128,7,12,12,9,1,0,96,48,16, + 0,198,198,198,198,198,198,238,118,7,12,12,9,1,0,12, + 24,16,0,198,198,198,198,198,198,238,118,7,12,12,9,1, + 0,56,40,68,0,198,198,198,198,198,198,238,118,7,11,11, + 9,1,0,108,0,0,198,198,198,198,198,198,238,118,9,16, + 32,9,0,253,7,0,6,0,12,0,8,0,0,0,99,128, + 99,0,115,0,54,0,54,0,30,0,28,0,28,0,28,0, + 248,0,112,0,8,14,14,10,1,253,192,192,192,220,230,195, + 195,195,199,230,220,192,192,192,8,14,14,9,1,253,108,0, + 0,199,198,238,108,108,60,56,56,56,48,48}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 11 + Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=16 dy= 0 ascent=11 len=18 + Font Bounding box w=24 h=21 x=-1 y=-4 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub11n[266] U8G_SECTION(".progmem.u8g_font_fub11n") = { + 0,24,21,255,252,11,0,0,0,0,42,57,0,11,254,11, + 0,6,5,5,10,2,5,120,48,252,48,120,9,9,18,16, + 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, + 8,0,8,0,3,4,4,5,1,254,96,96,192,192,4,2, + 2,6,1,3,240,240,2,2,2,5,2,0,192,192,5,12, + 12,7,1,255,24,24,16,48,48,32,32,96,96,64,192,192, + 8,11,11,9,1,0,60,102,195,195,195,195,195,195,195,102, + 60,4,11,11,9,2,0,48,240,240,48,48,48,48,48,48, + 48,48,8,11,11,9,1,0,62,119,99,3,7,6,30,60, + 112,224,255,8,11,11,9,1,0,124,238,198,6,60,6,3, + 195,199,126,60,8,11,11,9,1,0,14,30,30,54,102,102, + 198,255,255,6,6,8,11,11,9,1,0,254,192,192,192,254, + 231,3,3,199,254,124,8,11,11,9,1,0,60,118,67,192, + 222,231,195,195,195,102,60,8,11,11,9,1,0,255,3,7, + 6,14,12,28,24,56,56,112,8,11,11,9,1,0,126,231, + 195,231,60,102,195,195,195,231,60,8,11,11,9,1,0,60, + 102,195,195,231,127,3,3,198,110,60}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=12 len=28 + Font Bounding box w=24 h=21 x=-1 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub11r[1829] U8G_SECTION(".progmem.u8g_font_fub11r") = { + 0,24,21,255,252,11,2,82,5,55,32,127,253,12,252,11, + 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, + 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, + 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, + 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, + 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, + 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, + 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, + 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, + 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, + 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, + 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, + 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, + 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, + 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, + 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, + 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, + 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, + 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, + 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, + 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, + 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, + 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, + 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, + 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, + 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, + 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, + 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, + 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, + 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, + 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, + 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, + 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, + 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, + 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, + 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, + 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, + 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, + 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, + 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, + 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, + 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, + 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, + 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, + 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, + 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, + 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, + 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, + 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, + 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, + 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, + 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, + 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, + 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, + 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, + 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, + 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, + 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, + 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, + 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, + 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, + 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, + 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, + 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, + 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, + 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, + 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, + 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, + 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, + 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, + 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, + 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, + 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, + 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, + 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, + 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, + 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, + 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, + 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, + 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, + 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, + 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, + 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, + 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, + 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, + 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, + 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, + 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, + 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, + 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, + 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, + 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, + 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, + 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, + 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, + 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, + 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, + 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, + 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, + 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, + 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, + 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, + 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, + 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, + 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, + 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, + 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, + 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, + 0,3,121,223,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=21 len=54 + Font Bounding box w=31 h=26 x=-2 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =21 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub14[5788] U8G_SECTION(".progmem.u8g_font_fub14") = { + 0,31,26,254,251,14,3,116,7,95,32,255,252,21,251,14, + 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, + 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, + 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, + 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, + 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, + 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, + 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, + 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, + 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, + 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, + 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, + 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, + 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, + 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, + 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, + 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, + 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, + 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, + 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, + 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, + 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, + 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, + 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, + 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, + 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, + 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, + 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, + 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, + 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, + 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, + 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, + 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, + 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, + 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, + 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, + 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, + 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, + 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, + 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, + 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, + 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, + 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, + 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, + 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, + 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, + 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, + 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, + 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, + 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, + 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, + 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, + 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, + 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, + 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, + 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, + 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, + 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, + 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, + 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, + 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, + 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, + 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, + 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, + 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, + 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, + 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, + 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, + 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, + 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, + 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, + 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, + 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, + 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, + 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, + 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, + 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, + 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, + 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, + 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, + 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, + 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, + 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, + 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, + 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, + 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, + 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, + 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, + 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, + 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, + 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, + 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, + 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, + 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, + 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, + 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, + 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, + 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, + 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, + 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, + 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, + 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, + 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, + 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, + 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, + 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, + 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, + 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, + 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, + 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, + 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, + 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, + 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, + 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, + 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, + 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, + 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, + 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, + 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, + 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, + 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, + 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, + 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, + 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, + 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, + 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, + 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, + 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, + 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, + 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, + 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, + 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, + 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, + 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, + 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, + 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, + 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, + 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, + 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, + 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, + 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, + 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, + 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, + 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, + 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, + 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, + 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, + 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, + 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, + 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, + 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, + 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, + 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, + 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, + 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, + 4,48,96,127,192,199,128,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,6,0,0,3,14, + 14,9,3,252,224,224,0,0,224,224,224,224,224,224,224,224, + 224,224,9,14,28,11,1,254,2,0,2,0,62,0,127,0, + 231,128,231,128,232,0,232,0,235,128,243,128,127,0,62,0, + 32,0,32,0,10,14,28,12,1,0,31,0,63,192,113,192, + 112,0,112,0,254,0,254,0,112,0,112,0,112,0,112,0, + 112,0,255,192,255,192,10,10,20,12,1,3,128,64,94,128, + 33,0,64,128,64,128,64,128,64,128,33,0,94,128,128,64, + 11,14,28,13,1,0,224,224,225,192,113,192,113,128,251,224, + 251,224,31,0,255,224,255,224,14,0,14,0,14,0,14,0, + 14,0,1,18,18,7,3,252,128,128,128,128,128,128,128,128, + 0,0,128,128,128,128,128,128,128,128,8,18,18,10,1,252, + 62,126,224,224,112,60,126,231,231,231,254,124,30,7,7,135, + 254,56,7,2,2,7,0,12,238,238,15,14,28,17,1,0, + 7,192,31,240,55,152,111,204,204,228,156,2,156,2,156,226, + 140,226,207,198,71,132,32,24,28,112,15,192,7,9,9,8, + 1,5,120,204,124,204,204,252,36,0,254,10,8,16,12,1, + 1,57,192,113,128,115,128,231,0,231,0,115,128,113,128,57, + 192,11,5,10,13,1,4,255,224,255,224,0,32,0,32,0, + 32,255,15,14,28,17,1,0,7,192,31,240,63,152,111,236, + 204,100,140,98,143,194,143,194,140,98,204,102,76,100,32,24, + 28,112,15,192,6,2,2,6,0,12,252,252,5,5,5,7, + 1,9,112,136,136,136,112,12,12,24,20,4,0,2,0,2, + 0,2,0,255,240,255,240,2,0,2,0,2,0,0,0,0, + 0,255,240,255,240,6,8,8,8,1,6,120,204,12,24,48, + 224,252,252,6,7,7,8,1,7,120,204,12,48,12,204,120, + 4,4,4,4,1,12,48,96,96,192,255,9,17,34,11,1, + 253,63,128,121,0,249,0,249,0,249,0,249,0,121,0,9, + 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9, + 0,9,0,3,3,3,6,2,5,224,224,224,5,5,5,5, + 1,251,64,112,24,24,240,4,8,8,6,1,6,48,240,48, + 48,48,48,48,48,7,9,9,9,1,5,56,68,198,198,198, + 68,56,0,254,10,8,16,12,1,1,231,0,99,128,115,128, + 57,192,57,192,115,128,99,128,231,0,14,14,28,16,1,0, + 112,48,240,48,48,96,48,192,48,192,49,128,49,156,51,60, + 6,60,6,108,12,204,24,252,24,12,48,12,15,14,28,17, + 1,0,112,48,240,32,48,96,48,192,48,192,49,128,51,60, + 51,102,6,6,12,14,12,28,24,48,48,126,48,126,14,14, + 28,16,1,0,120,24,204,48,12,48,48,96,12,192,204,192, + 121,156,1,188,3,60,6,108,6,204,12,252,8,12,24,12, + 9,14,28,11,1,252,14,0,14,0,0,0,14,0,14,0, + 14,0,60,0,112,0,224,0,224,0,225,128,225,128,127,128, + 62,0,14,20,40,14,0,0,12,0,14,0,6,0,3,0, + 0,0,0,0,7,128,7,128,7,192,15,192,14,192,28,224, + 28,224,28,96,56,112,63,240,63,248,112,56,112,56,224,28, + 14,20,40,14,0,0,0,192,1,192,1,128,3,0,0,0, + 0,0,7,128,7,128,7,192,15,192,14,192,28,224,28,224, + 28,96,56,112,63,240,63,248,112,56,112,56,224,28,14,20, + 40,14,0,0,3,128,7,128,6,192,12,192,0,0,0,0, + 7,128,7,128,7,192,15,192,14,192,28,224,28,224,28,96, + 56,112,63,240,63,248,112,56,112,56,224,28,14,19,38,14, + 0,0,6,64,15,192,8,128,0,0,0,0,7,128,7,128, + 7,192,15,192,14,192,28,224,28,224,28,96,56,112,63,240, + 63,248,112,56,112,56,224,28,14,19,38,15,0,0,14,224, + 14,224,0,0,0,0,0,0,3,128,7,128,7,192,7,192, + 14,192,14,224,28,224,28,112,28,112,63,248,63,248,112,56, + 112,28,224,28,13,21,42,15,1,0,7,0,8,128,8,128, + 8,128,7,0,0,0,0,0,7,0,15,128,15,128,29,192, + 29,192,29,192,56,224,56,224,48,96,127,240,127,240,224,56, + 224,56,224,56,19,14,42,20,0,0,0,255,224,1,255,224, + 3,240,0,3,112,0,7,112,0,7,112,0,14,127,192,14, + 127,192,28,112,0,31,240,0,63,240,0,112,112,0,112,127, + 224,224,127,224,13,18,36,15,1,252,15,128,63,224,112,240, + 96,112,224,0,224,0,224,0,224,0,224,0,224,120,96,112, + 112,240,63,224,31,128,4,0,7,128,1,128,15,0,10,20, + 40,12,1,0,48,0,56,0,24,0,12,0,0,0,0,0, + 255,192,255,192,224,0,224,0,224,0,224,0,255,128,255,128, + 224,0,224,0,224,0,224,0,255,192,255,192,10,20,40,12, + 1,0,7,0,6,0,12,0,8,0,0,0,0,0,255,192, + 255,192,224,0,224,0,224,0,224,0,255,128,255,128,224,0, + 224,0,224,0,224,0,255,192,255,192,10,20,40,12,1,0, + 28,0,30,0,54,0,35,0,0,0,0,0,255,192,255,192, + 224,0,224,0,224,0,224,0,255,128,255,128,224,0,224,0, + 224,0,224,0,255,192,255,192,10,19,38,12,1,0,119,0, + 119,0,0,0,0,0,0,0,255,192,255,192,224,0,224,0, + 224,0,224,0,255,128,255,128,224,0,224,0,224,0,224,0, + 255,192,255,192,5,20,20,5,255,0,224,96,48,16,0,0, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,4,20, + 20,5,1,0,48,112,96,192,0,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,5,20,20,5,0,0,112,112, + 216,136,0,0,112,112,112,112,112,112,112,112,112,112,112,112, + 112,112,7,19,19,7,0,0,238,238,0,0,0,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,13,14,28,14,0, + 0,127,128,127,224,112,240,112,112,112,56,112,56,254,56,254, + 56,112,56,112,56,112,112,112,240,127,224,127,128,13,19,38, + 15,1,0,12,64,31,128,17,0,0,0,0,0,240,56,248, + 56,248,56,252,56,238,56,238,56,231,56,231,56,227,184,227, + 184,225,248,225,248,224,248,224,248,14,20,40,16,1,0,28, + 0,12,0,6,0,2,0,0,0,0,0,15,192,63,240,112, + 112,96,56,224,24,224,28,224,28,224,28,224,28,224,24,96, + 56,112,112,63,240,15,192,14,20,40,16,1,0,0,224,1, + 192,1,128,3,0,0,0,0,0,15,192,63,240,112,112,96, + 56,224,24,224,28,224,28,224,28,224,28,224,24,96,56,112, + 112,63,240,15,192,14,20,40,16,1,0,7,0,7,128,13, + 192,8,192,0,0,0,0,15,192,63,240,112,112,96,56,224, + 24,224,28,224,28,224,28,224,28,224,24,96,56,112,112,63, + 240,15,192,14,19,38,16,1,0,7,192,15,192,0,0,0, + 0,0,0,15,192,63,240,112,48,96,56,224,24,224,28,224, + 28,224,28,224,28,224,24,112,56,120,240,63,240,15,192,14, + 19,38,16,1,0,29,192,29,192,0,0,0,0,0,0,15, + 192,63,240,112,112,96,56,224,24,224,28,224,28,224,28,224, + 28,224,24,96,56,112,112,63,240,15,192,10,10,20,20,5, + 1,128,64,192,192,97,128,51,0,12,0,12,0,18,0,33, + 0,64,128,128,64,15,16,32,16,0,255,0,2,7,230,31, + 252,56,60,48,60,112,108,112,238,113,206,115,142,119,14,126, + 12,124,28,56,56,63,240,239,224,64,0,12,20,40,14,1, + 0,56,0,24,0,12,0,6,0,0,0,0,0,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,113,224,63,192,31,128,12,20,40,14,1,0,1, + 192,3,128,3,0,6,0,0,0,0,0,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,113,224,63,192,31,128,12,20,40,14,1,0,14,0,15, + 0,27,0,17,128,0,0,0,0,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,113, + 224,63,192,31,128,12,19,38,14,1,0,29,192,29,192,0, + 0,0,0,0,0,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,112,224,63,192,31, + 128,12,19,38,13,0,0,1,128,3,0,2,0,0,0,0, + 0,240,112,112,240,56,224,56,224,29,192,29,192,15,128,15, + 0,7,0,7,0,7,0,7,0,7,0,7,0,11,14,28, + 13,1,0,224,0,224,0,255,0,255,192,225,192,224,224,224, + 224,224,224,225,192,255,128,254,0,224,0,224,0,224,0,10, + 14,28,12,1,0,62,0,127,128,227,128,227,128,227,0,231, + 0,238,0,238,0,231,128,227,192,225,192,253,192,255,192,239, + 128,9,16,32,11,1,0,112,0,48,0,24,0,8,0,0, + 0,0,0,62,0,127,128,227,128,31,128,127,128,227,128,227, + 128,227,128,255,128,57,128,9,16,32,11,1,0,7,0,6, + 0,12,0,12,0,0,0,0,0,62,0,127,128,227,128,3, + 128,63,128,251,128,227,128,227,128,255,128,121,128,9,16,32, + 11,1,0,28,0,30,0,54,0,35,0,0,0,0,0,62, + 0,127,128,227,128,31,128,127,128,227,128,227,128,227,128,255, + 128,57,128,9,14,28,11,1,0,63,0,62,0,0,0,0, + 0,62,0,127,128,227,128,31,128,127,128,227,128,227,128,227, + 128,255,128,57,128,9,15,30,11,1,0,119,0,119,0,0, + 0,0,0,0,0,62,0,127,128,227,128,31,128,127,128,227, + 128,227,128,227,128,255,128,57,128,9,17,34,11,1,0,28, + 0,34,0,34,0,34,0,28,0,0,0,0,0,62,0,127, + 128,227,128,31,128,127,128,227,128,227,128,227,128,255,128,57, + 128,16,10,20,18,1,0,62,124,127,254,227,135,31,255,127, + 255,227,128,227,128,227,199,254,254,60,124,9,14,28,11,1, + 252,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, + 128,127,0,62,0,16,0,30,0,6,0,62,0,9,16,32, + 11,1,0,112,0,48,0,24,0,8,0,0,0,0,0,30, + 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, + 128,62,0,9,16,32,11,1,0,7,0,6,0,12,0,8, + 0,0,0,0,0,30,0,127,0,227,128,227,128,255,128,255, + 128,224,0,227,128,127,128,62,0,9,16,32,11,1,0,28, + 0,30,0,54,0,35,0,0,0,0,0,30,0,127,0,227, + 128,227,128,255,128,255,128,224,0,227,128,127,128,62,0,9, + 15,30,11,1,0,119,0,119,0,0,0,0,0,0,0,30, + 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, + 128,62,0,4,15,15,5,0,0,192,224,96,48,0,112,112, + 112,112,112,112,112,112,112,112,4,15,15,4,1,0,112,96, + 192,128,0,224,224,224,224,224,224,224,224,224,224,7,15,15, + 5,255,0,56,124,76,198,0,56,56,56,56,56,56,56,56, + 56,56,7,14,14,6,0,0,238,238,0,0,56,56,56,56, + 56,56,56,56,56,56,10,14,28,12,1,0,57,128,15,0, + 31,0,99,0,31,128,127,128,97,192,225,192,225,192,225,192, + 225,192,97,192,127,128,31,0,9,14,28,11,1,0,62,0, + 60,0,0,0,0,0,239,0,255,128,227,128,227,128,227,128, + 227,128,227,128,227,128,227,128,227,128,10,16,32,12,1,0, + 48,0,24,0,24,0,12,0,0,0,0,0,30,0,127,128, + 97,128,225,192,225,192,225,192,225,192,97,128,127,128,30,0, + 10,16,32,12,1,0,3,0,6,0,6,0,12,0,0,0, + 0,0,30,0,127,128,97,128,225,192,225,192,225,192,225,192, + 97,128,127,128,30,0,10,16,32,12,1,0,12,0,30,0, + 26,0,51,0,0,0,0,0,30,0,127,128,97,128,225,192, + 225,192,225,192,225,192,97,128,127,128,30,0,10,14,28,12, + 1,0,31,0,62,0,0,0,0,0,30,0,127,128,97,128, + 225,192,225,192,225,192,225,192,97,128,127,128,30,0,10,15, + 30,12,1,0,59,128,59,128,0,0,0,0,0,0,30,0, + 127,128,97,128,225,192,225,192,225,192,225,192,97,128,127,128, + 30,0,12,8,16,20,4,2,6,0,14,0,0,0,255,240, + 255,240,0,0,6,0,14,0,10,12,24,12,1,0,0,192, + 31,128,127,128,99,128,231,192,237,192,233,192,241,192,113,128, + 127,128,222,0,128,0,9,16,32,11,1,0,112,0,48,0, + 24,0,8,0,0,0,0,0,227,128,227,128,227,128,227,128, + 227,128,227,128,227,128,227,128,255,128,123,128,9,16,32,11, + 1,0,7,0,6,0,12,0,8,0,0,0,0,0,227,128, + 227,128,227,128,227,128,227,128,227,128,227,128,227,128,255,128, + 123,128,9,16,32,11,1,0,28,0,28,0,54,0,34,0, + 0,0,0,0,227,128,227,128,227,128,227,128,227,128,227,128, + 227,128,227,128,255,128,123,128,9,15,30,11,1,0,119,0, + 119,0,0,0,0,0,0,0,227,128,227,128,227,128,227,128, + 227,128,227,128,227,128,227,128,255,128,123,128,11,19,38,11, + 0,252,1,128,3,0,2,0,4,0,0,0,112,224,113,192, + 113,192,57,192,59,128,27,128,31,128,31,0,15,0,14,0, + 14,0,78,0,252,0,120,0,10,18,36,12,1,252,224,0, + 224,0,224,0,224,0,239,0,255,128,225,128,225,192,225,192, + 225,192,225,192,225,192,255,128,255,0,224,0,224,0,224,0, + 224,0,11,18,36,11,0,252,59,128,59,128,0,0,0,0, + 225,224,113,192,113,192,115,128,59,128,59,128,31,0,31,0, + 31,0,14,0,14,0,12,0,28,0,28,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 14 + Calculated Max Values w=12 h=15 x= 4 y= 7 dx=20 dy= 0 ascent=14 len=28 + Font Bounding box w=31 h=26 x=-2 y=-5 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =14 descent= 0 + X Font ascent =14 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub14n[436] U8G_SECTION(".progmem.u8g_font_fub14n") = { + 0,31,26,254,251,14,0,0,0,0,42,57,0,14,254,14, + 0,8,7,7,12,2,7,102,60,24,255,24,60,102,12,12, + 24,20,4,0,2,0,2,0,2,0,2,0,2,0,255,240, + 255,240,2,0,2,0,2,0,2,0,2,0,4,5,5,6, + 1,254,112,112,96,224,192,5,3,3,7,1,4,248,248,248, + 3,3,3,6,2,0,224,224,224,6,15,15,9,1,255,12, + 12,12,12,24,24,24,48,48,48,96,96,96,96,192,10,14, + 28,11,1,0,30,0,127,0,97,128,225,192,225,192,225,192, + 225,192,225,192,225,192,225,192,225,192,97,128,127,128,30,0, + 6,14,14,11,2,0,28,124,252,220,28,28,28,28,28,28, + 28,28,28,28,10,14,28,11,1,0,31,0,127,128,97,192, + 225,192,1,192,1,192,3,128,7,128,15,0,30,0,56,0, + 112,0,255,192,255,192,10,14,28,11,1,0,62,0,127,0, + 227,128,3,128,3,128,31,0,31,0,3,128,1,192,1,192, + 225,192,243,128,127,0,62,0,11,14,28,11,1,0,7,128, + 15,128,15,128,27,128,59,128,51,128,115,128,99,128,227,128, + 255,224,255,224,3,128,3,128,3,128,10,14,28,11,1,0, + 255,128,255,128,224,0,224,0,224,0,255,0,255,128,225,128, + 1,192,1,192,225,192,227,128,127,0,62,0,10,14,28,11, + 1,0,30,0,63,128,97,128,96,0,224,0,223,0,255,128, + 225,128,225,192,225,192,225,192,97,128,127,128,30,0,10,14, + 28,11,1,0,255,192,255,192,1,192,3,128,3,128,7,128, + 7,0,7,0,14,0,14,0,28,0,28,0,60,0,56,0, + 10,14,28,11,1,0,63,0,127,128,225,192,225,192,225,128, + 127,0,63,0,115,128,225,192,225,192,225,192,225,192,127,128, + 63,0,10,14,28,11,1,0,30,0,127,0,225,128,225,128, + 225,192,225,192,243,192,127,192,25,192,1,128,225,128,99,128, + 127,0,62,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=16 len=54 + Font Bounding box w=31 h=26 x=-2 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub14r[2680] U8G_SECTION(".progmem.u8g_font_fub14r") = { + 0,31,26,254,251,14,3,116,7,95,32,127,252,16,251,14, + 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, + 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, + 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, + 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, + 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, + 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, + 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, + 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, + 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, + 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, + 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, + 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, + 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, + 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, + 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, + 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, + 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, + 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, + 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, + 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, + 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, + 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, + 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, + 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, + 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, + 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, + 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, + 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, + 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, + 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, + 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, + 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, + 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, + 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, + 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, + 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, + 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, + 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, + 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, + 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, + 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, + 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, + 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, + 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, + 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, + 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, + 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, + 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, + 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, + 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, + 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, + 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, + 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, + 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, + 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, + 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, + 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, + 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, + 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, + 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, + 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, + 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, + 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, + 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, + 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, + 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, + 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, + 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, + 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, + 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, + 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, + 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, + 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, + 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, + 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, + 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, + 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, + 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, + 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, + 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, + 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, + 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, + 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, + 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, + 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, + 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, + 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, + 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, + 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, + 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, + 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, + 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, + 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, + 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, + 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, + 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, + 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, + 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, + 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, + 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, + 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, + 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, + 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, + 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, + 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, + 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, + 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, + 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, + 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, + 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, + 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, + 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, + 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, + 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, + 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, + 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, + 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, + 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, + 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, + 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, + 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, + 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, + 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, + 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, + 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, + 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, + 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, + 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, + 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, + 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, + 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, + 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, + 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, + 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, + 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, + 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, + 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, + 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, + 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, + 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, + 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, + 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, + 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, + 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, + 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, + 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, + 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, + 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, + 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, + 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, + 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, + 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, + 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, + 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, + 4,48,96,127,192,199,128,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=23 h=25 x= 6 y=15 dx=24 dy= 0 ascent=25 len=66 + Font Bounding box w=34 h=31 x=-2 y=-6 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =25 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub17[6938] U8G_SECTION(".progmem.u8g_font_fub17") = { + 0,34,31,254,250,17,4,8,8,209,32,255,251,25,250,17, + 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, + 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, + 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, + 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, + 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, + 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, + 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, + 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, + 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, + 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, + 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, + 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, + 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, + 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, + 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, + 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, + 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, + 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, + 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, + 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, + 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, + 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, + 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, + 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, + 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, + 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, + 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, + 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, + 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, + 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, + 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, + 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, + 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, + 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, + 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, + 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, + 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, + 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, + 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, + 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, + 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, + 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, + 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, + 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, + 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, + 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, + 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, + 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, + 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, + 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, + 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, + 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, + 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, + 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, + 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, + 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, + 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, + 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, + 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, + 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, + 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, + 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, + 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, + 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, + 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, + 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, + 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, + 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, + 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, + 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, + 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, + 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, + 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, + 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, + 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, + 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, + 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, + 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, + 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, + 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, + 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, + 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, + 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, + 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, + 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, + 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, + 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, + 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, + 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, + 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, + 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, + 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, + 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, + 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, + 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, + 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, + 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, + 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, + 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, + 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, + 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, + 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, + 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, + 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, + 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, + 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, + 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, + 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, + 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, + 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, + 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, + 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, + 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, + 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, + 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, + 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, + 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, + 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, + 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, + 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, + 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, + 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, + 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, + 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, + 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, + 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, + 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, + 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, + 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, + 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, + 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, + 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, + 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, + 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, + 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, + 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, + 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, + 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, + 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, + 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, + 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, + 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, + 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, + 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, + 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, + 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, + 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, + 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, + 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, + 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, + 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, + 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, + 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, + 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, + 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, + 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, + 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, + 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, + 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, + 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, + 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, + 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, + 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, + 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, + 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, + 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, + 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, + 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, + 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, + 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, + 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, + 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, + 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, + 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, + 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, + 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, + 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, + 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, + 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, + 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, + 48,127,240,227,192,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,0,0,0,7,0,0,3,17,17,9, + 3,251,224,224,224,0,0,224,224,224,224,224,224,224,224,224, + 224,224,224,10,18,36,13,1,253,1,0,1,0,3,0,31, + 0,127,128,115,192,231,192,228,0,228,0,236,0,233,192,233, + 192,123,192,127,128,31,0,16,0,48,0,32,0,11,17,34, + 13,1,0,15,128,31,224,56,224,56,224,56,0,56,0,255, + 0,255,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,255,224,255,224,11,12,24,13,1,4,128,32,95,64,113, + 128,96,128,64,64,64,64,64,64,64,64,96,192,49,128,95, + 64,128,32,13,17,34,15,1,0,224,120,240,120,112,112,120, + 240,56,224,253,248,253,248,31,192,15,128,255,248,255,248,7, + 0,7,0,7,0,7,0,7,0,7,0,1,22,22,8,4, + 251,128,128,128,128,128,128,128,128,128,0,0,0,0,128,128, + 128,128,128,128,128,128,128,9,21,42,11,1,252,63,0,127, + 0,241,0,224,0,224,0,120,0,62,0,63,0,119,128,227, + 128,227,128,231,128,255,0,126,0,31,0,7,128,3,128,3, + 128,135,128,255,0,124,0,8,3,3,8,0,15,231,231,231, + 17,17,51,19,1,0,3,224,0,15,248,0,60,30,0,51, + 230,0,103,243,0,103,59,0,206,57,128,206,1,128,206,1, + 128,206,1,128,206,57,128,78,57,0,103,243,0,51,230,0, + 56,14,0,15,248,0,3,224,0,8,11,11,10,1,6,60, + 102,6,126,230,198,198,126,0,0,255,11,9,18,14,1,1, + 60,224,56,224,121,224,113,192,243,192,113,192,121,224,56,224, + 60,224,12,5,10,14,1,5,255,240,0,16,0,16,0,16, + 0,16,255,17,17,51,19,1,0,3,224,0,15,248,0,60, + 30,0,55,246,0,103,251,0,102,27,0,198,25,128,199,241, + 128,199,241,128,198,57,128,198,25,128,70,25,0,102,27,0, + 48,6,0,56,14,0,15,248,0,3,224,0,7,2,2,7, + 0,15,254,254,5,5,5,7,1,12,112,136,136,136,112,14, + 14,28,24,5,0,2,0,2,0,2,0,2,0,255,252,255, + 252,2,0,2,0,2,0,2,0,0,0,0,0,255,252,255, + 252,7,9,9,9,1,8,124,230,6,14,28,56,224,254,254, + 7,9,9,9,1,8,124,206,6,14,56,14,6,206,124,5, + 4,4,5,1,14,56,112,96,192,255,11,20,40,14,2,253, + 63,224,125,128,253,128,253,128,253,128,253,128,253,128,125,128, + 13,128,13,128,13,128,13,128,13,128,13,128,13,128,13,128, + 13,128,13,128,13,128,13,128,3,3,3,7,2,6,224,224, + 224,6,5,5,6,1,251,32,56,12,12,248,4,9,9,6, + 1,8,48,240,176,48,48,48,48,48,48,8,11,11,10,1, + 6,60,102,195,195,195,195,231,126,60,0,255,12,9,18,14, + 1,1,227,128,113,192,121,224,56,224,60,240,56,224,121,224, + 113,192,227,128,16,17,34,18,1,0,48,24,240,24,176,48, + 48,112,48,96,48,224,48,192,49,128,49,142,3,14,3,30, + 6,54,14,54,12,102,24,127,24,6,48,6,16,17,34,18, + 1,0,48,24,240,48,176,48,48,96,48,224,48,192,49,192, + 49,128,51,62,3,119,6,3,6,7,12,14,28,28,24,112, + 48,127,48,127,17,17,51,19,1,0,124,6,0,198,12,0, + 6,12,0,56,24,0,14,56,0,6,48,0,206,112,0,124, + 96,0,0,199,0,1,199,0,1,143,0,3,155,0,3,27, + 0,7,51,0,6,63,128,12,3,0,28,3,0,10,17,34, + 12,1,251,14,0,14,0,0,0,0,0,14,0,14,0,14, + 0,28,0,56,0,112,0,240,0,224,0,224,128,224,192,115, + 192,127,128,31,0,16,24,48,16,0,0,14,0,7,0,3, + 0,3,128,1,128,0,0,0,0,3,192,3,192,3,224,7, + 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, + 252,63,252,127,254,120,14,112,15,240,7,16,24,48,16,0, + 0,0,112,0,96,0,224,0,192,1,128,0,0,0,0,3, + 192,3,192,3,224,7,224,7,240,15,112,14,112,14,120,30, + 56,28,56,28,60,63,252,63,252,127,254,120,14,112,15,240, + 7,16,24,48,16,0,0,1,192,3,192,3,224,6,96,4, + 48,0,0,0,0,3,192,3,192,3,224,7,224,7,240,15, + 112,14,112,14,120,30,56,28,56,28,60,63,252,63,252,127, + 254,120,14,112,15,240,7,16,23,46,16,0,0,0,16,7, + 240,7,224,0,0,0,0,0,0,3,192,3,192,3,224,7, + 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, + 252,63,252,127,254,120,14,112,15,240,7,16,23,46,17,0, + 0,14,112,14,112,14,112,0,0,0,0,0,0,3,192,3, + 192,7,224,7,224,7,224,15,112,14,112,30,120,30,56,28, + 56,60,60,63,252,127,254,127,254,112,14,240,15,224,7,15, + 25,50,16,1,0,3,128,6,192,4,64,4,64,4,192,3, + 128,0,0,0,0,3,128,7,192,7,192,15,192,14,224,14, + 224,30,224,28,112,28,112,60,112,56,120,63,248,127,252,127, + 252,112,28,240,30,224,14,21,17,51,23,1,0,0,255,248, + 0,255,248,1,248,0,1,248,0,3,184,0,3,184,0,7, + 56,0,7,63,248,14,63,248,14,56,0,30,56,0,31,248, + 0,63,248,0,120,56,0,112,56,0,240,63,248,224,63,248, + 14,22,44,16,1,251,15,192,31,240,63,248,120,56,112,60, + 240,28,224,0,224,0,224,0,224,0,224,0,224,0,112,28, + 112,60,56,120,31,240,15,192,3,0,3,192,0,96,0,96, + 7,192,11,24,48,15,2,0,56,0,24,0,28,0,12,0, + 6,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, + 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, + 224,0,255,224,255,224,255,224,11,24,48,15,2,0,3,128, + 3,0,7,0,6,0,12,0,0,0,0,0,255,224,255,224, + 255,224,224,0,224,0,224,0,224,0,255,224,255,224,224,0, + 224,0,224,0,224,0,224,0,255,224,255,224,255,224,11,24, + 48,15,2,0,14,0,31,0,27,0,59,128,49,128,0,0, + 0,0,255,224,255,224,255,224,224,0,224,0,224,0,224,0, + 255,224,255,224,224,0,224,0,224,0,224,0,224,0,255,224, + 255,224,255,224,11,23,46,15,2,0,59,128,59,128,59,128, + 0,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, + 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, + 224,0,255,224,255,224,255,224,5,24,24,7,0,0,224,224, + 96,48,16,0,0,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,5,24,24,5,1,0,56,48,112,96, + 192,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,7,24,24,7,0,0,56,56,108,108,198,0, + 0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,8,23,23,8,0,0,231,231,231,0,0,0,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,15, + 17,34,16,0,0,63,192,63,240,63,248,56,60,56,28,56, + 30,56,14,56,14,255,14,255,14,56,14,56,30,56,28,56, + 60,63,248,63,240,63,192,14,23,46,18,2,0,0,32,15, + 192,15,192,0,0,0,0,0,0,248,28,248,28,252,28,252, + 28,238,28,238,28,231,28,231,28,231,156,227,156,227,220,225, + 220,225,220,224,252,224,252,224,124,224,124,15,24,48,17,1, + 0,28,0,14,0,6,0,3,0,1,0,0,0,0,0,7, + 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, + 14,224,14,224,14,240,14,112,28,120,60,63,248,31,240,7, + 224,15,24,48,17,1,0,0,112,0,224,0,192,1,128,1, + 0,0,0,0,0,7,192,31,240,63,248,120,60,112,28,240, + 30,224,14,224,14,224,14,224,14,224,14,240,14,112,28,120, + 60,63,248,31,240,7,224,15,24,48,17,1,0,3,128,7, + 192,6,192,12,96,8,32,0,0,0,0,7,192,31,240,63, + 248,120,60,112,28,240,30,224,14,224,14,224,14,224,14,224, + 14,240,14,112,28,120,60,63,248,31,240,7,224,15,23,46, + 17,1,0,7,32,15,224,8,192,0,0,0,0,0,0,7, + 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, + 14,224,14,224,14,224,14,112,28,120,60,63,248,31,240,7, + 224,15,23,46,17,1,0,14,112,14,112,14,112,0,0,0, + 0,0,0,7,192,31,240,63,248,120,60,112,28,240,30,224, + 14,224,14,224,14,224,14,224,14,240,14,112,28,120,60,63, + 248,31,240,7,224,13,12,24,23,5,1,192,24,96,48,48, + 96,24,192,13,128,7,0,7,0,13,128,24,192,48,96,96, + 48,192,24,17,19,57,17,0,255,0,1,0,3,241,128,15, + 251,0,31,254,0,60,30,0,56,30,0,120,63,0,112,119, + 0,112,231,0,113,199,0,115,135,0,119,7,0,126,7,0, + 60,14,0,60,30,0,63,252,0,111,248,0,227,224,0,64, + 0,0,14,24,48,18,2,0,28,0,12,0,14,0,6,0, + 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, + 112,56,127,248,63,240,15,192,14,24,48,18,2,0,0,224, + 0,192,1,192,1,128,3,0,0,0,0,0,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,240,60,112,56,127,248,63,240,15,192,14,24, + 48,18,2,0,7,128,7,128,15,192,12,192,24,96,0,0, + 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,240,60,112,56,127,248, + 63,240,15,192,14,23,46,16,1,0,28,224,28,224,28,224, + 0,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, + 120,120,127,248,63,240,15,192,13,23,46,15,1,0,1,192, + 1,128,3,0,2,0,0,0,0,0,224,56,240,120,112,112, + 120,240,56,224,61,224,29,192,31,192,15,128,15,128,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,12,17,34,15, + 1,0,224,0,224,0,224,0,255,128,255,224,255,224,224,240, + 224,112,224,112,224,240,255,224,255,224,255,128,224,0,224,0, + 224,0,224,0,12,17,34,14,1,0,63,0,127,128,241,192, + 225,192,225,192,227,128,231,0,238,0,238,0,239,128,231,192, + 225,224,224,112,238,112,238,112,239,224,231,192,10,19,38,13, + 1,0,112,0,56,0,24,0,12,0,4,0,0,0,0,0, + 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, + 225,192,243,192,127,192,60,192,10,19,38,13,1,0,3,128, + 3,0,6,0,6,0,12,0,0,0,0,0,31,0,127,128, + 113,192,1,192,31,192,127,192,241,192,225,192,225,192,243,192, + 127,192,60,192,10,19,38,13,1,0,14,0,30,0,27,0, + 51,0,33,128,0,0,0,0,31,0,127,128,113,192,1,192, + 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, + 10,17,34,13,1,0,31,128,63,0,0,0,0,0,0,0, + 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, + 225,192,243,192,127,192,60,192,10,18,36,13,1,0,115,128, + 115,128,115,128,0,0,0,0,0,0,63,0,127,128,241,192, + 1,192,31,192,127,192,241,192,225,192,225,192,243,192,127,192, + 60,192,10,20,40,13,1,0,14,0,27,0,17,0,19,0, + 31,0,14,0,0,0,0,0,31,0,127,128,113,192,1,192, + 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, + 18,12,36,20,1,0,31,31,0,127,191,128,113,243,128,0, + 225,192,31,255,192,127,255,192,240,224,0,224,224,0,224,225, + 192,241,243,192,127,63,128,62,31,0,10,17,34,12,1,251, + 31,0,127,128,115,192,225,192,224,0,224,0,224,0,224,0, + 225,192,115,192,127,128,63,0,8,0,14,0,3,0,3,0, + 30,0,11,19,38,13,1,0,112,0,56,0,24,0,12,0, + 4,0,0,0,0,0,31,0,63,128,113,192,225,224,255,224, + 255,224,224,0,224,0,225,192,113,192,127,192,31,0,11,19, + 38,13,1,0,3,128,3,0,7,0,6,0,12,0,0,0, + 0,0,31,0,63,128,113,192,225,224,255,224,255,224,224,0, + 224,0,225,192,113,192,127,192,31,0,11,19,38,13,1,0, + 14,0,31,0,27,0,49,128,33,128,0,0,0,0,31,0, + 63,128,113,192,225,224,255,224,255,224,224,0,224,0,225,192, + 113,192,127,192,31,0,11,18,36,13,1,0,115,128,115,128, + 115,128,0,0,0,0,0,0,31,0,63,128,115,192,225,192, + 255,224,255,224,224,0,224,0,225,192,115,192,127,128,31,0, + 5,18,18,6,255,0,224,112,48,24,0,0,56,56,56,56, + 56,56,56,56,56,56,56,56,4,18,18,5,1,0,112,96, + 224,192,0,0,224,224,224,224,224,224,224,224,224,224,224,224, + 7,18,18,6,255,0,56,124,108,198,0,0,56,56,56,56, + 56,56,56,56,56,56,56,56,8,18,18,7,255,0,231,231, + 231,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56, + 12,17,34,14,1,0,28,96,15,192,15,128,59,128,33,192, + 31,224,63,224,112,224,240,240,224,112,224,112,224,112,224,112, + 240,240,112,224,63,192,31,128,11,17,34,13,1,0,31,128, + 63,0,0,0,0,0,0,0,239,128,255,192,241,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 12,19,38,14,1,0,56,0,28,0,12,0,6,0,6,0, + 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, + 224,112,224,112,240,240,112,224,63,192,31,128,12,19,38,14, + 1,0,1,192,3,128,3,0,6,0,4,0,0,0,0,0, + 31,128,63,192,112,224,240,224,224,112,224,112,224,112,224,112, + 240,240,112,224,63,192,31,128,12,19,38,14,1,0,15,0, + 15,0,31,128,25,128,48,192,0,0,0,0,31,128,63,192, + 112,224,240,224,224,112,224,112,224,112,224,112,240,240,112,224, + 63,192,31,128,12,17,34,14,1,0,31,192,63,128,0,0, + 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, + 224,112,224,112,240,240,112,224,63,192,31,128,12,18,36,14, + 1,0,57,192,57,192,57,192,0,0,0,0,0,0,31,128, + 63,192,112,224,240,224,224,112,224,112,224,112,224,112,240,240, + 112,224,63,192,31,128,14,10,20,24,5,2,7,0,7,0, + 6,0,0,0,255,252,255,252,0,0,2,0,7,0,7,0, + 12,15,30,14,1,254,0,32,0,48,31,224,63,192,113,224, + 241,240,227,112,230,112,236,112,248,112,248,240,112,224,127,192, + 223,128,192,0,11,19,38,13,1,0,112,0,56,0,28,0, + 12,0,6,0,0,0,0,0,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,241,224,127,224,62,224, + 11,19,38,13,1,0,3,128,3,128,7,0,6,0,12,0, + 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,241,224,127,224,62,224,11,19,38,13, + 1,0,14,0,31,0,27,0,49,128,32,128,0,0,0,0, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,241,224,127,224,62,224,11,18,36,13,1,0,115,128, + 115,128,115,128,0,0,0,0,0,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,241,224,127,224, + 62,224,11,23,46,13,1,251,1,128,3,128,3,0,6,0, + 0,0,0,0,224,224,224,224,241,224,113,192,121,192,59,192, + 59,128,63,128,31,128,31,0,31,0,15,0,14,0,14,0, + 254,0,252,0,120,0,12,22,44,15,2,251,224,0,224,0, + 224,0,224,0,224,0,239,128,255,192,248,224,240,240,224,112, + 224,112,224,112,224,112,240,240,241,224,255,192,239,128,224,0, + 224,0,224,0,224,0,224,0,12,22,44,14,1,251,57,192, + 57,192,57,192,0,0,0,0,240,112,240,240,112,240,120,224, + 121,224,57,192,61,192,31,192,31,128,31,128,15,128,15,0, + 15,0,15,0,14,0,30,0,28,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 17 + Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 + Font Bounding box w=34 h=31 x=-2 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =17 descent= 0 + X Font ascent =17 descent= 0 + Max Font ascent =17 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub17n[512] U8G_SECTION(".progmem.u8g_font_fub17n") = { + 0,34,31,254,250,17,0,0,0,0,42,57,0,17,253,17, + 0,9,9,18,15,3,8,54,0,54,0,54,0,156,128,255, + 128,156,128,54,0,54,0,54,0,14,14,28,24,5,0,2, + 0,2,0,2,0,2,0,2,0,2,0,255,252,255,252,2, + 0,2,0,2,0,2,0,2,0,2,0,5,6,6,7,1, + 253,56,112,112,96,96,224,6,3,3,8,1,4,252,252,252, + 3,3,3,7,2,0,224,224,224,8,18,18,10,1,255,7, + 6,6,14,12,12,12,28,24,24,56,48,48,48,112,96,96, + 224,11,17,34,13,1,0,31,0,63,128,113,192,112,192,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,112,192,113,192,63,128,31,0,7,17,17,13,2,0,14, + 62,254,254,206,14,14,14,14,14,14,14,14,14,14,14,14, + 12,17,34,13,1,0,15,128,63,224,120,224,112,112,0,112, + 0,112,0,240,1,224,3,224,7,192,15,128,30,0,60,0, + 248,0,255,240,255,240,255,240,11,17,34,13,1,0,31,0, + 127,192,241,224,224,224,0,224,0,224,1,192,15,128,15,128, + 1,192,0,224,0,224,224,224,241,224,255,192,127,128,31,0, + 12,17,34,13,1,0,3,192,7,192,7,192,15,192,29,192, + 29,192,57,192,113,192,113,192,225,192,255,240,255,240,255,240, + 1,192,1,192,1,192,1,192,11,17,34,13,1,0,255,192, + 255,192,255,192,224,0,224,0,224,0,239,128,255,192,241,224, + 224,224,0,224,0,224,224,224,225,224,255,192,127,128,63,0, + 11,17,34,13,1,0,15,0,63,192,57,224,112,224,96,0, + 224,0,239,128,255,192,241,224,224,224,224,224,224,224,224,224, + 96,224,113,192,63,128,31,0,11,17,34,13,1,0,255,224, + 255,224,255,224,0,224,1,224,1,192,3,192,3,128,7,128, + 7,128,7,0,15,0,14,0,30,0,28,0,60,0,60,0, + 11,17,34,13,1,0,31,0,127,192,241,224,224,224,224,224, + 224,224,113,192,63,128,63,128,113,192,224,224,224,224,224,224, + 224,224,241,224,127,192,31,0,11,17,34,13,1,0,31,0, + 63,128,113,192,224,192,224,224,224,224,224,224,241,224,127,224, + 62,224,0,224,0,224,224,224,225,192,113,192,127,128,30,0 + }; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=23 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 + Font Bounding box w=34 h=31 x=-2 y=-6 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =19 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub17r[3222] U8G_SECTION(".progmem.u8g_font_fub17r") = { + 0,34,31,254,250,17,4,8,8,209,32,127,251,19,250,17, + 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, + 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, + 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, + 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, + 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, + 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, + 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, + 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, + 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, + 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, + 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, + 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, + 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, + 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, + 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, + 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, + 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, + 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, + 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, + 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, + 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, + 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, + 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, + 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, + 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, + 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, + 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, + 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, + 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, + 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, + 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, + 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, + 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, + 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, + 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, + 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, + 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, + 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, + 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, + 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, + 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, + 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, + 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, + 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, + 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, + 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, + 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, + 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, + 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, + 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, + 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, + 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, + 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, + 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, + 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, + 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, + 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, + 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, + 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, + 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, + 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, + 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, + 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, + 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, + 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, + 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, + 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, + 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, + 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, + 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, + 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, + 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, + 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, + 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, + 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, + 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, + 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, + 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, + 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, + 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, + 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, + 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, + 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, + 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, + 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, + 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, + 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, + 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, + 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, + 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, + 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, + 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, + 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, + 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, + 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, + 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, + 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, + 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, + 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, + 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, + 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, + 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, + 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, + 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, + 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, + 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, + 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, + 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, + 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, + 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, + 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, + 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, + 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, + 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, + 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, + 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, + 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, + 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, + 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, + 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, + 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, + 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, + 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, + 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, + 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, + 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, + 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, + 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, + 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, + 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, + 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, + 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, + 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, + 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, + 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, + 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, + 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, + 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, + 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, + 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, + 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, + 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, + 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, + 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, + 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, + 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, + 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, + 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, + 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, + 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, + 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, + 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, + 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, + 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, + 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, + 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, + 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, + 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, + 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, + 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, + 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, + 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, + 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, + 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, + 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, + 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, + 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, + 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, + 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, + 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, + 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, + 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, + 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, + 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, + 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, + 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, + 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, + 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, + 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, + 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, + 48,127,240,227,192,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 20, '1' Height: 20 + Calculated Max Values w=27 h=29 x= 7 y=18 dx=28 dy= 0 ascent=29 len=100 + Font Bounding box w=40 h=36 x=-2 y=-7 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-5 + X Font ascent =20 descent=-5 + Max Font ascent =29 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub20[8916] U8G_SECTION(".progmem.u8g_font_fub20") = { + 0,40,36,254,249,20,4,242,11,37,32,255,251,29,249,20, + 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, + 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, + 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, + 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, + 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, + 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, + 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, + 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, + 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, + 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, + 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, + 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, + 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, + 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, + 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, + 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, + 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, + 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, + 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, + 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, + 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, + 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, + 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, + 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, + 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, + 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, + 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, + 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, + 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, + 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, + 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, + 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, + 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, + 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, + 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, + 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, + 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, + 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, + 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, + 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, + 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, + 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, + 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, + 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, + 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, + 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, + 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, + 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, + 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, + 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, + 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, + 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, + 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, + 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, + 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, + 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, + 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, + 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, + 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, + 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, + 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, + 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, + 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, + 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, + 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, + 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, + 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, + 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, + 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, + 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, + 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, + 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, + 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, + 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, + 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, + 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, + 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, + 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, + 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, + 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, + 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, + 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, + 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, + 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, + 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, + 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, + 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, + 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, + 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, + 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, + 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, + 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, + 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, + 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, + 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, + 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, + 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, + 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, + 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, + 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, + 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, + 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, + 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, + 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, + 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, + 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, + 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, + 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, + 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, + 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, + 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, + 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, + 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, + 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, + 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, + 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, + 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, + 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, + 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, + 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, + 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, + 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, + 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, + 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, + 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, + 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, + 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, + 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, + 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, + 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, + 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, + 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, + 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, + 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, + 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, + 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, + 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, + 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, + 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, + 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, + 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, + 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, + 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, + 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, + 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, + 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, + 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, + 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, + 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, + 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, + 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, + 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, + 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, + 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, + 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, + 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, + 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, + 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, + 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, + 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, + 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, + 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, + 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, + 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, + 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, + 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, + 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, + 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, + 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, + 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, + 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, + 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, + 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, + 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, + 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, + 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, + 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, + 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, + 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, + 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, + 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, + 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, + 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, + 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, + 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, + 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, + 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, + 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, + 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, + 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, + 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, + 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, + 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, + 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, + 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, + 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, + 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, + 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, + 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, + 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, + 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, + 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, + 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, + 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, + 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, + 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, + 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, + 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, + 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, + 156,127,248,225,240,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,0,0,0,8,0,0,4,19,19,10, + 3,251,240,240,240,0,0,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,12,20,40,16,2,253,0,192,0,192,0, + 128,15,128,63,224,125,224,115,240,243,240,242,0,242,0,246, + 0,244,0,244,240,124,240,121,224,63,224,31,128,24,0,16, + 0,48,0,14,20,40,15,1,0,7,224,31,248,62,120,60, + 60,60,60,60,0,60,0,60,0,255,128,255,128,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,255,252,255, + 252,15,14,28,17,1,5,192,6,99,204,55,248,28,48,24, + 24,48,12,48,12,48,12,48,12,24,24,28,48,63,248,99, + 204,192,6,15,20,40,17,1,0,240,30,240,62,120,60,120, + 124,56,120,60,120,252,254,254,254,31,224,15,224,15,192,255, + 254,255,254,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,1,25,25,9,4,251,128,128,128,128,128,128,128,128,128, + 128,128,0,0,0,128,128,128,128,128,128,128,128,128,128,128, + 11,24,48,13,1,252,31,128,63,192,121,192,240,64,240,0, + 248,0,124,0,63,0,63,128,127,192,243,224,225,224,225,192, + 243,192,255,128,126,0,31,128,7,192,3,224,1,224,1,192, + 195,192,255,128,127,0,9,3,6,9,0,17,227,128,227,128, + 227,128,20,20,60,24,2,0,1,248,0,7,254,0,31,15, + 128,60,3,192,49,252,192,99,254,224,103,158,96,199,15,48, + 207,0,48,207,0,48,207,0,48,207,15,48,199,14,48,103, + 158,96,99,252,96,49,248,192,56,1,192,30,7,128,7,254, + 0,1,248,0,9,13,26,11,1,7,62,0,127,128,99,128, + 3,128,63,128,115,128,227,128,227,128,255,128,125,128,0,0, + 0,0,255,128,14,11,22,16,1,2,30,60,28,56,60,120, + 120,240,120,240,241,224,120,240,56,240,60,120,28,56,30,60, + 15,6,12,17,1,6,255,254,255,254,0,6,0,6,0,6, + 0,6,255,20,20,60,24,2,0,1,248,0,7,254,0,31, + 15,128,60,3,192,51,252,192,99,254,224,99,14,96,195,6, + 48,195,28,48,195,248,48,195,252,48,195,12,48,195,14,48, + 99,6,96,99,6,96,51,6,192,56,1,192,30,7,128,7, + 254,0,1,248,0,9,2,4,9,0,18,255,128,255,128,6, + 6,6,8,1,14,120,204,132,132,204,120,16,16,32,26,5, + 0,1,128,1,128,1,128,1,128,255,255,255,255,1,128,1, + 128,1,128,1,128,1,128,0,0,0,0,0,0,255,255,255, + 255,9,11,22,11,1,9,62,0,127,0,227,128,3,128,7, + 0,15,0,30,0,56,0,112,0,255,0,255,0,8,11,11, + 10,1,9,60,254,231,7,30,30,7,7,231,254,124,6,5, + 5,6,1,16,60,56,112,96,192,255,13,24,48,15,1,252, + 31,248,62,96,126,96,254,96,254,96,254,96,254,96,126,96, + 126,96,30,96,6,96,6,96,6,96,6,96,6,96,6,96, + 6,96,6,96,6,96,6,96,6,96,6,96,6,96,6,96, + 4,4,4,8,2,8,240,240,240,240,7,6,6,7,1,249, + 32,60,14,6,254,252,5,11,11,8,2,9,56,248,248,56, + 56,56,56,56,56,56,56,10,13,26,12,1,7,30,0,127, + 128,115,128,225,192,225,192,225,192,225,192,99,128,127,128,30, + 0,0,0,0,0,255,192,13,11,22,16,2,2,225,192,241, + 224,112,224,120,240,120,240,60,120,120,240,120,240,113,224,241, + 224,225,192,19,20,60,22,2,0,56,7,0,248,14,0,184, + 14,0,56,28,0,56,28,0,56,56,0,56,48,0,56,112, + 0,56,224,0,56,227,192,57,195,192,1,199,192,3,143,192, + 3,13,192,7,29,192,14,57,192,14,63,224,28,63,224,28, + 1,192,56,1,192,19,20,60,21,1,0,56,6,0,248,14, + 0,184,12,0,56,28,0,56,24,0,56,48,0,56,112,0, + 56,96,0,56,224,0,56,199,128,57,207,224,3,156,224,3, + 0,224,7,1,224,6,1,192,14,3,128,28,7,0,28,30, + 0,56,31,224,48,31,224,20,20,60,22,1,0,124,1,192, + 230,3,128,231,3,0,7,7,0,30,14,0,30,14,0,7, + 28,0,231,24,0,231,56,0,126,49,224,24,115,224,0,227, + 224,0,199,224,1,198,224,1,140,224,3,156,224,3,31,240, + 7,31,240,14,0,224,12,0,224,12,19,38,15,1,251,7, + 128,7,128,7,128,0,0,0,0,7,0,7,0,7,0,14, + 0,28,0,56,0,112,0,240,0,240,0,240,112,240,112,127, + 240,63,224,15,128,19,28,84,19,0,0,7,0,0,3,128, + 0,1,128,0,1,192,0,0,192,0,0,96,0,0,0,0, + 0,0,0,1,240,0,1,240,0,1,248,0,3,248,0,3, + 248,0,3,188,0,7,188,0,7,156,0,15,30,0,15,30, + 0,15,30,0,30,15,0,30,15,0,31,255,128,63,255,128, + 63,255,128,56,3,192,120,3,192,120,3,192,240,1,224,19, + 28,84,19,0,0,0,28,0,0,56,0,0,56,0,0,112, + 0,0,96,0,0,192,0,0,0,0,0,0,0,1,240,0, + 1,240,0,1,248,0,3,248,0,3,248,0,3,188,0,7, + 188,0,7,156,0,15,30,0,15,30,0,15,30,0,30,15, + 0,30,15,0,31,255,128,63,255,128,63,255,128,56,3,192, + 120,3,192,120,3,192,240,1,224,19,28,84,19,0,0,0, + 224,0,1,240,0,1,240,0,3,184,0,3,24,0,6,12, + 0,0,0,0,0,0,0,1,240,0,1,240,0,1,248,0, + 3,248,0,3,248,0,3,188,0,7,188,0,7,156,0,15, + 30,0,15,30,0,15,30,0,30,15,0,30,15,0,31,255, + 128,63,255,128,63,255,128,56,3,192,120,3,192,120,3,192, + 240,1,224,19,26,78,19,0,0,1,204,0,3,248,0,6, + 120,0,0,0,0,0,0,0,0,0,0,1,240,0,1,240, + 0,1,248,0,3,248,0,3,248,0,3,188,0,7,188,0, + 7,156,0,15,30,0,15,30,0,15,30,0,30,15,0,30, + 15,0,31,255,128,63,255,128,63,255,128,56,3,192,120,3, + 192,120,3,192,240,1,224,19,26,78,19,0,0,7,28,0, + 7,28,0,7,28,0,0,0,0,0,0,0,0,0,0,1, + 240,0,1,240,0,3,248,0,3,248,0,3,248,0,7,188, + 0,7,188,0,7,60,0,15,30,0,15,30,0,30,31,0, + 30,15,0,30,15,0,63,255,128,63,255,128,63,255,128,120, + 3,192,120,3,192,112,3,192,240,1,224,19,29,87,19,0, + 0,0,224,0,1,240,0,3,24,0,3,24,0,3,24,0, + 1,240,0,0,224,0,0,0,0,0,0,0,1,240,0,1, + 240,0,3,240,0,3,248,0,3,248,0,7,188,0,7,188, + 0,7,60,0,15,30,0,15,30,0,30,30,0,30,15,0, + 30,15,0,63,255,128,63,255,128,63,255,128,120,3,192,120, + 3,192,240,3,192,240,1,224,25,20,80,26,0,0,0,63, + 255,128,0,63,255,128,0,127,0,0,0,127,0,0,0,255, + 0,0,1,239,0,0,1,239,0,0,3,207,0,0,3,207, + 255,128,7,143,255,128,7,143,255,128,15,15,0,0,15,255, + 0,0,31,255,0,0,31,255,0,0,60,15,0,0,56,15, + 0,0,120,15,255,128,112,15,255,128,240,15,255,128,17,27, + 81,19,1,249,7,240,0,15,252,0,63,254,0,60,31,0, + 120,31,0,112,15,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,15,128,112,15, + 0,120,31,0,60,63,0,63,254,0,15,252,0,3,240,0, + 0,128,0,0,224,0,0,240,0,0,48,0,0,48,0,3, + 240,0,0,128,0,13,28,56,17,2,0,60,0,28,0,14, + 0,6,0,7,0,3,0,0,0,0,0,255,248,255,248,255, + 248,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, + 248,240,0,240,0,240,0,240,0,240,0,240,0,255,248,255, + 248,255,248,13,28,56,17,2,0,1,224,1,192,3,128,3, + 0,6,0,6,0,0,0,0,0,255,248,255,248,255,248,240, + 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,240, + 0,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, + 248,13,28,56,17,2,0,15,0,15,128,13,128,29,192,24, + 192,48,96,0,0,0,0,255,248,255,248,255,248,240,0,240, + 0,240,0,240,0,240,0,255,248,255,248,255,248,240,0,240, + 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,13, + 26,52,17,2,0,56,224,56,224,56,224,0,0,0,0,0, + 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, + 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, + 0,240,0,255,248,255,248,255,248,7,28,28,8,255,0,240, + 112,56,24,28,12,0,0,30,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,30,6,28,28,7,2, + 0,28,56,48,112,96,192,0,0,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,8,28,28, + 8,0,0,60,60,126,102,198,195,0,0,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,9, + 26,52,9,0,0,227,128,227,128,227,128,0,0,0,0,0, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,18,20,60,19,0,0,63, + 224,0,63,252,0,63,254,0,60,31,0,60,15,128,60,7, + 128,60,3,192,60,3,192,60,3,192,255,195,192,255,195,192, + 60,3,192,60,3,192,60,3,192,60,7,128,60,15,128,60, + 31,0,63,254,0,63,252,0,63,224,0,17,26,78,21,2, + 0,7,152,0,7,248,0,12,240,0,0,0,0,0,0,0, + 0,0,0,252,7,128,252,7,128,254,7,128,254,7,128,255, + 7,128,255,7,128,247,135,128,247,135,128,243,199,128,243,199, + 128,241,231,128,241,231,128,240,247,128,240,247,128,240,127,128, + 240,127,128,240,63,128,240,63,128,240,31,128,240,31,128,18, + 28,84,20,1,0,14,0,0,7,0,0,3,128,0,1,128, + 0,0,192,0,0,0,0,0,0,0,0,0,0,3,240,0, + 15,252,0,31,254,0,62,31,0,120,7,128,120,7,128,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,120,7,128,120,7,128,62,31,0, + 31,254,0,15,252,0,3,240,0,18,28,84,20,1,0,0, + 60,0,0,56,0,0,112,0,0,96,0,0,192,0,0,0, + 0,0,0,0,0,0,0,3,240,0,15,252,0,31,254,0, + 62,31,0,120,7,128,120,7,128,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,120,7,128,120,7,128,62,31,0,31,254,0,15,252,0, + 3,240,0,18,28,84,20,1,0,1,224,0,3,240,0,3, + 240,0,7,56,0,6,24,0,0,0,0,0,0,0,0,0, + 0,3,240,0,15,252,0,31,254,0,62,31,0,120,7,128, + 120,7,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,120,7,128,120,7, + 128,62,31,0,31,254,0,15,252,0,3,240,0,18,27,81, + 20,1,0,0,8,0,7,248,0,7,248,0,4,0,0,0, + 0,0,0,0,0,0,0,0,3,240,0,15,252,0,31,254, + 0,62,31,0,120,7,128,120,7,128,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,120,7,128,120,7,128,62,31,0,31,254,0,15,252, + 0,3,240,0,18,27,81,20,1,0,7,28,0,7,28,0, + 7,28,0,0,0,0,0,0,0,0,0,0,0,0,0,3, + 240,0,15,252,0,31,254,0,62,31,0,120,7,128,120,7, + 128,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,120,7,128,120,7,128,62, + 31,0,31,254,0,15,252,0,3,240,0,15,14,28,27,6, + 2,192,6,96,12,48,24,24,48,12,96,6,192,3,128,3, + 128,6,192,12,96,24,48,48,24,96,12,64,4,20,22,66, + 20,0,255,0,0,32,1,252,112,7,255,224,15,255,192,31, + 15,128,60,3,192,60,7,192,120,15,224,120,29,224,120,57, + 224,120,113,224,120,225,224,121,193,224,123,129,224,127,1,224, + 62,3,192,60,3,192,31,15,128,63,255,0,127,254,0,227, + 248,0,64,0,0,17,28,84,21,2,0,30,0,0,14,0, + 0,7,0,0,3,128,0,1,128,0,0,0,0,0,0,0, + 0,0,0,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, + 128,240,7,128,240,7,128,240,7,128,240,7,0,240,15,0, + 120,15,0,124,30,0,63,254,0,31,248,0,7,224,0,17, + 28,84,21,2,0,0,60,0,0,120,0,0,112,0,0,224, + 0,1,192,0,0,0,0,0,0,0,0,0,0,240,7,128, + 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, + 128,240,7,128,240,7,0,240,15,0,120,15,0,124,30,0, + 63,254,0,31,248,0,7,224,0,17,28,84,21,2,0,3, + 192,0,3,224,0,7,224,0,14,112,0,12,56,0,0,0, + 0,0,0,0,0,0,0,240,7,128,240,7,128,240,7,128, + 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, + 0,240,15,0,120,15,0,124,30,0,63,254,0,31,248,0, + 7,224,0,17,27,81,20,2,0,14,56,0,14,56,0,14, + 56,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7, + 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, + 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,0,240,15,0,120,15,0,124,30, + 0,63,254,0,31,248,0,7,224,0,16,27,54,17,1,0, + 0,112,0,224,0,192,1,128,0,0,0,0,0,0,240,31, + 248,30,120,30,124,60,60,60,60,120,30,120,30,240,15,240, + 15,224,7,224,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,14,20,40,17,1,0,240,0,240,0, + 240,0,240,0,255,192,255,240,255,248,240,124,240,60,240,60, + 240,60,240,124,255,248,255,240,255,192,240,0,240,0,240,0, + 240,0,240,0,14,20,40,16,1,0,31,128,127,224,121,240, + 240,240,240,240,240,240,241,224,243,192,247,128,247,128,247,128, + 243,224,241,240,240,248,240,60,240,60,255,60,255,188,247,248, + 243,240,12,22,44,15,1,0,120,0,56,0,28,0,12,0, + 6,0,2,0,0,0,0,0,31,128,63,224,121,240,112,240, + 0,240,63,240,127,240,248,240,240,240,240,240,240,240,251,240, + 127,112,62,112,12,22,44,15,1,0,1,224,1,192,3,128, + 3,0,7,0,6,0,0,0,0,0,31,128,63,224,121,240, + 112,240,0,240,31,240,127,240,120,240,240,240,240,240,240,240, + 251,240,127,112,62,112,12,22,44,15,1,0,15,0,15,128, + 31,128,25,192,56,192,48,96,0,0,0,0,31,128,63,224, + 121,240,112,240,0,240,63,240,127,240,248,240,240,240,240,240, + 240,240,251,240,127,112,62,112,12,20,40,15,1,0,31,192, + 63,192,48,0,0,0,0,0,0,0,31,128,63,224,121,240, + 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, + 251,240,127,112,62,112,12,21,42,15,1,0,56,224,56,224, + 56,224,0,0,0,0,0,0,0,0,31,128,63,224,121,240, + 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, + 251,240,127,112,62,112,12,23,46,15,1,0,7,0,31,128, + 24,192,24,192,31,128,15,0,0,0,0,0,0,0,31,128, + 63,224,121,240,112,240,0,240,63,240,127,240,248,240,240,240, + 240,240,240,240,251,240,127,112,62,112,22,14,42,24,1,0, + 15,135,192,63,207,240,124,252,248,112,120,56,0,120,56,31, + 255,252,127,255,252,120,120,0,240,120,0,240,120,0,240,252, + 56,249,222,248,127,143,240,30,7,224,12,21,42,14,1,249, + 31,128,63,224,121,224,112,224,240,240,240,0,240,0,240,0, + 240,0,240,240,240,224,121,224,63,192,31,128,4,0,7,0, + 7,128,0,192,0,192,31,128,4,0,13,22,44,15,1,0, + 56,0,56,0,28,0,12,0,6,0,2,0,0,0,0,0, + 15,128,63,224,121,240,112,240,240,240,255,240,255,248,240,0, + 240,0,240,240,112,240,121,240,63,224,31,128,13,22,44,15, + 1,0,1,224,1,192,3,128,3,0,6,0,6,0,0,0, + 0,0,15,128,63,224,121,240,112,240,240,240,255,240,255,248, + 240,0,240,0,240,240,112,240,121,240,63,224,31,128,13,22, + 44,15,1,0,15,0,15,0,31,128,25,128,56,192,48,192, + 0,0,0,0,15,128,63,224,121,240,112,240,240,240,255,240, + 255,248,240,0,240,0,240,240,112,240,121,240,63,224,31,128, + 13,21,42,15,1,0,56,224,56,224,56,224,0,0,0,0, + 0,0,0,0,15,128,63,224,121,240,112,112,240,112,255,240, + 255,248,240,0,240,0,240,112,112,112,125,240,63,224,31,128, + 6,22,22,7,0,0,224,240,112,56,24,12,0,0,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,6,22,22,6, + 2,0,60,56,112,96,192,192,0,0,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,9,22,44,7,255,0,30,0, + 62,0,63,0,115,0,99,128,193,128,0,0,0,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,9,20,40,7,255,0, + 227,128,227,128,227,128,0,0,0,0,0,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,14,20,40,16,1,0,14,24, + 15,240,3,192,15,192,60,224,48,240,15,240,63,248,124,248, + 120,60,240,60,240,60,240,60,240,60,240,60,240,60,120,56, + 124,248,63,240,15,192,13,20,40,16,2,0,30,96,63,192, + 55,128,0,0,0,0,0,0,247,192,255,240,253,240,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, + 240,120,240,120,14,22,44,16,1,0,60,0,28,0,14,0, + 6,0,3,0,3,0,0,0,0,0,15,192,63,224,124,240, + 120,120,240,60,240,60,240,60,240,60,240,60,240,60,120,120, + 124,248,63,240,15,192,14,22,44,16,1,0,0,240,0,224, + 1,192,1,128,3,0,3,0,0,0,0,0,15,192,63,224, + 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, + 120,120,124,248,63,240,15,192,14,22,44,16,1,0,7,128, + 7,128,15,192,12,192,24,96,24,96,0,0,0,0,15,192, + 63,224,124,240,120,120,240,60,240,60,240,60,240,60,240,60, + 240,60,120,120,124,248,63,240,15,192,14,20,40,16,1,0, + 15,224,31,224,24,0,0,0,0,0,0,0,15,192,63,224, + 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, + 120,120,124,248,63,240,15,192,14,21,42,16,1,0,28,224, + 28,224,28,224,0,0,0,0,0,0,0,0,15,192,63,224, + 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, + 120,120,124,248,63,240,15,192,16,12,24,26,5,2,1,192, + 3,192,1,192,0,0,0,0,255,255,255,255,0,0,0,0, + 1,192,3,192,1,192,14,18,36,16,1,254,0,8,0,28, + 15,248,63,240,124,240,120,248,241,252,241,188,243,60,246,60, + 254,60,252,60,120,120,60,248,127,240,239,192,192,0,128,0, + 13,22,44,16,2,0,56,0,60,0,28,0,14,0,6,0, + 3,0,0,0,0,0,240,120,240,120,240,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,248,249,248,127,248, + 62,120,13,22,44,16,2,0,1,224,1,192,3,128,3,0, + 7,0,6,0,0,0,0,0,240,120,240,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,248,249,248, + 127,248,62,120,13,22,44,16,2,0,15,0,15,128,31,128, + 29,192,56,192,48,96,0,0,0,0,240,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, + 249,248,127,248,62,120,13,21,42,16,2,0,56,224,56,224, + 56,224,0,0,0,0,0,0,0,0,240,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, + 249,248,127,248,62,120,14,27,54,15,0,251,0,112,0,240, + 0,224,0,192,1,128,0,0,0,0,0,0,120,28,120,60, + 60,60,60,56,60,120,30,120,30,112,14,240,15,240,15,224, + 7,224,7,224,3,192,3,192,3,128,39,128,255,128,127,0, + 62,0,14,25,50,17,2,251,240,0,240,0,240,0,240,0, + 240,0,240,0,247,192,255,240,253,240,248,120,240,56,240,60, + 240,60,240,60,240,60,240,120,240,120,253,240,255,240,247,192, + 240,0,240,0,240,0,240,0,240,0,15,26,52,15,0,251, + 28,112,28,112,28,112,0,0,0,0,0,0,0,0,248,30, + 120,60,120,60,60,56,60,120,60,120,30,112,30,240,15,240, + 15,224,15,224,7,224,7,192,3,192,7,128,7,128,7,128, + 15,0,15,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 20 + Calculated Max Values w=16 h=21 x= 5 y= 9 dx=26 dy= 0 ascent=20 len=40 + Font Bounding box w=40 h=36 x=-2 y=-7 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =20 descent= 0 + X Font ascent =20 descent= 0 + Max Font ascent =20 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub20n[583] U8G_SECTION(".progmem.u8g_font_fub20n") = { + 0,40,36,254,249,20,0,0,0,0,42,57,0,20,252,20, + 0,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, + 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, + 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, + 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, + 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, + 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, + 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, + 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, + 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, + 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, + 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, + 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, + 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, + 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, + 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, + 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, + 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, + 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, + 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, + 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, + 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, + 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, + 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, + 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, + 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, + 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, + 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, + 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, + 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, + 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, + 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, + 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, + 240,127,224,63,192,15,128}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 20, '1' Height: 20 + Calculated Max Values w=27 h=29 x= 7 y=16 dx=28 dy= 0 ascent=22 len=100 + Font Bounding box w=40 h=36 x=-2 y=-7 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-5 + X Font ascent =20 descent=-5 + Max Font ascent =22 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub20r[4022] U8G_SECTION(".progmem.u8g_font_fub20r") = { + 0,40,36,254,249,20,4,242,11,37,32,127,251,22,249,20, + 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, + 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, + 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, + 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, + 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, + 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, + 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, + 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, + 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, + 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, + 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, + 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, + 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, + 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, + 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, + 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, + 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, + 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, + 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, + 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, + 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, + 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, + 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, + 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, + 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, + 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, + 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, + 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, + 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, + 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, + 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, + 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, + 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, + 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, + 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, + 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, + 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, + 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, + 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, + 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, + 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, + 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, + 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, + 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, + 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, + 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, + 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, + 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, + 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, + 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, + 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, + 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, + 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, + 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, + 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, + 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, + 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, + 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, + 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, + 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, + 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, + 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, + 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, + 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, + 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, + 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, + 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, + 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, + 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, + 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, + 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, + 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, + 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, + 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, + 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, + 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, + 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, + 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, + 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, + 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, + 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, + 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, + 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, + 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, + 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, + 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, + 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, + 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, + 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, + 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, + 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, + 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, + 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, + 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, + 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, + 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, + 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, + 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, + 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, + 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, + 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, + 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, + 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, + 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, + 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, + 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, + 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, + 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, + 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, + 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, + 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, + 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, + 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, + 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, + 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, + 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, + 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, + 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, + 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, + 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, + 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, + 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, + 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, + 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, + 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, + 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, + 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, + 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, + 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, + 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, + 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, + 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, + 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, + 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, + 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, + 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, + 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, + 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, + 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, + 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, + 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, + 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, + 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, + 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, + 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, + 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, + 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, + 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, + 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, + 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, + 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, + 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, + 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, + 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, + 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, + 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, + 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, + 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, + 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, + 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, + 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, + 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, + 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, + 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, + 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, + 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, + 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, + 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, + 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, + 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, + 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, + 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, + 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, + 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, + 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, + 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, + 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, + 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, + 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, + 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, + 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, + 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, + 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, + 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, + 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, + 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, + 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, + 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, + 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, + 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, + 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, + 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, + 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, + 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, + 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, + 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, + 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, + 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, + 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, + 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, + 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, + 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, + 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, + 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, + 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, + 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, + 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, + 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, + 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, + 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, + 156,127,248,225,240,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 25, '1' Height: 25 + Calculated Max Values w=34 h=37 x= 8 y=22 dx=35 dy= 0 ascent=37 len=160 + Font Bounding box w=50 h=46 x=-2 y=-9 + Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =37 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub25[12908] U8G_SECTION(".progmem.u8g_font_fub25") = { + 0,50,46,254,247,25,7,111,16,148,32,255,249,37,247,25, + 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, + 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, + 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, + 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, + 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, + 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, + 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, + 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, + 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, + 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, + 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, + 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, + 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, + 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, + 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, + 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, + 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, + 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, + 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, + 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, + 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, + 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, + 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, + 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, + 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, + 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, + 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, + 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, + 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, + 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, + 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, + 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, + 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, + 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, + 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, + 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, + 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, + 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, + 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, + 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, + 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, + 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, + 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, + 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, + 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, + 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, + 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, + 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, + 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, + 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, + 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, + 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, + 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, + 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, + 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, + 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, + 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, + 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, + 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, + 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, + 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, + 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, + 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, + 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, + 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, + 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, + 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, + 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, + 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, + 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, + 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, + 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, + 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, + 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, + 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, + 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, + 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, + 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, + 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, + 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, + 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, + 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, + 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, + 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, + 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, + 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, + 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, + 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, + 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, + 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, + 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, + 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, + 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, + 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, + 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, + 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, + 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, + 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, + 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, + 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, + 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, + 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, + 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, + 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, + 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, + 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, + 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, + 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, + 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, + 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, + 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, + 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, + 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, + 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, + 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, + 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, + 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, + 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, + 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, + 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, + 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, + 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, + 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, + 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, + 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, + 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, + 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, + 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, + 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, + 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, + 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, + 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, + 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, + 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, + 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, + 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, + 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, + 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, + 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, + 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, + 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, + 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, + 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, + 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, + 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, + 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, + 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, + 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, + 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, + 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, + 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, + 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, + 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, + 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, + 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, + 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, + 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, + 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, + 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, + 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, + 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, + 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, + 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, + 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, + 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, + 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, + 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, + 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, + 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, + 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, + 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, + 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, + 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, + 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, + 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, + 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, + 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, + 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, + 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, + 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, + 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, + 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, + 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, + 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, + 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, + 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, + 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, + 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, + 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, + 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, + 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, + 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, + 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, + 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, + 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, + 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, + 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, + 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, + 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, + 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, + 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, + 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, + 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, + 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, + 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, + 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, + 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, + 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, + 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, + 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, + 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, + 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, + 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, + 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, + 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, + 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, + 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, + 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, + 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, + 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, + 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, + 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, + 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, + 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, + 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, + 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, + 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, + 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, + 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, + 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, + 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, + 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, + 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, + 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, + 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, + 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, + 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, + 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, + 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, + 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, + 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, + 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, + 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, + 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, + 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, + 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, + 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, + 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, + 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, + 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, + 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, + 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, + 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, + 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, + 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, + 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, + 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, + 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, + 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, + 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, + 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, + 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, + 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, + 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, + 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, + 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, + 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, + 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, + 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, + 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, + 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, + 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, + 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, + 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, + 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, + 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, + 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, + 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, + 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, + 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, + 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, + 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, + 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, + 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, + 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, + 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, + 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, + 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, + 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0,0,0,10,0,0,5,25,25,13,4,249,248,248,248,248, + 0,0,0,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,15,26,52,19,2,252,0,48,0,48,0, + 48,0,32,7,224,31,248,63,252,124,252,120,254,248,254,249, + 128,249,128,249,128,249,0,251,0,251,62,251,62,126,62,126, + 124,63,252,31,248,15,224,12,0,24,0,24,0,24,0,17, + 25,75,20,2,1,7,254,0,15,255,0,31,255,0,31,15, + 128,62,15,128,62,0,0,62,0,0,62,0,0,62,0,0, + 255,240,0,255,240,0,255,240,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,255,255,128,255,255,128,255,255,128, + 18,19,57,20,1,6,64,0,128,224,1,192,115,227,128,63, + 255,0,30,30,0,28,14,0,24,6,0,48,3,0,48,3, + 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, + 30,30,0,63,255,0,115,243,128,224,1,192,64,0,128,19, + 25,75,21,1,0,248,3,224,248,7,224,124,7,192,124,7, + 192,62,15,128,62,15,128,31,31,0,255,31,224,255,191,224, + 15,190,0,7,252,0,7,252,0,3,248,0,255,255,224,255, + 255,224,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,14,31,62,16,1,251,31,240,63, + 248,127,248,124,24,248,0,248,0,124,0,126,0,63,128,31, + 192,31,240,63,248,124,248,248,124,240,60,240,120,240,120,253, + 240,127,224,63,192,31,224,7,240,1,248,0,252,0,124,0, + 124,128,248,225,248,255,240,255,224,63,128,11,4,8,11,0, + 22,241,224,241,224,241,224,241,224,25,25,100,29,2,1,0, + 255,192,0,3,255,224,0,15,0,120,0,30,0,60,0,24, + 63,14,0,56,127,134,0,112,255,199,0,97,227,195,0,225, + 193,227,128,195,193,225,128,195,192,1,128,195,192,1,128,195, + 192,1,128,195,192,1,128,195,193,225,128,227,193,227,128,97, + 227,195,0,113,255,195,0,48,255,135,0,56,62,14,0,28, + 0,28,0,15,0,120,0,7,193,240,0,1,255,224,0,0, + 127,0,0,12,17,34,14,1,8,15,128,63,192,56,224,112, + 224,0,224,15,224,63,224,120,224,112,224,112,224,121,224,63, + 224,30,96,0,0,0,0,255,240,255,240,17,14,42,21,2, + 2,31,15,128,30,31,0,62,31,0,60,62,0,124,62,0, + 124,124,0,248,124,0,248,124,0,124,124,0,124,62,0,60, + 62,0,62,31,0,30,15,0,31,15,128,18,8,24,21,2, + 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,255,25,25,100,29,2,1, + 0,255,192,0,3,255,224,0,15,0,120,0,30,0,60,0, + 25,255,142,0,57,255,198,0,113,255,231,0,97,193,227,0, + 225,192,227,128,193,193,225,128,193,255,129,128,193,255,129,128, + 193,255,193,128,193,193,193,128,193,193,193,128,225,192,227,128, + 97,192,227,0,113,192,227,0,49,192,231,0,56,0,14,0, + 28,0,28,0,15,0,120,0,7,193,240,0,1,255,224,0, + 0,127,0,0,11,3,6,11,0,22,255,224,255,224,255,224, + 7,7,7,11,2,18,56,196,130,130,130,196,120,20,21,63, + 34,7,0,0,96,0,0,96,0,0,96,0,0,96,0,0, + 96,0,0,96,0,255,255,240,255,255,240,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,240,255, + 255,240,11,13,26,13,1,13,63,128,127,192,241,224,1,224, + 1,224,3,192,7,192,15,128,30,0,124,0,240,0,255,192, + 255,192,11,14,28,13,1,12,127,128,255,128,227,192,3,192, + 7,192,31,128,31,128,3,192,1,224,1,224,225,224,243,192, + 127,128,63,0,7,7,7,8,2,21,62,60,56,120,112,224, + 192,255,16,31,62,19,2,250,15,255,63,255,127,24,255,24, + 255,24,255,24,255,24,255,24,255,24,255,24,127,24,63,24, + 31,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, + 3,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, + 3,24,3,24,3,24,5,5,5,10,3,10,248,248,248,248, + 248,9,8,16,9,1,247,48,0,48,0,63,0,7,128,3, + 128,3,128,255,0,254,0,6,14,14,9,1,12,28,124,252, + 220,28,28,28,28,28,28,28,28,28,28,12,17,34,14,1, + 8,31,128,63,192,121,224,112,224,224,112,224,112,224,112,224, + 112,224,112,112,224,121,224,63,192,31,128,0,0,0,0,255, + 240,255,240,16,14,28,21,2,2,240,120,248,124,124,60,124, + 62,62,30,62,31,31,31,31,31,62,31,62,30,124,62,124, + 60,248,124,240,120,25,26,104,27,1,0,28,0,120,0,124, + 0,112,0,252,0,240,0,156,0,224,0,28,1,192,0,28, + 1,192,0,28,3,128,0,28,7,128,0,28,7,0,0,28, + 14,0,0,28,14,0,0,28,28,0,0,28,28,30,0,28, + 56,30,0,0,120,62,0,0,112,126,0,0,224,126,0,0, + 224,238,0,1,193,206,0,1,193,206,0,3,131,142,0,7, + 3,255,128,7,3,255,128,14,0,14,0,14,0,14,0,28, + 0,14,0,25,26,104,27,1,0,28,0,112,0,124,0,224, + 0,252,0,224,0,220,1,192,0,28,3,192,0,28,3,128, + 0,28,7,0,0,28,7,0,0,28,14,0,0,28,14,0, + 0,28,28,0,0,28,56,0,0,28,56,124,0,28,113,255, + 0,0,115,199,128,0,227,199,128,0,192,7,128,1,192,15, + 128,3,128,15,0,3,128,30,0,7,0,60,0,6,0,248, + 0,14,1,240,0,12,3,192,0,28,3,255,0,24,3,255, + 0,25,25,100,27,1,1,127,128,60,0,255,192,56,0,227, + 192,112,0,3,192,112,0,31,128,224,0,31,129,224,0,3, + 193,192,0,1,227,192,0,225,227,128,0,227,231,128,0,127, + 207,0,0,63,14,30,0,0,30,62,0,0,28,62,0,0, + 60,126,0,0,56,110,0,0,120,238,0,0,241,206,0,0, + 241,206,0,1,227,142,0,1,227,255,128,3,195,255,128,3, + 128,14,0,7,128,14,0,15,0,14,0,16,25,50,18,1, + 249,3,224,3,224,3,224,3,224,0,0,0,0,0,0,1, + 192,1,192,1,192,3,192,7,128,15,0,30,0,60,0,124, + 0,248,0,248,0,248,0,248,14,248,31,124,62,63,254,31, + 248,7,224,23,35,105,24,1,0,3,192,0,3,192,0,1, + 224,0,0,224,0,0,112,0,0,48,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,124,0,0,252,0,0,254,0, + 0,254,0,1,254,0,1,255,0,3,255,0,3,207,0,3, + 207,128,7,207,128,7,135,192,7,135,192,15,135,192,15,3, + 224,31,3,224,31,3,240,31,255,240,63,255,240,63,255,248, + 127,255,248,124,0,248,124,0,252,248,0,124,248,0,126,240, + 0,62,23,35,105,24,1,0,0,15,0,0,15,0,0,30, + 0,0,28,0,0,56,0,0,48,0,0,112,0,0,0,0, + 0,0,0,0,0,0,0,124,0,0,252,0,0,254,0,0, + 254,0,1,254,0,1,255,0,3,255,0,3,207,0,3,207, + 128,7,207,128,7,135,192,7,135,192,15,135,192,15,3,224, + 31,3,224,31,3,240,31,255,240,63,255,240,63,255,248,127, + 255,248,124,0,248,124,0,252,248,0,124,248,0,126,240,0, + 62,23,35,105,24,1,0,0,252,0,0,252,0,0,254,0, + 1,206,0,1,199,0,3,135,0,3,3,128,0,0,0,0, + 0,0,0,0,0,0,124,0,0,252,0,0,254,0,0,254, + 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, + 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, + 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, + 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, + 23,34,102,24,1,0,0,1,128,1,255,0,3,255,0,3, + 254,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,124,0,0,252,0,0,254,0,0,254,0,1,254,0, + 1,255,0,3,255,0,3,207,0,3,207,128,7,207,128,7, + 135,192,7,135,192,15,135,192,15,3,224,31,3,224,31,3, + 240,31,255,240,63,255,240,63,255,248,127,255,248,124,0,248, + 124,0,252,248,0,124,248,0,126,240,0,62,23,34,102,25, + 1,0,3,199,128,3,199,128,3,199,128,3,199,128,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, + 0,124,0,0,254,0,0,254,0,1,255,0,1,255,0,1, + 239,0,3,239,128,3,239,128,3,199,128,7,199,192,7,199, + 192,15,131,224,15,131,224,15,131,224,31,1,240,31,255,240, + 31,255,240,63,255,248,63,255,248,124,0,252,124,0,124,124, + 0,124,248,0,62,248,0,62,23,37,111,24,1,0,0,120, + 0,0,252,0,1,206,0,1,134,0,1,134,0,1,206,0, + 0,252,0,0,120,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,124,0,0,252,0,0,252,0,0,254,0,1,254, + 0,1,255,0,3,255,0,3,207,0,3,207,128,7,207,128, + 7,135,192,7,135,192,15,135,192,15,3,224,31,3,224,31, + 3,224,31,255,240,63,255,240,63,255,248,127,255,248,124,0, + 248,124,0,252,248,0,124,248,0,126,240,0,62,32,25,100, + 34,1,0,0,7,255,254,0,15,255,254,0,15,255,254,0, + 31,240,0,0,31,240,0,0,63,240,0,0,61,240,0,0, + 121,240,0,0,249,240,0,0,241,240,0,1,241,255,254,1, + 225,255,254,3,225,255,254,3,193,255,254,7,193,240,0,7, + 255,240,0,15,255,240,0,15,255,240,0,31,255,240,0,30, + 1,240,0,62,1,240,0,60,1,255,255,124,1,255,255,248, + 1,255,255,248,1,255,255,21,33,99,25,2,249,3,255,0, + 15,255,192,31,255,224,63,255,240,62,3,240,124,1,240,120, + 1,248,120,0,248,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,248, + 120,1,248,124,1,248,124,3,240,63,7,240,31,255,224,31, + 255,192,7,255,128,1,252,0,0,96,0,0,120,0,0,126, + 0,0,15,0,0,7,0,0,7,0,1,254,0,1,252,0, + 17,35,105,21,2,0,30,0,0,15,0,0,7,0,0,7, + 128,0,3,128,0,1,192,0,0,192,0,0,0,0,0,0, + 0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,255,255,128,255,255,128,255,255,128,255,255,128,17, + 35,105,21,2,0,0,120,0,0,240,0,0,224,0,1,192, + 0,1,128,0,3,128,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,255,255,0,255,255,0,255,255,0,255,255,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,255,255,128,255,255,128,255,255,128,255,255,128,17,35, + 105,21,2,0,7,224,0,7,224,0,15,240,0,14,112,0, + 14,56,0,28,56,0,24,28,0,0,0,0,0,0,0,0, + 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,255,255,128,255,255,128,255,255,128,255,255,128,17,34,102, + 21,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 0,255,255,0,255,255,0,255,255,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,255,255,0,255, + 255,0,255,255,0,255,255,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,128, + 255,255,128,255,255,128,255,255,128,8,35,35,9,255,0,240, + 120,56,60,28,12,6,0,0,0,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, + 31,31,7,35,35,8,2,0,30,28,60,56,112,96,224,0, + 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,11,35,70,9,255, + 0,31,0,63,0,63,128,59,128,113,192,97,192,192,224,0, + 0,0,0,0,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,11,34,68,11,0,0,241,224,241, + 224,241,224,241,224,0,0,0,0,0,0,0,0,0,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,23,25,75,24,0,0,63,252,0,63,255,128,63,255,192, + 63,255,224,62,7,240,62,1,248,62,0,248,62,0,124,62, + 0,124,62,0,60,62,0,60,255,240,62,255,240,62,255,240, + 62,62,0,60,62,0,60,62,0,124,62,0,124,62,0,248, + 62,1,248,62,7,240,63,255,224,63,255,192,63,255,128,63, + 252,0,21,34,102,25,2,0,0,3,0,1,255,0,3,254, + 0,7,252,0,6,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,254,0,248,255,0,248,255,0,248,255,128,248,255, + 128,248,255,192,248,255,192,248,251,224,248,251,224,248,249,224, + 248,249,240,248,248,240,248,248,248,248,248,120,248,248,124,248, + 248,60,248,248,62,248,248,30,248,248,31,248,248,31,248,248, + 15,248,248,15,248,248,7,248,248,7,248,248,3,248,23,36, + 108,27,2,0,7,192,0,3,192,0,1,224,0,0,224,0, + 0,240,0,0,112,0,0,56,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, + 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, + 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, + 23,36,108,27,2,0,0,7,192,0,7,128,0,15,0,0, + 14,0,0,28,0,0,24,0,0,48,0,0,0,0,0,0, + 0,0,0,0,0,0,0,3,255,128,7,255,192,31,255,240, + 31,255,240,63,1,248,126,0,252,124,0,124,120,0,60,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,124,0,124,124,0,124, + 62,0,248,63,131,248,31,255,240,15,255,224,7,255,192,0, + 254,0,23,36,108,27,2,0,0,124,0,0,254,0,0,254, + 0,1,239,0,1,199,0,3,131,128,3,1,128,0,0,0, + 0,0,0,0,0,0,0,0,0,3,255,128,7,255,192,31, + 255,240,31,255,240,63,1,248,126,0,252,124,0,124,120,0, + 60,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,124,0,124,124, + 0,124,62,0,248,63,131,248,31,255,240,15,255,224,7,255, + 192,0,254,0,23,34,102,27,2,0,0,241,128,1,255,128, + 3,255,0,3,30,0,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, + 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, + 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, + 23,34,102,27,2,0,3,199,128,3,199,128,3,199,128,3, + 199,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,255,128,7,255,192,31,255,240,31,255,240,63,1,248, + 126,0,252,124,0,124,120,0,60,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,124,0,124,124,0,124,62,0,248,63,131,248, + 31,255,240,15,255,224,7,255,192,0,254,0,18,19,57,34, + 8,1,64,0,0,224,0,192,112,1,128,56,3,0,28,6, + 0,14,12,0,6,24,0,3,48,0,1,224,0,0,192,0, + 1,224,0,3,48,0,6,24,0,12,12,0,24,6,0,48, + 3,0,112,1,128,224,1,192,64,0,128,25,28,112,27,1, + 255,0,0,1,0,0,0,3,128,1,255,195,128,3,255,247, + 0,15,255,254,0,15,255,252,0,31,128,252,0,63,0,126, + 0,62,0,254,0,60,1,254,0,124,3,223,0,124,7,159, + 0,124,15,31,0,124,30,31,0,124,60,31,0,124,120,31, + 0,124,240,31,0,125,224,31,0,127,192,31,0,63,128,62, + 0,63,0,62,0,63,0,124,0,31,193,252,0,63,255,248, + 0,127,255,240,0,243,255,224,0,224,127,0,0,64,0,0, + 0,21,36,108,25,2,0,15,0,0,7,128,0,3,192,0, + 3,192,0,1,224,0,0,224,0,0,112,0,0,0,0,0, + 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,240,248,0,240,120,1, + 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, + 3,252,0,21,36,108,25,2,0,0,15,128,0,15,0,0, + 30,0,0,60,0,0,56,0,0,112,0,0,96,0,0,0, + 0,0,0,0,0,0,0,0,0,0,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,240,248,0,240, + 120,1,240,124,3,240,127,7,224,63,255,192,31,255,128,15, + 255,0,3,252,0,21,36,108,25,2,0,0,248,0,1,248, + 0,1,252,0,3,220,0,7,142,0,7,14,0,14,7,0, + 0,0,0,0,0,0,0,0,0,0,0,0,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,240,248, + 0,240,120,1,240,124,3,240,127,7,224,63,255,192,31,255, + 128,15,255,0,3,252,0,21,34,102,25,2,0,7,143,0, + 7,143,0,7,143,0,7,143,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,240,248,0,240,124,1, + 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, + 3,252,0,21,35,105,22,1,0,0,30,0,0,30,0,0, + 28,0,0,56,0,0,48,0,0,112,0,0,0,0,0,0, + 0,0,0,0,0,0,0,252,1,248,252,1,240,126,3,224, + 126,3,224,63,7,192,31,7,192,31,143,128,15,143,128,15, + 223,0,7,223,0,7,254,0,3,254,0,3,252,0,1,248, + 0,1,248,0,0,240,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,18,25,75,22,2,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,240,0,255,254,0,255,255,0,255,255,128, + 248,15,128,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,15,192,255,255,128,255,255,0,255,254,0,255,240, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,18,25,75,19,1,1,31,240,0,63,252,0,127, + 252,0,248,62,0,248,62,0,248,62,0,248,62,0,248,124, + 0,248,248,0,248,240,0,249,240,0,251,224,0,251,224,0, + 249,248,0,249,252,0,248,127,0,248,63,128,248,15,128,248, + 7,128,248,7,192,251,199,192,251,199,128,249,255,128,249,255, + 0,248,126,0,15,28,56,19,2,0,60,0,30,0,14,0, + 7,0,7,0,3,128,1,128,0,0,0,0,0,0,7,224, + 63,248,127,252,124,62,120,62,0,62,15,254,63,254,127,254, + 124,62,248,62,248,62,248,62,248,62,252,126,127,254,63,222, + 31,30,15,28,56,19,2,0,0,120,0,240,0,240,1,224, + 1,192,1,128,3,0,0,0,0,0,0,0,7,224,63,248, + 127,252,124,62,120,62,0,62,15,254,63,254,127,254,124,62, + 248,62,248,62,248,62,248,62,252,126,127,254,63,222,31,30, + 15,28,56,19,2,0,7,192,7,224,15,224,14,240,28,112, + 24,56,56,24,0,0,0,0,0,0,7,224,63,248,127,252, + 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, + 248,62,248,62,248,62,252,126,127,254,63,222,31,30,15,26, + 52,19,2,0,0,24,15,248,31,240,31,224,48,0,0,0, + 0,0,0,0,7,224,63,248,127,252,124,62,120,62,0,62, + 15,254,63,254,127,254,124,62,248,62,248,62,248,62,248,62, + 252,126,127,254,63,222,31,30,15,27,54,19,2,0,60,120, + 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, + 15,224,63,248,127,252,124,62,120,62,0,62,15,254,63,254, + 127,254,124,62,248,62,248,62,248,62,248,62,252,126,127,254, + 63,222,31,30,15,30,60,19,2,0,3,192,7,224,14,112, + 12,48,12,48,14,112,7,224,3,192,0,0,0,0,0,0, + 0,0,7,224,31,248,63,252,124,62,120,62,0,62,15,254, + 63,254,127,254,124,62,248,62,248,62,248,62,248,62,252,126, + 127,254,63,222,31,30,27,18,72,31,2,0,7,224,124,0, + 31,249,255,0,127,253,255,128,124,63,135,192,120,31,3,192, + 0,31,3,224,7,255,255,224,63,255,255,224,127,255,255,224, + 124,31,0,0,248,31,0,0,248,31,0,0,248,31,131,224, + 248,31,131,192,252,59,199,192,127,241,255,192,63,224,255,128, + 15,128,126,0,15,26,52,18,2,248,7,224,31,248,63,252, + 124,124,120,60,248,62,248,62,248,0,248,0,248,0,248,0, + 248,62,248,62,120,60,124,124,63,252,31,248,15,224,3,0, + 3,128,3,224,0,240,0,112,0,112,15,224,15,192,15,28, + 56,19,2,0,62,0,30,0,15,0,7,0,7,128,3,128, + 1,192,0,0,0,0,0,0,7,224,31,248,63,252,124,60, + 120,62,248,30,248,30,255,254,255,254,255,254,248,0,248,0, + 248,30,120,62,124,62,63,252,31,248,7,224,15,28,56,19, + 2,0,0,120,0,112,0,240,0,224,1,192,1,128,3,0, + 0,0,0,0,0,0,7,224,31,248,63,252,124,60,120,62, + 248,30,248,30,255,254,255,254,255,254,248,0,248,0,248,30, + 120,62,124,62,63,252,31,248,7,224,15,28,56,19,2,0, + 7,224,7,224,15,224,14,112,28,112,28,56,56,24,0,0, + 0,0,0,0,7,224,31,248,63,252,124,60,120,62,248,30, + 248,30,255,254,255,254,255,254,248,0,248,0,248,30,120,62, + 124,62,63,252,31,248,7,224,15,27,54,19,2,0,60,120, + 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, + 7,224,31,248,63,252,124,124,120,62,248,62,248,62,255,254, + 255,254,255,254,248,0,248,0,248,62,120,62,124,126,63,252, + 31,248,7,224,8,28,28,9,255,0,240,120,120,60,28,14, + 6,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,7,28,28,8,2,0,30,60,56,120, + 112,224,192,0,0,0,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,10,28,56,9,255,0,31,0, + 63,0,63,128,123,128,115,192,97,192,224,192,0,0,0,0, + 0,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,11,26,52,9,255,0,241,224,241,224, + 241,224,241,224,0,0,0,0,0,0,0,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 18,26,78,21,2,0,0,1,0,15,135,0,3,254,0,1, + 248,0,3,248,0,15,252,0,60,60,0,16,30,0,7,255, + 0,31,255,0,63,255,0,126,31,128,124,15,128,248,15,128, + 248,7,128,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,128,120,15,128,124,15,128,126,31,0,63,255,0,31,252, + 0,3,240,0,16,26,52,20,2,0,0,24,15,248,31,248, + 31,240,48,0,0,0,0,0,0,0,249,248,251,252,255,254, + 252,63,252,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,18,28, + 84,21,2,0,31,0,0,15,0,0,7,128,0,3,128,0, + 3,192,0,1,192,0,0,224,0,0,0,0,0,0,0,0, + 0,0,3,240,0,15,252,0,63,254,0,62,31,0,124,15, + 128,120,15,128,248,7,128,248,7,128,248,7,192,248,7,192, + 248,7,192,248,7,128,120,15,128,124,15,128,62,31,0,63, + 254,0,15,252,0,3,240,0,18,28,84,21,2,0,0,60, + 0,0,56,0,0,120,0,0,112,0,0,224,0,0,192,0, + 1,128,0,0,0,0,0,0,0,0,0,0,3,240,0,15, + 252,0,63,254,0,62,31,0,124,15,128,120,15,128,248,7, + 128,248,7,128,248,7,192,248,7,192,248,7,192,248,7,128, + 120,15,128,124,15,128,62,31,0,63,254,0,15,252,0,3, + 240,0,18,28,84,21,2,0,3,224,0,3,240,0,7,240, + 0,7,56,0,14,56,0,14,28,0,28,12,0,0,0,0, + 0,0,0,0,0,0,3,240,0,15,252,0,63,254,0,62, + 31,0,124,15,128,120,15,128,248,7,128,248,7,128,248,7, + 192,248,7,192,248,7,192,248,7,128,120,15,128,124,15,128, + 62,31,0,63,254,0,15,252,0,3,240,0,18,27,81,21, + 2,0,0,4,0,0,12,0,7,252,0,15,248,0,15,240, + 0,24,0,0,0,0,0,0,0,0,0,0,0,3,240,0, + 15,252,0,63,254,0,62,31,0,124,15,128,120,15,128,248, + 7,128,248,7,128,248,7,192,248,7,192,248,7,192,248,7, + 128,120,15,128,124,15,128,62,31,0,63,254,0,15,252,0, + 3,240,0,18,27,81,21,2,0,30,60,0,30,60,0,30, + 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,3,240,0,15,252,0,63,254,0,62,31,0, + 124,15,128,120,15,128,248,7,128,248,7,128,248,7,192,248, + 7,192,248,7,192,248,7,128,120,15,128,124,15,128,62,31, + 0,63,254,0,15,252,0,3,240,0,20,15,45,34,7,3, + 0,112,0,0,248,0,0,248,0,0,112,0,0,0,0,0, + 0,0,0,0,0,255,255,240,255,255,240,0,0,0,0,0, + 0,0,112,0,0,248,0,0,248,0,0,112,0,18,23,69, + 21,2,254,0,1,0,0,1,128,0,3,128,3,247,0,15, + 255,0,63,254,0,62,31,0,124,63,128,120,55,128,248,119, + 128,248,231,128,249,199,192,251,135,192,251,135,192,255,7,128, + 126,15,128,124,15,128,62,31,0,63,254,0,127,252,0,227, + 240,0,224,0,0,192,0,0,16,28,56,20,2,0,62,0, + 30,0,15,0,7,0,3,128,3,128,1,192,0,0,0,0, + 0,0,248,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,252,63, + 127,255,63,223,31,159,16,28,56,20,2,0,0,120,0,240, + 0,240,0,224,1,192,1,128,3,0,0,0,0,0,0,0, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,252,63,127,255, + 63,223,31,159,16,28,56,20,2,0,7,224,7,224,15,240, + 14,112,28,56,28,56,56,28,0,0,0,0,0,0,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,252,63,127,255,63,223, + 31,159,16,27,54,20,2,0,60,120,60,120,60,120,60,120, + 0,0,0,0,0,0,0,0,0,0,248,31,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,248,31,248,31,252,63,127,255,63,223,31,159,17,35, + 105,19,1,249,0,30,0,0,60,0,0,56,0,0,120,0, + 0,112,0,0,224,0,0,192,0,0,0,0,0,0,0,0, + 0,0,248,15,128,248,15,128,252,15,128,124,31,0,126,31, + 0,62,31,0,62,62,0,63,62,0,31,60,0,31,124,0, + 15,252,0,15,248,0,15,248,0,7,248,0,7,240,0,3, + 240,0,3,240,0,3,224,0,3,224,0,3,192,0,103,192, + 0,255,192,0,255,192,0,127,128,0,62,0,0,17,32,96, + 21,2,249,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,249,240,0,255,252,0,255,254, + 0,254,63,0,252,31,0,248,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,252, + 31,0,254,63,0,255,254,0,255,252,0,251,240,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,17,33,99,19,1,249,30,60,0,30,60,0,30, + 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, + 0,248,15,128,248,15,128,252,15,128,124,31,0,124,31,0, + 126,31,0,62,62,0,63,62,0,31,62,0,31,124,0,31, + 252,0,15,248,0,15,248,0,7,248,0,7,240,0,7,240, + 0,3,240,0,3,224,0,3,224,0,3,224,0,7,192,0, + 7,192,0,7,192,0,15,128,0,15,128,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 25 + Calculated Max Values w=20 h=28 x= 7 y=13 dx=34 dy= 0 ascent=26 len=75 + Font Bounding box w=50 h=46 x=-2 y=-9 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =25 descent= 0 + X Font ascent =25 descent= 0 + Max Font ascent =26 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub25n[957] U8G_SECTION(".progmem.u8g_font_fub25n") = { + 0,50,46,254,247,25,0,0,0,0,42,57,0,26,251,25, + 0,14,13,26,22,4,13,28,224,60,240,28,224,15,192,135, + 132,255,252,255,252,231,156,15,192,30,224,28,224,60,240,8, + 64,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, + 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,7,9,9,11,2,251,62,60,60,120, + 120,112,240,240,224,9,5,10,11,1,7,255,128,255,128,255, + 128,255,128,255,128,5,5,5,10,3,0,248,248,248,248,248, + 11,28,56,15,2,254,0,224,0,224,1,192,1,192,1,192, + 3,128,3,128,3,128,3,128,7,0,7,0,7,0,14,0, + 14,0,14,0,28,0,28,0,28,0,56,0,56,0,56,0, + 56,0,112,0,112,0,112,0,224,0,224,0,224,0,17,25, + 75,19,1,1,7,224,0,31,252,0,63,254,0,60,30,0, + 120,15,0,120,15,0,120,15,0,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, + 120,15,0,60,30,0,31,252,0,15,248,0,7,224,0,11, + 25,50,19,3,1,3,224,15,224,31,224,127,224,255,224,251, + 224,243,224,195,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,17,25,75,19,1,1,7,248,0, + 31,254,0,31,255,0,63,255,0,126,31,128,124,15,128,124, + 15,128,0,15,128,0,15,128,0,31,0,0,31,0,0,62, + 0,0,126,0,0,252,0,1,248,0,3,240,0,7,224,0, + 15,192,0,63,0,0,126,0,0,252,0,0,255,255,128,255, + 255,128,255,255,128,255,255,128,16,25,50,19,2,1,31,240, + 63,252,127,254,255,254,248,62,248,31,0,31,0,30,0,126, + 7,252,7,240,7,248,7,252,0,62,0,31,0,31,0,31, + 248,31,248,31,248,31,252,62,127,254,127,252,31,248,15,224, + 18,25,75,19,1,1,0,126,0,0,254,0,0,254,0,1, + 254,0,3,254,0,3,254,0,7,190,0,15,190,0,15,62, + 0,30,62,0,30,62,0,60,62,0,124,62,0,120,62,0, + 240,62,0,255,255,192,255,255,192,255,255,192,255,255,192,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,17,25,75,19,1,1,255,254,0,255,254,0,255,254,0, + 255,254,0,248,0,0,248,0,0,248,0,0,248,0,0,249, + 240,0,255,252,0,255,254,0,252,63,0,248,31,0,248,15, + 0,0,15,128,0,15,128,0,15,128,0,15,0,248,15,0, + 248,31,0,252,63,0,127,254,0,127,252,0,63,248,0,15, + 224,0,17,25,75,19,1,1,3,240,0,15,252,0,31,254, + 0,63,255,0,62,31,0,126,15,128,124,0,0,124,0,0, + 252,0,0,248,248,0,251,254,0,255,254,0,255,31,0,254, + 15,128,252,15,128,252,15,128,252,15,128,252,15,128,124,15, + 128,126,15,128,127,31,0,63,255,0,31,254,0,15,252,0, + 3,240,0,16,25,50,19,2,1,255,255,255,255,255,255,255, + 255,0,15,0,31,0,30,0,62,0,62,0,124,0,124,0, + 248,0,248,0,240,1,240,1,240,3,224,3,224,7,192,7, + 192,15,128,15,128,15,128,31,0,31,0,17,25,75,19,1, + 1,7,240,0,31,252,0,127,255,0,127,255,0,252,31,128, + 248,15,128,248,15,128,120,15,0,124,31,0,63,254,0,15, + 248,0,31,248,0,63,254,0,124,63,0,248,15,0,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,252,31,128, + 127,255,0,127,255,0,31,252,0,7,240,0,17,25,75,19, + 1,1,7,240,0,31,252,0,63,254,0,127,254,0,124,63, + 0,248,31,0,248,31,0,248,31,128,248,31,128,248,31,128, + 248,63,128,124,63,128,127,255,128,63,239,128,15,207,128,0, + 15,128,0,31,0,0,31,0,248,31,0,120,63,0,124,126, + 0,63,254,0,63,252,0,31,248,0,7,224,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 25, '1' Height: 25 + Calculated Max Values w=34 h=37 x= 8 y=21 dx=35 dy= 0 ascent=28 len=160 + Font Bounding box w=50 h=46 x=-2 y=-9 + Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =28 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub25r[5936] U8G_SECTION(".progmem.u8g_font_fub25r") = { + 0,50,46,254,247,25,7,111,16,148,32,127,249,28,247,25, + 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, + 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, + 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, + 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, + 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, + 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, + 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, + 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, + 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, + 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, + 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, + 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, + 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, + 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, + 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, + 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, + 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, + 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, + 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, + 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, + 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, + 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, + 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, + 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, + 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, + 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, + 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, + 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, + 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, + 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, + 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, + 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, + 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, + 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, + 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, + 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, + 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, + 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, + 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, + 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, + 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, + 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, + 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, + 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, + 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, + 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, + 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, + 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, + 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, + 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, + 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, + 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, + 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, + 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, + 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, + 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, + 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, + 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, + 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, + 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, + 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, + 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, + 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, + 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, + 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, + 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, + 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, + 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, + 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, + 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, + 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, + 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, + 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, + 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, + 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, + 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, + 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, + 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, + 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, + 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, + 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, + 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, + 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, + 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, + 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, + 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, + 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, + 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, + 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, + 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, + 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, + 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, + 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, + 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, + 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, + 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, + 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, + 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, + 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, + 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, + 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, + 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, + 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, + 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, + 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, + 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, + 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, + 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, + 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, + 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, + 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, + 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, + 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, + 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, + 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, + 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, + 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, + 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, + 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, + 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, + 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, + 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, + 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, + 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, + 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, + 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, + 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, + 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, + 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, + 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, + 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, + 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, + 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, + 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, + 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, + 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, + 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, + 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, + 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, + 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, + 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, + 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, + 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, + 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, + 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, + 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, + 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, + 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, + 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, + 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, + 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, + 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, + 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, + 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, + 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, + 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, + 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, + 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, + 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, + 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, + 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, + 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, + 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, + 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, + 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, + 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, + 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, + 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, + 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, + 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, + 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, + 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, + 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, + 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, + 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, + 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, + 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, + 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, + 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, + 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, + 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, + 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, + 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, + 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, + 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, + 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, + 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, + 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, + 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, + 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, + 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, + 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, + 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, + 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, + 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, + 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, + 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, + 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, + 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, + 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, + 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, + 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, + 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, + 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, + 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, + 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, + 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, + 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, + 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, + 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, + 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, + 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, + 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, + 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, + 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, + 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, + 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, + 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, + 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, + 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, + 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, + 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, + 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, + 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, + 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, + 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, + 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, + 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, + 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, + 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, + 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, + 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, + 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, + 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, + 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, + 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, + 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, + 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, + 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, + 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, + 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, + 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, + 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, + 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, + 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, + 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, + 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, + 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, + 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, + 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, + 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, + 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, + 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, + 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, + 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, + 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, + 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, + 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, + 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, + 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, + 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, + 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, + 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, + 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, + 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, + 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, + 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, + 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, + 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, + 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, + 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, + 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, + 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, + 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, + 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, + 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, + 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, + 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, + 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, + 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, + 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, + 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, + 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, + 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, + 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, + 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, + 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, + 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, + 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, + 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, + 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255 + }; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 30, '1' Height: 30 + Calculated Max Values w=38 h=43 x=10 y=26 dx=42 dy= 0 ascent=43 len=195 + Font Bounding box w=59 h=54 x=-3 y=-11 + Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-7 + X Font ascent =31 descent=-8 + Max Font ascent =43 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub30[16953] U8G_SECTION(".progmem.u8g_font_fub30") = { + 0,59,54,253,245,30,9,163,21,182,32,255,249,43,245,31, + 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, + 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, + 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, + 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, + 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, + 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, + 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, + 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, + 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, + 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, + 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, + 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, + 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, + 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, + 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, + 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, + 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, + 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, + 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, + 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, + 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, + 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, + 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, + 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, + 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, + 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, + 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, + 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, + 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, + 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, + 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, + 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, + 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, + 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, + 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, + 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, + 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, + 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, + 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, + 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, + 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, + 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, + 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, + 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, + 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, + 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, + 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, + 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, + 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, + 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, + 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, + 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, + 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, + 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, + 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, + 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, + 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, + 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, + 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, + 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, + 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, + 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, + 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, + 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, + 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, + 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, + 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, + 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, + 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, + 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, + 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, + 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, + 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, + 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, + 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, + 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, + 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, + 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, + 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, + 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, + 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, + 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, + 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, + 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, + 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, + 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, + 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, + 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, + 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, + 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, + 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, + 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, + 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, + 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, + 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, + 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, + 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, + 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, + 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, + 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, + 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, + 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, + 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, + 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, + 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, + 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, + 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, + 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, + 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, + 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, + 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, + 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, + 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, + 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, + 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, + 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, + 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, + 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, + 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, + 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, + 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, + 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, + 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, + 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, + 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, + 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, + 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, + 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, + 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, + 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, + 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, + 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, + 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, + 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, + 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, + 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, + 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, + 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, + 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, + 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, + 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, + 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, + 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, + 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, + 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, + 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, + 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, + 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, + 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, + 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, + 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, + 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, + 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, + 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, + 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, + 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, + 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, + 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, + 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, + 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, + 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, + 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, + 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, + 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, + 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, + 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, + 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, + 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, + 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, + 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, + 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, + 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, + 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, + 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, + 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, + 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, + 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, + 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, + 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, + 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, + 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, + 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, + 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, + 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, + 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, + 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, + 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, + 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, + 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, + 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, + 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, + 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, + 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, + 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, + 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, + 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, + 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, + 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, + 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, + 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, + 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, + 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, + 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, + 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, + 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, + 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, + 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, + 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, + 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, + 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, + 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, + 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, + 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, + 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, + 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, + 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, + 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, + 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, + 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, + 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, + 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, + 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, + 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, + 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, + 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, + 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, + 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, + 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, + 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, + 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, + 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, + 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, + 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, + 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, + 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, + 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, + 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, + 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, + 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, + 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, + 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, + 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, + 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, + 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, + 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, + 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, + 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, + 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, + 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, + 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, + 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, + 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, + 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, + 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, + 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, + 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, + 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, + 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, + 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, + 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, + 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, + 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, + 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, + 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, + 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, + 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, + 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, + 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, + 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, + 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, + 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, + 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, + 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, + 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, + 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, + 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, + 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, + 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, + 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, + 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, + 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, + 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, + 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, + 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, + 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, + 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, + 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, + 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, + 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, + 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, + 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, + 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, + 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, + 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, + 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, + 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, + 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, + 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, + 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, + 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, + 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, + 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, + 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, + 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, + 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, + 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, + 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, + 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, + 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, + 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, + 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, + 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, + 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, + 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, + 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, + 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, + 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, + 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, + 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, + 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, + 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, + 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, + 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, + 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, + 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, + 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, + 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, + 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, + 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, + 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, + 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, + 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, + 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, + 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, + 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, + 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, + 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, + 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, + 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, + 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, + 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, + 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, + 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, + 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, + 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, + 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, + 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, + 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, + 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, + 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, + 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, + 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, + 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, + 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, + 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, + 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, + 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, + 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, + 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, + 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, + 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, + 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, + 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, + 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, + 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, + 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, + 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, + 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, + 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, + 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, + 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, + 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, + 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, + 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, + 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, + 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, + 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, + 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, + 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, + 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, + 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, + 255,224,240,31,128,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,0,0,0,12,0,0,5,28,28,16, + 5,248,248,248,248,248,248,0,0,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,18,30, + 90,24,3,250,0,6,0,0,14,0,0,12,0,0,12,0, + 0,28,0,7,252,0,31,255,0,63,255,128,63,63,128,124, + 63,192,124,127,192,252,103,192,248,96,0,248,96,0,248,192, + 0,248,192,0,248,192,0,253,192,0,253,143,192,125,143,192, + 127,143,192,127,31,128,63,255,128,31,255,0,7,252,0,6, + 0,0,14,0,0,12,0,0,12,0,0,28,0,0,20,31, + 93,23,2,0,0,16,0,3,255,128,7,255,192,15,255,224, + 15,199,240,31,131,240,31,131,240,31,1,240,31,0,0,31, + 0,0,31,0,0,31,0,0,255,252,0,255,252,0,255,252, + 0,255,252,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,255,255,240,255,255,240,255,255,240,255,255, + 240,21,21,63,25,2,8,192,0,24,224,0,56,113,252,112, + 63,255,224,31,7,192,28,1,192,24,1,192,56,0,224,48, + 0,96,48,0,96,48,0,96,48,0,96,48,0,224,56,0, + 224,28,1,192,30,3,192,31,143,192,63,255,224,113,252,112, + 224,0,56,192,0,24,22,30,90,24,1,0,252,0,252,252, + 0,252,124,1,248,126,1,248,62,3,240,63,3,240,63,7, + 224,31,135,224,255,135,252,255,143,252,255,207,252,7,223,128, + 7,255,0,3,255,0,3,255,0,1,254,0,255,255,252,255, + 255,252,255,255,252,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,2,38,38,14,6,248,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,16,36,72,19,1,251,15,252,31,254,63,254,126,14, + 124,2,124,0,124,0,126,0,127,0,63,192,31,224,15,248, + 31,252,63,254,126,127,124,63,248,31,248,31,248,31,252,62, + 254,252,127,248,63,240,31,248,7,252,1,254,0,127,0,63, + 0,63,0,31,0,63,64,126,127,254,127,252,127,240,31,192, + 13,5,10,13,0,26,240,120,240,120,240,120,240,120,240,120, + 30,30,120,34,2,1,0,63,240,0,0,255,252,0,3,248, + 127,0,7,192,15,128,15,0,3,192,30,0,1,224,60,31, + 240,240,56,63,248,112,120,127,252,120,112,248,124,56,112,248, + 62,56,225,240,62,28,225,240,62,28,225,240,0,28,225,240, + 0,28,225,240,0,28,225,240,0,28,225,240,62,28,225,240, + 62,28,112,248,62,56,112,248,124,56,112,127,252,120,56,63, + 248,112,60,31,224,240,30,0,1,224,15,0,3,192,7,128, + 15,128,3,240,63,0,1,255,252,0,0,63,240,0,14,20, + 40,16,1,10,15,192,63,240,120,240,120,120,0,120,15,248, + 63,248,124,120,240,120,240,120,240,120,240,248,255,248,127,248, + 63,56,0,0,0,0,0,0,255,252,255,252,20,16,48,24, + 2,2,15,193,240,15,131,224,31,135,224,31,7,192,63,15, + 192,126,15,192,126,31,128,252,31,128,252,31,128,126,31,128, + 126,15,192,63,15,192,31,7,192,31,135,224,15,131,224,15, + 193,240,21,9,27,25,2,8,255,255,248,255,255,248,0,0, + 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, + 0,0,24,255,30,30,120,34,2,1,0,63,240,0,0,255, + 252,0,3,248,127,0,7,192,15,128,15,0,3,192,30,0, + 1,224,60,255,192,240,56,255,240,112,120,255,248,120,112,240, + 124,56,112,240,60,56,224,240,60,28,224,240,60,28,224,240, + 120,28,224,255,240,28,224,255,224,28,224,255,248,28,224,240, + 120,28,224,240,120,28,112,240,56,56,112,240,60,56,112,240, + 60,120,56,240,60,112,60,240,60,240,30,0,1,224,15,0, + 3,192,7,128,15,128,3,240,63,0,1,255,252,0,0,63, + 240,0,13,4,8,13,0,26,255,248,255,248,255,248,255,248, + 9,9,18,13,2,21,62,0,127,0,227,128,193,128,193,128, + 193,128,227,128,127,0,62,0,24,24,72,40,8,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,255,255,255,255,255,255,255,255,255,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 255,255,255,255,255,255,13,16,32,15,1,15,63,224,127,240, + 248,120,240,120,0,120,0,248,1,240,3,224,7,192,15,128, + 31,0,60,0,240,0,255,240,255,240,255,240,12,15,30,14, + 1,16,63,192,127,224,240,240,240,240,0,240,1,224,15,192, + 15,192,1,224,0,240,0,240,240,240,249,240,127,224,63,128, + 8,8,8,9,2,25,31,31,62,60,120,112,240,224,255,18, + 36,108,22,2,250,7,255,192,31,255,192,63,199,0,127,199, + 0,255,199,0,255,199,0,255,199,0,255,199,0,255,199,0, + 255,199,0,255,199,0,255,199,0,127,199,0,63,199,0,15, + 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, + 0,1,199,0,1,199,0,1,199,0,1,199,0,1,199,0, + 1,199,0,1,199,0,1,199,0,1,199,0,1,199,0,1, + 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, + 0,5,5,5,12,3,11,248,248,248,248,248,9,10,20,10, + 2,246,48,0,48,0,60,0,63,0,7,128,3,128,3,128, + 135,128,255,0,252,0,7,16,16,11,2,14,30,62,254,254, + 158,30,30,30,30,30,30,30,30,30,30,30,14,19,38,16, + 1,11,15,192,31,224,60,240,120,120,112,56,240,60,240,60, + 240,60,240,60,240,60,112,56,120,120,60,240,31,224,15,192, + 0,0,0,0,255,252,255,252,20,16,48,24,2,2,252,31, + 0,124,31,0,126,15,128,62,15,192,63,15,192,31,7,224, + 31,135,224,31,131,240,31,131,240,31,135,224,31,7,224,63, + 15,192,62,15,192,126,15,128,124,31,0,252,31,0,28,31, + 124,32,2,255,30,0,15,0,62,0,30,0,254,0,30,0, + 254,0,60,0,158,0,124,0,30,0,120,0,30,0,248,0, + 30,0,240,0,30,1,240,0,30,1,224,0,30,3,192,0, + 30,3,192,0,30,7,128,0,30,15,128,0,30,15,0,0, + 30,31,3,224,0,30,7,224,0,60,15,224,0,60,15,224, + 0,120,31,224,0,120,61,224,0,240,121,224,0,240,121,224, + 1,224,241,224,3,193,225,224,3,193,255,240,7,129,255,240, + 7,128,1,224,15,0,1,224,15,0,1,224,30,0,1,224, + 28,30,120,31,2,0,30,0,30,0,62,0,60,0,254,0, + 56,0,222,0,120,0,158,0,240,0,30,0,240,0,30,1, + 224,0,30,1,224,0,30,3,192,0,30,3,192,0,30,7, + 128,0,30,7,128,0,30,15,0,0,30,30,0,0,30,30, + 31,128,30,60,63,224,0,60,125,224,0,120,240,240,0,120, + 240,240,0,240,0,240,0,240,1,240,1,224,3,224,1,192, + 7,192,3,192,15,128,7,128,31,0,7,128,62,0,15,0, + 124,0,15,0,240,0,30,0,255,240,30,0,255,240,29,30, + 120,31,1,1,63,192,3,192,127,224,7,192,240,240,7,128, + 240,240,15,0,0,240,15,0,1,224,30,0,15,192,30,0, + 15,192,60,0,1,224,124,0,0,240,120,0,0,240,240,0, + 240,240,240,0,249,241,224,0,127,225,224,0,63,131,193,240, + 0,3,195,240,0,7,135,240,0,15,7,240,0,15,15,240, + 0,30,30,240,0,30,60,240,0,60,60,240,0,60,120,240, + 0,120,240,240,0,240,255,248,0,240,255,248,1,224,0,240, + 1,224,0,240,3,192,0,240,3,192,0,240,19,28,84,23, + 2,248,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,0,0,0,0,0,0,0,0,0,240,0,0,240,0, + 0,240,0,0,240,0,1,224,0,7,224,0,15,128,0,31, + 0,0,62,0,0,124,0,0,252,0,0,252,0,0,248,1, + 0,252,3,128,252,7,224,126,15,192,127,255,192,63,255,128, + 15,254,0,3,248,0,27,41,164,28,1,0,1,240,0,0, + 1,240,0,0,0,248,0,0,0,120,0,0,0,60,0,0, + 0,28,0,0,0,14,0,0,0,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,63,0,0,0,63,128,0, + 0,127,128,0,0,127,128,0,0,127,192,0,0,255,192,0, + 0,255,224,0,0,255,224,0,1,251,224,0,1,243,240,0, + 3,243,240,0,3,241,240,0,3,225,248,0,7,225,248,0, + 7,224,248,0,7,192,252,0,15,192,252,0,15,192,126,0, + 15,128,126,0,31,255,254,0,31,255,255,0,63,255,255,0, + 63,255,255,0,63,255,255,128,126,0,31,128,126,0,31,128, + 126,0,15,192,252,0,15,192,252,0,7,192,248,0,7,224, + 27,41,164,28,1,0,0,3,240,0,0,3,224,0,0,3, + 192,0,0,7,128,0,0,7,0,0,0,15,0,0,0,14, + 0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,127, + 128,0,0,127,192,0,0,255,192,0,0,255,224,0,0,255, + 224,0,1,251,224,0,1,243,240,0,3,243,240,0,3,241, + 240,0,3,225,248,0,7,225,248,0,7,224,248,0,7,192, + 252,0,15,192,252,0,15,192,126,0,15,128,126,0,31,255, + 254,0,31,255,255,0,63,255,255,0,63,255,255,0,63,255, + 255,128,126,0,31,128,126,0,31,128,126,0,15,192,252,0, + 15,192,252,0,7,192,248,0,7,224,27,41,164,28,1,0, + 0,63,0,0,0,63,128,0,0,127,128,0,0,123,192,0, + 0,243,192,0,0,225,224,0,1,192,224,0,1,192,112,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0, + 0,63,128,0,0,127,128,0,0,127,128,0,0,127,192,0, + 0,255,192,0,0,255,224,0,0,255,224,0,1,251,224,0, + 1,243,240,0,3,243,240,0,3,241,240,0,3,225,248,0, + 7,225,248,0,7,224,248,0,7,192,252,0,15,192,252,0, + 15,192,126,0,15,128,126,0,31,255,254,0,31,255,255,0, + 63,255,255,0,63,255,255,0,63,255,255,128,126,0,31,128, + 126,0,31,128,126,0,15,192,252,0,15,192,252,0,7,192, + 248,0,7,224,27,39,156,28,1,0,0,120,112,0,0,255, + 224,0,1,255,224,0,1,255,192,0,1,128,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63, + 0,0,0,63,128,0,0,127,128,0,0,127,128,0,0,127, + 192,0,0,255,192,0,0,255,224,0,0,255,224,0,1,251, + 224,0,1,243,240,0,3,243,240,0,3,241,240,0,3,225, + 248,0,7,225,248,0,7,224,248,0,7,192,252,0,15,192, + 252,0,15,192,126,0,15,128,126,0,31,255,254,0,31,255, + 255,0,63,255,255,0,63,255,255,0,63,255,255,128,126,0, + 31,128,126,0,31,128,126,0,15,192,252,0,15,192,252,0, + 7,192,248,0,7,224,27,40,160,29,1,0,1,224,240,0, + 1,224,240,0,1,224,240,0,1,224,240,0,1,224,240,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,63,128,0,0,63,128,0,0,127,192,0, + 0,127,192,0,0,127,192,0,0,255,224,0,0,255,224,0, + 1,251,240,0,1,251,240,0,1,251,240,0,3,241,248,0, + 3,241,248,0,3,224,248,0,7,224,252,0,7,224,252,0, + 7,192,124,0,15,192,126,0,15,192,126,0,15,128,62,0, + 31,255,255,0,31,255,255,0,31,255,255,0,63,255,255,128, + 63,255,255,128,126,0,31,128,126,0,15,192,126,0,15,192, + 252,0,7,224,252,0,7,224,252,0,7,224,27,43,172,28, + 0,0,0,31,0,0,0,63,128,0,0,113,192,0,0,96, + 192,0,0,96,192,0,0,96,192,0,0,113,192,0,0,63, + 128,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,63,128,0,0,63,128,0,0,63, + 128,0,0,127,192,0,0,127,192,0,0,127,192,0,0,255, + 224,0,0,251,224,0,0,251,240,0,1,251,240,0,1,241, + 240,0,1,241,248,0,3,241,248,0,3,224,248,0,7,224, + 252,0,7,224,252,0,7,192,124,0,15,192,126,0,15,192, + 126,0,15,255,254,0,31,255,255,0,31,255,255,0,31,255, + 255,128,63,255,255,128,63,0,31,128,62,0,15,192,126,0, + 15,192,126,0,15,192,252,0,7,224,252,0,7,224,38,30, + 150,40,0,0,0,1,255,255,248,0,1,255,255,248,0,3, + 255,255,248,0,3,255,255,248,0,7,255,0,0,0,7,223, + 0,0,0,15,223,0,0,0,15,159,0,0,0,31,159,0, + 0,0,31,31,0,0,0,63,31,0,0,0,62,31,0,0, + 0,126,31,255,248,0,124,31,255,248,0,252,31,255,248,0, + 248,31,255,248,1,248,31,255,248,1,240,31,0,0,3,255, + 255,0,0,7,255,255,0,0,7,255,255,0,0,15,255,255, + 0,0,15,255,255,0,0,31,128,63,0,0,31,128,63,0, + 0,63,0,63,255,252,63,0,63,255,252,126,0,63,255,252, + 126,0,63,255,252,252,0,63,255,252,24,40,120,29,2,247, + 1,255,192,3,255,240,15,255,248,15,255,252,31,255,254,63, + 128,254,62,0,127,126,0,127,124,0,63,124,0,63,252,0, + 0,252,0,0,252,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,252,0,0,252,0,0,124,0,63,124, + 0,127,126,0,127,62,0,255,63,0,254,31,255,254,31,255, + 252,15,255,248,7,255,240,1,255,192,0,24,0,0,24,0, + 0,31,0,0,31,128,0,3,192,0,1,192,0,1,192,0, + 195,192,0,255,128,0,254,0,20,41,123,25,3,0,15,128, + 0,15,128,0,7,192,0,3,192,0,1,224,0,0,224,0, + 0,240,0,0,112,0,0,0,0,0,0,0,0,0,0,255, + 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, + 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, + 255,255,240,255,255,240,255,255,240,20,41,123,25,3,0,0, + 63,0,0,62,0,0,124,0,0,120,0,0,240,0,0,224, + 0,1,224,0,1,192,0,0,0,0,0,0,0,0,0,0, + 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,255,255,224,255,255,224,255,255,224, + 255,255,224,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,255,255,240,255,255, + 240,255,255,240,255,255,240,255,255,240,20,41,123,25,3,0, + 3,248,0,3,248,0,7,252,0,7,188,0,7,30,0,14, + 14,0,14,7,0,28,7,0,0,0,0,0,0,0,0,0, + 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,255,255,224,255,255,224,255,255, + 224,255,255,224,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,255,255,240,255, + 255,240,255,255,240,255,255,240,255,255,240,20,40,120,25,3, + 0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, + 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, + 255,255,240,255,255,240,255,255,240,9,41,82,11,255,0,248, + 0,124,0,60,0,30,0,14,0,15,0,7,0,3,0,0, + 0,0,0,0,0,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,8,41,41,10,3,0,15,31,30,60,56,120,112,224,0, + 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 12,41,82,11,0,0,31,128,63,128,63,128,123,192,121,192, + 112,224,224,224,192,112,0,0,0,0,0,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,13,40,80,13,0,0,240,120, + 240,120,240,120,240,120,240,120,0,0,0,0,0,0,0,0, + 0,0,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,26,30, + 120,29,0,0,31,255,0,0,31,255,224,0,31,255,248,0, + 31,255,252,0,31,255,254,0,31,1,255,0,31,0,127,0, + 31,0,31,128,31,0,31,128,31,0,15,192,31,0,15,192, + 31,0,7,192,31,0,7,192,255,252,7,192,255,252,7,192, + 255,252,7,192,255,252,7,192,31,0,7,192,31,0,7,192, + 31,0,15,192,31,0,15,192,31,0,31,128,31,0,31,128, + 31,0,127,0,31,1,255,0,31,255,254,0,31,255,252,0, + 31,255,248,0,31,255,224,0,31,255,0,0,25,39,156,31, + 3,0,0,248,96,0,1,255,224,0,1,255,192,0,3,255, + 128,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,128,15,128,255,128,15,128,255,128, + 15,128,255,192,15,128,255,192,15,128,255,224,15,128,251,224, + 15,128,251,240,15,128,249,240,15,128,249,248,15,128,248,248, + 15,128,248,252,15,128,248,252,15,128,248,126,15,128,248,126, + 15,128,248,63,15,128,248,63,15,128,248,31,143,128,248,31, + 143,128,248,15,143,128,248,15,207,128,248,7,207,128,248,7, + 239,128,248,3,239,128,248,3,255,128,248,1,255,128,248,1, + 255,128,248,0,255,128,248,0,255,128,248,0,127,128,27,41, + 164,31,2,0,1,240,0,0,1,240,0,0,0,248,0,0, + 0,120,0,0,0,60,0,0,0,28,0,0,0,28,0,0, + 0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, + 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, + 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, + 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, + 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, + 3,255,248,0,0,255,224,0,27,41,164,31,2,0,0,1, + 240,0,0,1,224,0,0,3,224,0,0,3,192,0,0,7, + 128,0,0,7,0,0,0,14,0,0,0,14,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, + 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, + 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, + 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, + 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, + 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, + 224,0,27,41,164,31,2,0,0,63,0,0,0,63,128,0, + 0,63,128,0,0,123,192,0,0,113,192,0,0,240,224,0, + 0,224,224,0,1,192,112,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,224,0,3,255,248,0,7,255,252,0, + 15,255,254,0,31,255,255,0,63,192,127,128,63,0,31,128, + 127,0,31,192,126,0,15,192,126,0,15,192,252,0,15,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, + 252,0,15,224,126,0,15,192,126,0,15,192,127,0,31,192, + 63,0,31,128,63,192,127,128,31,255,255,0,15,255,254,0, + 7,255,252,0,3,255,248,0,0,255,224,0,27,40,160,31, + 2,0,0,0,48,0,0,124,112,0,0,255,224,0,0,255, + 224,0,1,255,192,0,1,128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, + 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, + 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, + 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, + 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, + 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, + 224,0,27,40,160,31,2,0,0,240,240,0,0,240,240,0, + 0,240,240,0,0,240,240,0,0,240,240,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, + 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, + 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, + 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, + 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, + 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, + 3,255,248,0,0,255,224,0,22,22,66,40,9,1,96,0, + 24,240,0,60,112,0,56,56,0,112,28,0,224,14,1,192, + 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, + 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, + 192,28,0,224,56,0,112,112,0,56,96,0,24,64,0,8, + 29,34,136,31,1,254,0,0,0,16,0,0,0,56,0,127, + 240,120,1,255,252,240,3,255,255,240,7,255,255,224,15,255, + 255,192,31,224,63,192,31,128,15,192,63,128,31,224,63,0, + 63,224,63,0,127,224,126,0,251,240,126,1,243,240,126,1, + 227,240,126,3,195,240,126,7,131,240,126,15,3,240,126,30, + 3,240,126,60,3,240,126,124,3,240,126,248,7,240,63,240, + 7,224,63,224,7,224,63,192,15,224,31,128,15,192,31,224, + 63,192,31,255,255,128,63,255,255,0,127,255,254,0,249,255, + 252,0,240,127,240,0,224,0,0,0,64,0,0,0,24,41, + 123,30,3,0,7,192,0,3,224,0,1,224,0,1,240,0, + 0,240,0,0,120,0,0,56,0,0,28,0,0,0,0,0, + 0,0,0,0,0,248,0,31,248,0,31,248,0,31,248,0, + 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, + 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, + 0,31,248,0,31,248,0,31,248,0,31,248,0,31,252,0, + 31,252,0,31,252,0,63,124,0,63,126,0,126,127,0,254, + 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, + 41,123,30,3,0,0,3,224,0,3,224,0,7,192,0,15, + 128,0,15,0,0,30,0,0,28,0,0,56,0,0,0,0, + 0,0,0,0,0,0,248,0,31,248,0,31,248,0,31,248, + 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, + 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, + 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,252, + 0,31,252,0,31,252,0,63,124,0,63,126,0,126,127,0, + 254,63,255,252,31,255,252,31,255,248,7,255,224,1,255,192, + 24,41,123,30,3,0,0,126,0,0,255,0,0,255,0,1, + 247,128,1,231,128,3,195,192,3,129,192,7,0,224,0,0, + 0,0,0,0,0,0,0,248,0,31,248,0,31,248,0,31, + 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, + 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, + 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, + 252,0,31,252,0,31,252,0,63,124,0,63,126,0,126,127, + 0,254,63,255,252,31,255,252,31,255,248,7,255,224,1,255, + 192,24,40,120,30,3,0,3,193,224,3,193,224,3,193,224, + 3,193,224,3,193,224,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,252,0,31,252,0,31,252,0,31,252,0, + 31,252,0,31,252,0,31,252,0,31,252,0,31,252,0,31, + 252,0,31,252,0,31,252,0,31,252,0,31,252,0,31,252, + 0,31,252,0,31,252,0,31,252,0,31,252,0,31,252,0, + 31,252,0,31,254,0,63,126,0,63,127,0,126,127,128,254, + 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, + 41,123,25,1,0,0,7,192,0,15,128,0,15,0,0,14, + 0,0,30,0,0,28,0,0,56,0,0,0,0,0,0,0, + 0,0,0,0,0,0,252,0,127,254,0,126,126,0,254,127, + 0,252,63,1,252,63,1,248,31,131,248,31,131,240,15,195, + 240,15,199,224,7,231,224,7,239,192,3,255,192,3,255,128, + 1,255,128,1,255,0,0,255,0,0,254,0,0,126,0,0, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 21,30,90,26,2,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,255,252,0,255,255,128,255,255,192,255,255, + 224,255,255,240,248,7,240,248,1,248,248,1,248,248,0,248, + 248,0,248,248,1,248,248,1,248,248,7,240,255,255,240,255, + 255,224,255,255,192,255,255,128,255,252,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 21,30,90,24,2,1,15,252,0,63,255,0,127,255,128,126, + 31,192,252,15,192,252,7,192,248,7,192,248,15,192,248,15, + 128,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, + 248,248,0,248,252,0,248,254,0,248,127,128,248,63,192,248, + 31,224,248,7,240,248,3,240,248,1,248,248,1,248,251,224, + 248,251,225,248,251,241,248,249,255,240,249,255,224,248,255,192, + 19,32,96,22,2,0,31,0,0,31,0,0,15,128,0,7, + 128,0,3,192,0,1,192,0,1,224,0,0,224,0,0,0, + 0,0,0,0,0,0,0,0,0,0,15,254,0,31,255,0, + 63,255,128,126,15,128,124,15,192,0,7,192,0,127,192,15, + 255,192,63,255,192,127,255,192,127,7,192,252,7,192,252,7, + 192,248,15,192,248,15,192,252,15,192,254,31,192,127,255,192, + 63,247,192,31,227,224,19,32,96,22,2,0,0,31,0,0, + 62,0,0,60,0,0,120,0,0,120,0,0,240,0,0,224, + 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, + 15,254,0,31,255,0,63,255,128,126,15,128,124,15,192,0, + 7,192,0,127,192,15,255,192,63,255,192,127,255,192,127,7, + 192,252,7,192,252,7,192,248,15,192,248,15,192,252,15,192, + 254,31,192,127,255,192,63,247,192,31,227,224,19,32,96,22, + 2,0,3,240,0,3,248,0,7,248,0,7,188,0,15,28, + 0,14,30,0,28,14,0,28,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, + 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, + 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, + 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, + 227,224,19,30,90,22,2,0,7,135,0,15,254,0,15,254, + 0,31,252,0,24,16,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, + 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, + 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, + 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, + 227,224,19,31,93,23,2,0,30,30,0,30,30,0,30,30, + 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,15,254,0,31,255,0,63, + 255,128,126,15,128,124,15,192,0,7,192,0,127,192,15,255, + 192,63,255,192,127,255,192,127,7,192,252,7,192,252,7,192, + 248,15,192,248,15,192,252,15,192,254,31,192,127,255,192,63, + 247,192,31,231,224,19,34,102,22,2,0,1,240,0,3,248, + 0,7,28,0,6,12,0,6,12,0,6,12,0,7,28,0, + 3,248,0,1,240,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,15,254,0,31,255,0,63,255,128,126,15, + 128,124,15,192,0,7,192,0,127,192,15,255,192,63,255,192, + 127,255,192,127,7,192,252,7,192,252,7,192,248,15,192,248, + 15,192,252,15,192,254,31,192,127,255,192,63,247,192,31,231, + 224,32,20,80,36,2,1,15,252,31,224,31,254,127,248,63, + 255,127,252,126,15,240,126,124,7,224,62,0,7,224,62,0, + 7,192,31,7,255,255,255,31,255,255,255,63,255,255,255,127, + 255,255,255,252,7,192,0,252,7,224,0,248,7,224,0,248, + 15,224,63,252,15,240,62,254,30,248,126,127,252,127,252,63, + 248,63,248,31,224,31,240,17,30,90,21,2,247,15,252,0, + 31,254,0,63,255,0,126,63,0,124,31,128,124,31,128,252, + 15,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,252,15,128,252,31,128,124,31,128,126,63,0, + 63,255,0,31,254,0,15,252,0,1,128,0,1,128,0,1, + 224,0,1,248,0,0,60,0,0,28,0,0,28,0,6,60, + 0,7,248,0,7,224,0,19,32,96,22,2,0,31,0,0, + 31,0,0,15,128,0,7,128,0,3,192,0,1,192,0,0, + 224,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, + 0,7,252,0,31,255,0,63,255,0,62,31,128,124,15,192, + 124,7,192,252,7,192,255,255,192,255,255,192,255,255,224,255, + 255,224,248,0,0,248,0,0,252,0,0,124,7,192,124,15, + 192,126,31,128,63,255,128,31,255,0,7,252,0,19,32,96, + 22,2,0,0,31,0,0,62,0,0,60,0,0,120,0,0, + 120,0,0,240,0,0,224,0,1,192,0,0,0,0,0,0, + 0,0,0,0,0,0,0,7,252,0,31,255,0,63,255,0, + 62,31,128,124,15,192,124,7,192,252,7,192,255,255,192,255, + 255,192,255,255,224,255,255,224,248,0,0,248,0,0,252,0, + 0,124,7,192,124,15,192,126,31,128,63,255,128,31,255,0, + 7,252,0,19,32,96,22,2,0,3,240,0,3,248,0,7, + 248,0,7,188,0,15,28,0,14,30,0,28,14,0,28,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,7,252,0, + 31,255,0,63,255,0,62,31,128,124,15,192,124,7,192,252, + 7,192,255,255,192,255,255,192,255,255,224,255,255,224,248,0, + 0,248,0,0,252,0,0,124,7,192,124,15,192,126,31,128, + 63,255,128,31,255,0,7,252,0,19,31,93,22,2,0,30, + 30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, + 15,192,252,15,192,255,255,192,255,255,192,255,255,224,255,255, + 224,248,0,0,248,0,0,252,0,0,124,15,192,124,15,192, + 126,31,128,63,255,128,31,255,0,7,252,0,8,32,32,11, + 0,0,248,120,124,60,30,14,7,7,0,0,0,0,31,31, + 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, + 31,31,9,32,64,10,2,0,15,128,31,0,30,0,62,0, + 60,0,120,0,112,0,224,0,0,0,0,0,0,0,0,0, + 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, + 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, + 124,0,124,0,124,0,124,0,13,32,64,11,255,0,15,192, + 31,192,31,224,61,224,56,240,120,112,112,56,224,56,0,0, + 0,0,0,0,0,0,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,13,31, + 62,11,255,0,240,120,240,120,240,120,240,120,240,120,0,0, + 0,0,0,0,0,0,0,0,0,0,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,20,31,93,24,2,0,0,0,96,7,193,224,3,247, + 224,1,255,128,0,254,0,0,254,0,3,254,0,15,159,0, + 30,15,128,24,15,128,0,7,192,7,255,192,15,255,224,63, + 255,224,63,15,240,126,3,240,124,3,240,252,1,240,252,1, + 240,252,1,240,248,1,240,248,1,240,252,1,240,252,1,240, + 252,1,240,124,3,240,126,3,224,63,15,224,31,255,192,15, + 255,128,7,254,0,18,30,90,24,3,0,7,134,0,15,254, + 0,15,254,0,31,252,0,24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,249,255,0,251,255,128,251, + 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,20,32,96,24,2,0,15,128,0,7,128, + 0,7,192,0,3,192,0,1,224,0,0,224,0,0,112,0, + 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,3, + 254,0,15,255,0,31,255,192,63,15,192,126,3,224,124,3, + 240,252,1,240,252,1,240,252,1,240,248,1,240,248,1,240, + 248,1,240,252,1,240,252,1,240,124,3,240,126,3,224,63, + 15,192,31,255,192,15,255,0,3,254,0,20,32,96,24,2, + 0,0,15,128,0,31,0,0,30,0,0,60,0,0,56,0, + 0,120,0,0,112,0,0,224,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,254,0,15,255,0,31,255,192,63,15, + 192,126,3,224,124,3,240,252,1,240,252,1,240,252,1,240, + 248,1,240,248,1,240,248,1,240,252,1,240,252,1,240,124, + 3,240,126,3,224,63,15,192,31,255,192,15,255,0,3,254, + 0,20,32,96,24,2,0,1,248,0,1,252,0,3,252,0, + 3,222,0,7,158,0,7,15,0,14,7,0,14,3,128,0, + 0,0,0,0,0,0,0,0,0,0,0,3,254,0,15,255, + 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, + 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, + 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, + 192,15,255,0,3,254,0,20,31,93,24,2,0,0,1,128, + 3,195,0,7,255,0,7,255,0,15,254,0,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,254, + 0,15,255,0,31,255,192,63,15,192,126,3,224,124,3,240, + 252,1,240,252,1,240,252,1,240,248,1,240,248,1,240,248, + 1,240,252,1,240,252,1,240,124,3,240,126,3,224,63,15, + 192,31,255,192,15,255,0,3,254,0,20,31,93,24,2,0, + 15,7,128,15,7,128,15,7,128,15,7,128,15,7,128,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,254,0,15,255,0,31,255,192,63,15,192,126,3,224, + 124,3,240,252,1,240,252,1,240,252,1,240,248,1,240,248, + 1,240,248,1,240,252,1,240,252,1,240,124,3,240,126,3, + 224,63,15,192,31,255,192,15,255,0,3,254,0,24,19,57, + 40,8,2,0,16,0,0,56,0,0,124,0,0,124,0,0, + 124,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, + 255,255,255,255,0,0,0,0,0,0,0,0,0,0,56,0, + 0,124,0,0,124,0,0,124,0,0,56,0,21,26,78,24, + 1,254,0,0,56,0,0,120,0,0,112,1,255,224,7,255, + 224,15,255,224,31,135,224,63,7,240,62,15,248,126,14,248, + 126,28,248,126,56,248,124,120,248,124,112,248,126,224,248,127, + 192,248,63,193,248,63,129,248,63,3,240,31,135,224,31,255, + 224,31,255,192,57,255,0,120,0,0,240,0,0,96,0,0, + 18,32,96,24,3,0,31,0,0,15,0,0,15,128,0,7, + 128,0,3,192,0,1,192,0,0,224,0,0,224,0,0,0, + 0,0,0,0,0,0,0,0,0,0,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,252,7,192,252,15,192,252,15,192,254,31,192,127,255,192, + 63,247,192,31,231,192,18,32,96,24,3,0,0,62,0,0, + 60,0,0,124,0,0,120,0,0,240,0,0,224,0,1,224, + 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,252,7,192,252,15,192,252,15,192, + 254,31,192,127,255,192,63,247,192,31,231,192,18,32,96,24, + 3,0,3,240,0,3,248,0,7,248,0,7,188,0,15,60, + 0,14,30,0,30,14,0,28,6,0,0,0,0,0,0,0, + 0,0,0,0,0,0,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, + 252,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, + 231,192,18,31,93,24,3,0,30,30,0,30,30,0,30,30, + 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 252,7,192,252,15,192,252,15,192,254,31,192,127,255,192,63, + 247,192,31,231,192,21,41,123,22,1,248,0,7,192,0,15, + 128,0,15,0,0,30,0,0,30,0,0,60,0,0,56,0, + 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,252,1,248,252,3,240,126,3,240,126,3,224,63,7, + 224,63,7,224,63,7,192,31,143,192,31,143,192,15,143,128, + 15,223,128,15,223,128,7,223,0,7,255,0,3,255,0,3, + 254,0,3,254,0,1,252,0,1,252,0,0,252,0,0,248, + 0,1,248,0,33,248,0,115,240,0,255,240,0,255,224,0, + 127,192,0,31,128,0,20,38,114,25,3,248,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,249,254,0,251,255,128, + 251,255,192,255,15,192,254,7,224,252,3,224,252,3,240,252, + 3,240,252,3,240,248,1,240,248,1,240,252,3,240,252,3, + 240,252,3,240,252,3,224,254,7,224,255,15,192,255,255,192, + 251,255,128,249,254,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,21,39, + 117,21,0,248,15,7,128,15,7,128,15,7,128,15,7,128, + 15,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,252,1,248,252,1,248,126,1,240,126,3, + 240,63,3,224,63,3,224,63,7,224,31,135,192,31,143,192, + 15,207,192,15,207,128,15,223,128,7,255,128,7,255,0,3, + 255,0,3,255,0,3,254,0,1,254,0,1,252,0,0,252, + 0,0,252,0,1,248,0,1,248,0,1,248,0,3,240,0, + 3,240,0,7,240,0,7,224,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 30 + Calculated Max Values w=24 h=32 x= 8 y=14 dx=40 dy= 0 ascent=31 len=90 + Font Bounding box w=59 h=54 x=-3 y=-11 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =30 descent= 0 + X Font ascent =30 descent= 0 + Max Font ascent =31 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub30n[1179] U8G_SECTION(".progmem.u8g_font_fub30n") = { + 0,59,54,253,245,30,0,0,0,0,42,57,0,31,251,30, + 0,16,16,32,26,5,14,4,32,28,56,30,120,30,120,15, + 240,7,224,227,199,255,255,255,255,243,207,7,224,15,240,30, + 120,30,120,28,56,4,32,24,25,75,40,8,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,255,255, + 255,255,255,255,255,255,255,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,8,10,10,12,2,251,31,31, + 62,62,60,124,120,120,240,240,10,5,10,14,2,8,255,192, + 255,192,255,192,255,192,255,192,5,5,5,12,4,0,248,248, + 248,248,248,13,32,64,17,2,254,0,120,0,120,0,120,0, + 240,0,240,0,240,1,224,1,224,1,224,3,192,3,192,3, + 192,3,192,7,128,7,128,7,128,15,0,15,0,15,0,14, + 0,30,0,30,0,30,0,60,0,60,0,60,0,120,0,120, + 0,120,0,120,0,240,0,240,0,20,30,90,23,1,1,3, + 252,0,15,255,0,31,255,128,63,15,128,62,7,192,124,3, + 192,124,3,224,124,3,224,124,3,224,248,1,240,248,1,240, + 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,124,3, + 224,124,3,224,124,3,224,124,3,224,62,7,192,63,15,128, + 31,255,128,15,255,0,3,252,0,12,30,60,23,4,0,1, + 240,3,240,15,240,63,240,255,240,255,240,253,240,249,240,225, + 240,129,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,20,30,90,23,1, + 1,3,255,0,7,255,128,31,255,192,31,255,224,63,255,240, + 63,3,240,126,1,240,126,1,240,124,1,240,0,1,240,0, + 3,240,0,3,240,0,7,224,0,15,224,0,15,192,0,31, + 128,0,63,0,0,254,0,1,252,0,3,248,0,7,240,0, + 15,224,0,63,128,0,127,0,0,252,0,0,255,255,240,255, + 255,240,255,255,240,255,255,240,255,255,240,19,30,90,23,2, + 1,7,252,0,31,255,0,63,255,128,127,255,128,127,255,192, + 252,15,192,252,7,192,248,7,192,0,7,192,0,7,192,0, + 15,192,0,63,192,3,255,128,3,254,0,3,252,0,3,255, + 0,3,255,128,0,31,192,0,7,224,0,7,224,0,7,224, + 0,3,224,248,7,224,252,7,224,252,7,192,126,15,192,127, + 255,128,63,255,128,31,255,0,15,252,0,21,30,90,23,1, + 0,0,63,128,0,63,128,0,127,128,0,255,128,0,255,128, + 1,255,128,1,255,128,3,239,128,3,207,128,7,207,128,15, + 143,128,15,143,128,31,15,128,31,15,128,62,15,128,62,15, + 128,124,15,128,252,15,128,248,15,128,255,255,248,255,255,248, + 255,255,248,255,255,248,255,255,248,0,15,128,0,15,128,0, + 15,128,0,15,128,0,15,128,0,15,128,19,30,90,23,2, + 0,127,255,192,127,255,192,127,255,192,127,255,192,127,255,192, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,252,0,125,255,0,127,255,128,127,255,192,127,15, + 224,126,7,224,124,3,224,0,3,224,0,3,224,0,3,224, + 0,3,224,0,3,224,248,7,224,252,7,224,252,15,192,127, + 255,128,127,255,128,63,254,0,15,252,0,20,30,90,23,1, + 1,3,254,0,7,255,0,15,255,128,31,255,192,63,255,192, + 63,7,224,126,3,224,126,3,224,124,0,0,124,0,0,252, + 0,0,248,0,0,249,255,0,251,255,128,255,255,192,255,15, + 224,254,7,224,254,3,240,252,3,240,252,3,240,252,1,240, + 252,1,240,124,3,240,124,3,240,126,3,224,63,7,224,63, + 255,192,31,255,128,15,255,0,3,254,0,19,30,90,23,2, + 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, + 0,7,224,0,7,224,0,7,192,0,15,192,0,15,192,0, + 31,128,0,31,128,0,63,0,0,63,0,0,63,0,0,126, + 0,0,126,0,0,252,0,0,252,0,1,252,0,1,248,0, + 1,248,0,3,240,0,3,240,0,7,240,0,7,224,0,15, + 224,0,15,192,0,15,192,0,31,192,0,20,30,90,23,1, + 1,7,254,0,31,255,128,63,255,192,127,255,224,127,255,224, + 126,7,224,124,3,224,124,3,224,124,3,224,124,3,224,126, + 7,224,127,15,192,63,255,128,15,255,0,7,252,0,31,255, + 0,63,255,192,127,15,224,124,7,224,252,3,240,252,3,240, + 248,1,240,248,3,240,252,3,240,252,3,240,254,7,240,127, + 255,224,63,255,192,31,255,128,15,255,0,20,30,90,23,1, + 1,3,252,0,15,255,0,31,255,128,63,255,192,127,255,192, + 126,7,224,252,7,224,252,3,224,252,3,240,248,3,240,248, + 3,240,252,3,240,252,7,240,124,7,240,127,15,240,63,255, + 240,63,253,240,31,249,240,7,225,240,0,3,240,0,3,224, + 0,3,224,0,3,224,124,7,224,124,7,192,126,15,192,63, + 255,128,31,255,0,15,254,0,7,252,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 30, '1' Height: 30 + Calculated Max Values w=38 h=43 x=10 y=25 dx=42 dy= 0 ascent=33 len=195 + Font Bounding box w=59 h=54 x=-3 y=-11 + Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-7 + X Font ascent =31 descent=-8 + Max Font ascent =33 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub30r[7686] U8G_SECTION(".progmem.u8g_font_fub30r") = { + 0,59,54,253,245,30,9,163,21,182,32,127,249,33,245,31, + 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, + 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, + 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, + 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, + 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, + 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, + 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, + 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, + 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, + 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, + 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, + 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, + 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, + 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, + 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, + 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, + 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, + 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, + 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, + 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, + 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, + 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, + 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, + 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, + 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, + 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, + 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, + 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, + 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, + 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, + 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, + 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, + 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, + 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, + 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, + 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, + 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, + 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, + 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, + 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, + 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, + 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, + 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, + 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, + 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, + 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, + 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, + 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, + 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, + 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, + 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, + 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, + 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, + 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, + 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, + 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, + 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, + 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, + 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, + 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, + 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, + 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, + 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, + 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, + 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, + 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, + 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, + 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, + 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, + 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, + 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, + 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, + 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, + 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, + 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, + 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, + 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, + 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, + 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, + 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, + 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, + 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, + 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, + 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, + 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, + 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, + 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, + 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, + 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, + 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, + 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, + 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, + 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, + 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, + 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, + 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, + 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, + 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, + 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, + 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, + 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, + 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, + 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, + 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, + 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, + 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, + 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, + 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, + 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, + 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, + 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, + 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, + 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, + 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, + 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, + 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, + 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, + 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, + 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, + 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, + 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, + 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, + 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, + 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, + 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, + 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, + 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, + 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, + 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, + 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, + 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, + 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, + 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, + 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, + 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, + 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, + 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, + 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, + 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, + 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, + 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, + 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, + 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, + 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, + 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, + 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, + 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, + 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, + 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, + 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, + 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, + 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, + 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, + 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, + 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, + 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, + 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, + 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, + 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, + 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, + 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, + 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, + 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, + 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, + 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, + 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, + 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, + 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, + 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, + 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, + 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, + 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, + 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, + 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, + 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, + 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, + 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, + 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, + 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, + 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, + 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, + 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, + 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, + 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, + 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, + 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, + 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, + 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, + 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, + 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, + 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, + 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, + 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, + 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, + 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, + 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, + 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, + 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, + 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, + 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, + 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, + 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, + 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, + 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, + 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, + 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, + 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, + 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, + 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, + 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, + 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, + 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, + 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, + 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, + 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, + 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, + 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, + 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, + 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, + 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, + 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, + 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, + 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, + 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, + 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, + 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, + 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, + 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, + 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, + 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, + 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, + 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, + 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, + 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, + 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, + 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, + 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, + 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, + 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, + 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, + 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, + 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, + 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, + 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, + 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, + 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, + 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, + 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, + 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, + 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, + 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, + 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, + 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, + 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, + 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, + 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, + 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, + 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, + 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, + 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, + 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, + 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, + 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, + 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, + 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, + 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, + 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, + 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, + 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, + 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, + 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, + 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, + 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, + 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, + 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, + 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, + 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, + 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, + 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, + 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, + 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, + 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, + 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, + 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, + 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, + 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, + 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, + 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, + 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, + 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, + 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, + 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, + 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, + 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, + 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, + 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, + 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, + 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, + 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, + 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, + 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, + 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, + 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, + 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, + 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, + 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, + 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, + 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, + 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, + 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, + 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, + 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, + 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, + 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, + 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, + 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, + 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, + 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, + 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, + 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, + 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, + 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, + 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, + 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, + 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, + 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, + 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, + 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, + 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, + 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, + 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, + 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, + 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, + 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, + 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, + 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, + 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, + 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, + 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, + 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, + 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, + 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, + 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, + 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, + 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, + 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, + 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, + 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, + 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, + 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, + 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, + 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, + 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, + 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, + 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, + 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, + 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, + 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, + 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, + 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, + 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, + 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, + 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, + 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, + 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, + 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, + 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, + 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, + 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, + 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, + 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, + 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, + 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, + 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, + 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, + 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, + 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, + 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, + 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, + 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, + 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, + 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, + 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, + 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, + 255,224,240,31,128,255}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--49-490-72-72-P-242-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 35 + Calculated Max Values w=29 h=39 x=10 y=17 dx=49 dy= 0 ascent=36 len=140 + Font Bounding box w=72 h=65 x=-4 y=-13 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =35 descent= 0 + X Font ascent =35 descent= 0 + Max Font ascent =36 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub35n[1667] U8G_SECTION(".progmem.u8g_font_fub35n") = { + 0,72,65,252,243,35,0,0,0,0,42,57,0,36,250,35, + 0,20,18,54,32,6,17,7,14,0,31,15,128,31,159,128, + 15,159,0,7,158,0,3,252,0,129,248,16,254,247,240,255, + 255,240,255,255,240,249,249,240,1,248,0,3,252,0,7,158, + 0,15,159,0,31,143,128,31,15,128,7,14,0,29,29,116, + 49,10,0,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,255,255,255,248,255,255,255,248,255, + 255,255,248,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, + 7,0,0,0,7,0,0,11,12,24,15,2,250,15,224,15, + 192,31,192,31,128,31,128,63,0,63,0,62,0,126,0,124, + 0,124,0,248,0,13,6,12,17,2,9,255,248,255,248,255, + 248,255,248,255,248,255,248,7,6,6,15,5,0,254,254,254, + 254,254,254,17,39,117,21,2,253,0,15,128,0,15,0,0, + 31,0,0,31,0,0,30,0,0,62,0,0,62,0,0,62, + 0,0,124,0,0,124,0,0,124,0,0,120,0,0,248,0, + 0,248,0,0,240,0,1,240,0,1,240,0,1,240,0,3, + 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, + 0,7,128,0,15,128,0,15,128,0,15,128,0,31,0,0, + 31,0,0,31,0,0,62,0,0,62,0,0,62,0,0,60, + 0,0,124,0,0,124,0,0,124,0,0,248,0,0,25,35, + 140,28,2,1,1,255,128,0,7,255,224,0,15,255,240,0, + 31,255,248,0,31,255,252,0,63,129,252,0,63,0,254,0, + 127,0,126,0,126,0,126,0,126,0,63,0,126,0,63,0, + 254,0,63,0,254,0,63,0,254,0,63,0,254,0,63,128, + 254,0,63,128,254,0,63,128,254,0,63,128,254,0,63,128, + 254,0,63,128,254,0,63,128,254,0,63,0,254,0,63,0, + 254,0,63,0,126,0,63,0,126,0,63,0,126,0,127,0, + 127,0,126,0,63,0,254,0,63,129,252,0,31,255,252,0, + 31,255,248,0,15,255,240,0,7,255,224,0,1,255,128,0, + 15,35,70,28,5,0,0,254,1,254,7,254,15,254,63,254, + 255,254,255,254,254,254,252,254,240,254,192,254,0,254,0,254, + 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, + 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, + 0,254,0,254,0,254,0,254,0,254,0,254,25,35,140,28, + 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, + 254,0,31,255,255,0,63,192,255,0,63,128,63,128,63,0, + 63,128,127,0,63,128,0,0,63,128,0,0,63,128,0,0, + 63,128,0,0,127,0,0,0,127,0,0,0,255,0,0,1, + 254,0,0,3,252,0,0,7,252,0,0,15,248,0,0,31, + 240,0,0,63,224,0,0,127,192,0,1,255,0,0,3,254, + 0,0,7,252,0,0,15,240,0,0,63,224,0,0,127,128, + 0,0,255,0,0,0,255,255,255,128,255,255,255,128,255,255, + 255,128,255,255,255,128,255,255,255,128,255,255,255,128,24,35, + 105,28,2,1,3,255,128,15,255,224,31,255,240,63,255,248, + 127,255,252,127,3,252,254,1,252,254,0,252,254,0,254,0, + 0,254,0,0,254,0,1,252,0,1,252,0,15,248,0,255, + 240,0,255,192,0,255,128,0,255,224,0,255,248,0,3,252, + 0,0,254,0,0,254,0,0,126,0,0,127,0,0,127,254, + 0,127,254,0,127,254,0,254,255,0,254,127,1,252,127,255, + 252,63,255,248,31,255,240,15,255,224,3,255,128,26,35,140, + 28,1,0,0,7,252,0,0,15,252,0,0,31,252,0,0, + 31,252,0,0,63,252,0,0,63,252,0,0,127,252,0,0, + 253,252,0,0,253,252,0,1,249,252,0,1,249,252,0,3, + 241,252,0,7,241,252,0,7,225,252,0,15,193,252,0,15, + 193,252,0,31,129,252,0,63,129,252,0,63,1,252,0,126, + 1,252,0,254,1,252,0,252,1,252,0,255,255,255,192,255, + 255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255, + 255,255,192,0,1,252,0,0,1,252,0,0,1,252,0,0, + 1,252,0,0,1,252,0,0,1,252,0,0,1,252,0,24, + 35,105,28,2,0,127,255,252,127,255,252,127,255,252,127,255, + 252,127,255,252,127,255,252,127,0,0,127,0,0,127,0,0, + 127,0,0,127,0,0,127,0,0,127,31,192,127,127,240,127, + 255,248,127,255,252,127,255,252,127,193,254,127,0,254,127,0, + 127,126,0,127,0,0,127,0,0,127,0,0,127,0,0,127, + 0,0,127,254,0,127,254,0,254,254,0,254,255,1,252,127, + 255,252,127,255,248,63,255,240,15,255,192,7,255,128,25,35, + 140,28,2,1,0,255,192,0,3,255,240,0,7,255,248,0, + 15,255,252,0,31,255,254,0,31,224,254,0,63,192,127,0, + 63,128,127,0,127,0,0,0,127,0,0,0,127,0,0,0, + 126,0,0,0,254,31,192,0,254,127,240,0,254,255,248,0, + 254,255,252,0,255,255,254,0,255,225,254,0,255,192,255,0, + 255,128,127,0,255,0,63,0,255,0,63,128,255,0,63,128, + 255,0,63,128,255,0,63,128,127,0,63,0,127,0,63,0, + 127,128,127,0,127,128,127,0,63,192,254,0,31,255,252,0, + 31,255,252,0,15,255,248,0,7,255,224,0,1,255,128,0, + 24,35,105,28,2,0,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,127,0,0,127,0,0, + 254,0,0,254,0,1,254,0,1,252,0,3,252,0,3,248, + 0,7,248,0,7,240,0,15,240,0,15,240,0,31,224,0, + 31,224,0,63,192,0,63,192,0,63,128,0,127,128,0,127, + 0,0,255,0,0,255,0,1,254,0,1,254,0,3,252,0, + 3,252,0,7,248,0,7,248,0,15,248,0,15,240,0,25, + 35,140,28,2,1,3,255,192,0,15,255,240,0,31,255,252, + 0,63,255,254,0,63,255,254,0,127,193,255,0,127,128,255, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, + 0,127,0,127,0,63,128,254,0,63,193,252,0,15,255,248, + 0,7,255,224,0,1,255,192,0,15,255,240,0,31,255,248, + 0,63,193,254,0,127,128,254,0,127,0,127,0,254,0,63, + 0,254,0,63,0,254,0,63,128,254,0,63,128,254,0,63, + 128,255,0,127,128,255,0,127,0,127,128,255,0,127,255,255, + 0,63,255,254,0,63,255,252,0,15,255,248,0,3,255,224, + 0,25,35,140,28,2,1,1,255,192,0,7,255,224,0,15, + 255,248,0,31,255,252,0,63,255,252,0,127,129,254,0,127, + 0,254,0,126,0,255,0,254,0,127,0,254,0,127,0,254, + 0,127,128,254,0,127,128,254,0,127,128,254,0,127,128,254, + 0,255,128,127,0,255,128,127,131,255,128,63,255,255,128,63, + 255,191,128,31,255,191,128,15,255,63,128,1,248,63,128,0, + 0,63,0,0,0,127,0,0,0,127,0,0,0,127,0,127, + 0,254,0,127,0,254,0,127,1,254,0,63,131,252,0,31, + 255,252,0,31,255,248,0,15,255,240,0,7,255,224,0,1, + 255,128,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--58-580-72-72-P-286-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 42 + Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=176 + Font Bounding box w=87 h=77 x=-5 y=-15 + Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 + Pure Font ascent =42 descent= 0 + X Font ascent =42 descent= 0 + Max Font ascent =43 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub42n[2235] U8G_SECTION(".progmem.u8g_font_fub42n") = { + 0,87,77,251,241,42,0,0,0,0,42,57,0,43,248,42, + 0,23,23,69,37,7,20,0,130,0,3,131,128,15,131,224, + 31,199,224,15,199,224,7,199,192,3,239,128,1,239,0,0, + 254,0,248,254,62,255,255,254,255,255,254,255,255,254,254,124, + 254,128,254,2,1,239,0,3,239,128,7,239,192,7,199,192, + 15,199,224,31,131,240,7,131,192,1,131,0,35,35,175,59, + 12,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, + 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, + 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, + 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, + 0,0,255,255,255,255,224,255,255,255,255,224,255,255,255,255, + 224,255,255,255,255,224,0,1,224,0,0,0,1,224,0,0, + 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, + 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, + 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, + 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, + 0,12,15,30,18,3,248,15,240,15,240,15,224,31,224,31, + 192,31,192,63,128,63,128,63,0,127,0,126,0,126,0,124, + 0,252,0,252,0,15,8,16,19,2,11,255,254,255,254,255, + 254,255,254,255,254,255,254,255,254,255,254,8,8,8,18,6, + 0,255,255,255,255,255,255,255,255,19,46,138,25,3,253,0, + 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, + 128,0,31,128,0,31,128,0,31,128,0,31,0,0,63,0, + 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, + 252,0,0,252,0,0,252,0,0,248,0,1,248,0,1,248, + 0,1,240,0,3,240,0,3,240,0,3,240,0,7,224,0, + 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, + 128,0,31,128,0,31,128,0,31,128,0,63,0,0,63,0, + 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, + 252,0,0,252,0,0,252,0,0,29,44,176,33,2,255,0, + 31,192,0,0,255,248,0,3,255,252,0,7,255,255,0,15, + 255,255,128,15,255,255,128,31,240,255,192,63,192,63,192,63, + 192,63,224,63,128,31,224,127,128,31,240,127,0,31,240,127, + 0,15,240,127,0,15,240,255,0,15,240,255,0,15,248,255, + 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, + 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, + 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, + 0,15,248,127,0,15,240,127,0,15,240,127,0,15,240,127, + 0,31,240,127,128,31,240,63,128,31,224,63,192,63,224,63, + 192,63,192,31,240,255,192,15,255,255,128,15,255,255,0,7, + 255,255,0,3,255,254,0,0,255,248,0,0,31,192,0,18, + 42,126,33,6,0,0,63,192,0,127,192,0,255,192,3,255, + 192,15,255,192,63,255,192,255,255,192,255,255,192,255,255,192, + 255,63,192,254,63,192,248,63,192,224,63,192,0,63,192,0, + 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, + 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, + 0,63,192,0,63,192,0,63,192,0,63,192,0,63,192,0, + 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, + 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, + 0,63,192,29,43,172,33,2,0,0,15,240,0,0,127,254, + 0,1,255,255,0,3,255,255,128,7,255,255,192,15,255,255, + 224,31,248,63,240,31,240,31,240,31,224,15,240,63,192,7, + 248,63,192,7,248,63,192,7,248,0,0,7,248,0,0,7, + 248,0,0,15,248,0,0,15,240,0,0,31,240,0,0,31, + 240,0,0,63,224,0,0,127,224,0,0,255,192,0,1,255, + 128,0,3,255,128,0,7,255,0,0,15,254,0,0,31,252, + 0,0,63,248,0,0,127,240,0,0,255,224,0,1,255,128, + 0,3,255,0,0,15,254,0,0,31,252,0,0,63,240,0, + 0,127,224,0,0,255,192,0,0,255,255,255,248,255,255,255, + 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, + 248,255,255,255,248,28,44,176,33,3,255,0,127,192,0,3, + 255,248,0,7,255,252,0,31,255,255,0,63,255,255,0,63, + 255,255,128,127,224,255,192,127,192,127,192,255,128,63,192,255, + 0,31,224,255,0,31,224,255,0,31,224,0,0,31,224,0, + 0,31,224,0,0,31,224,0,0,63,192,0,0,127,192,0, + 3,255,128,0,127,255,0,0,127,252,0,0,127,240,0,0, + 127,248,0,0,127,254,0,0,127,255,128,0,0,255,192,0, + 0,63,224,0,0,31,224,0,0,31,224,0,0,15,240,0, + 0,15,240,0,0,15,240,255,0,15,240,255,0,15,240,255, + 0,15,240,255,0,31,224,255,128,31,224,127,192,63,224,127, + 224,255,192,63,255,255,128,63,255,255,0,31,255,254,0,15, + 255,252,0,3,255,248,0,0,127,192,0,31,42,168,33,1, + 0,0,1,255,192,0,1,255,192,0,3,255,192,0,7,255, + 192,0,7,255,192,0,15,255,192,0,15,255,192,0,31,255, + 192,0,63,255,192,0,63,191,192,0,127,63,192,0,255,63, + 192,0,254,63,192,1,254,63,192,1,252,63,192,3,248,63, + 192,7,248,63,192,7,240,63,192,15,240,63,192,31,224,63, + 192,31,192,63,192,63,192,63,192,63,128,63,192,127,128,63, + 192,255,0,63,192,255,0,63,192,255,255,255,254,255,255,255, + 254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255, + 254,255,255,255,254,0,0,63,192,0,0,63,192,0,0,63, + 192,0,0,63,192,0,0,63,192,0,0,63,192,0,0,63, + 192,0,0,63,192,0,0,63,192,29,43,172,33,2,255,127, + 255,255,224,127,255,255,224,127,255,255,224,127,255,255,224,127, + 255,255,224,127,255,255,224,127,255,255,224,127,128,0,0,127, + 128,0,0,127,128,0,0,127,128,0,0,127,128,0,0,127, + 128,0,0,127,128,0,0,127,128,0,0,127,135,248,0,127, + 159,254,0,127,255,255,128,127,255,255,192,127,255,255,192,127, + 255,255,224,127,240,63,240,127,192,31,240,127,128,15,240,127, + 128,15,248,127,0,7,248,0,0,7,248,0,0,7,248,0, + 0,7,248,0,0,7,248,0,0,7,248,0,0,7,240,255, + 0,15,240,255,0,15,240,255,0,31,240,255,128,63,224,127, + 224,255,192,127,255,255,192,63,255,255,128,31,255,255,0,15, + 255,252,0,3,255,248,0,0,127,192,0,29,44,176,33,2, + 255,0,15,240,0,0,127,252,0,0,255,255,0,3,255,255, + 128,7,255,255,192,7,255,255,224,15,252,63,224,31,240,15, + 240,31,224,15,240,63,192,7,248,63,192,7,248,63,128,0, + 0,127,128,0,0,127,128,0,0,127,128,0,0,127,0,0, + 0,255,3,248,0,255,31,254,0,255,63,255,0,255,127,255, + 128,255,255,255,192,255,255,255,224,255,248,63,240,255,224,31, + 240,255,192,15,240,255,192,15,248,255,128,7,248,255,128,7, + 248,255,128,7,248,255,128,7,248,255,128,7,248,127,128,7, + 248,127,128,7,248,127,128,7,240,127,192,15,240,63,192,15, + 240,63,224,31,224,31,248,63,224,31,255,255,192,15,255,255, + 128,7,255,255,0,3,255,254,0,0,255,248,0,0,63,192, + 0,28,42,168,33,3,0,255,255,255,240,255,255,255,240,255, + 255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255, + 255,255,240,0,0,15,240,0,0,15,240,0,0,31,240,0, + 0,31,224,0,0,63,224,0,0,63,192,0,0,127,192,0, + 0,127,192,0,0,255,128,0,0,255,128,0,1,255,0,0, + 1,255,0,0,1,254,0,0,3,254,0,0,3,254,0,0, + 7,252,0,0,7,252,0,0,15,248,0,0,15,248,0,0, + 31,248,0,0,31,240,0,0,31,240,0,0,63,224,0,0, + 63,224,0,0,127,192,0,0,127,192,0,0,255,192,0,0, + 255,128,0,1,255,128,0,1,255,0,0,3,255,0,0,3, + 255,0,0,3,254,0,0,7,254,0,0,7,252,0,0,29, + 44,176,33,2,255,0,63,240,0,1,255,254,0,7,255,255, + 128,15,255,255,192,31,255,255,224,63,255,255,240,63,248,127, + 240,127,224,31,240,127,224,31,248,127,192,15,248,127,192,15, + 248,127,192,15,248,127,192,15,248,127,192,15,248,63,224,31, + 240,63,224,31,240,31,248,127,224,15,255,255,192,7,255,255, + 0,1,255,252,0,0,255,248,0,3,255,254,0,15,255,255, + 128,31,255,255,192,63,240,63,224,127,224,31,224,127,192,15, + 240,127,192,15,240,255,128,7,248,255,128,7,248,255,128,7, + 248,255,128,7,248,255,128,7,248,255,128,7,248,255,192,15, + 248,255,192,15,248,127,224,31,240,127,240,63,240,127,255,255, + 224,63,255,255,224,31,255,255,192,15,255,255,128,3,255,254, + 0,0,127,240,0,29,44,176,33,2,255,0,31,192,0,0, + 255,248,0,3,255,254,0,7,255,255,0,15,255,255,128,31, + 255,255,128,63,224,255,192,63,192,63,224,127,128,31,224,127, + 128,31,224,127,0,15,240,255,0,15,240,255,0,15,240,255, + 0,15,240,255,0,15,248,255,0,15,248,255,0,15,248,255, + 0,15,248,255,128,31,248,127,128,31,248,127,192,63,248,127, + 224,255,248,63,255,255,248,31,255,255,248,31,255,247,248,15, + 255,231,248,3,255,199,248,0,254,7,240,0,0,7,240,0, + 0,15,240,0,0,15,240,0,0,15,240,0,0,15,224,127, + 128,31,224,127,128,31,224,63,128,63,192,63,192,127,192,63, + 224,255,128,31,255,255,128,15,255,255,0,7,255,254,0,3, + 255,252,0,1,255,240,0,0,63,192,0}; +/* + Fontname: -FreeType-FreeUniversal-Bold-R-Normal--68-680-72-72-P-335-ISO10646-1 + Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 49 + Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=255 + Font Bounding box w=100 h=91 x=-5 y=-18 + Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 + Pure Font ascent =49 descent= 0 + X Font ascent =49 descent= 0 + Max Font ascent =50 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fub49n[3074] U8G_SECTION(".progmem.u8g_font_fub49n") = { + 0,100,91,251,238,49,0,0,0,0,42,57,0,50,247,49, + 0,27,27,108,43,8,23,0,64,64,0,1,192,112,0,7, + 224,252,0,15,224,254,0,7,241,252,0,7,241,252,0,3, + 241,248,0,1,251,240,0,0,251,224,0,0,127,192,0,224, + 127,192,224,255,191,191,224,255,255,255,224,255,255,255,224,255, + 255,255,224,255,63,159,224,192,127,192,96,0,123,192,0,0, + 251,224,0,1,251,240,0,3,241,248,0,7,241,252,0,15, + 241,252,0,15,224,254,0,7,224,252,0,1,192,112,0,0, + 64,64,0,41,41,246,69,14,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,255,255,255,255,255, + 128,255,255,255,255,255,128,255,255,255,255,255,128,255,255,255, + 255,255,128,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,15, + 17,34,21,3,247,7,254,7,252,7,252,7,248,15,248,15, + 240,15,240,31,224,31,224,31,192,63,192,63,128,63,128,127, + 0,127,0,126,0,254,0,17,9,27,23,3,13,255,255,128, + 255,255,128,255,255,128,255,255,128,255,255,128,255,255,128,255, + 255,128,255,255,128,255,255,128,9,9,18,21,7,0,255,128, + 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, + 23,54,162,29,3,252,0,0,254,0,0,254,0,0,252,0, + 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, + 248,0,7,240,0,7,240,0,7,240,0,7,224,0,15,224, + 0,15,224,0,15,192,0,31,192,0,31,192,0,31,192,0, + 63,128,0,63,128,0,63,128,0,63,0,0,127,0,0,127, + 0,0,126,0,0,254,0,0,254,0,0,254,0,1,252,0, + 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, + 240,0,7,240,0,7,240,0,7,240,0,15,224,0,15,224, + 0,15,224,0,15,192,0,31,192,0,31,192,0,31,128,0, + 63,128,0,63,128,0,63,0,0,127,0,0,127,0,0,127, + 0,0,126,0,0,254,0,0,34,51,255,39,2,255,0,7, + 248,0,0,0,63,255,0,0,0,255,255,192,0,1,255,255, + 224,0,3,255,255,240,0,7,255,255,248,0,15,255,255,252, + 0,15,254,31,252,0,31,248,7,254,0,31,240,3,254,0, + 63,240,3,255,0,63,224,1,255,0,63,224,1,255,0,127, + 224,1,255,128,127,192,0,255,128,127,192,0,255,128,127,192, + 0,255,128,255,192,0,255,128,255,192,0,255,192,255,192,0, + 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, + 192,255,192,0,255,192,255,192,0,255,192,255,192,0,255,192, + 255,192,0,255,192,255,192,0,255,192,255,192,0,255,192,255, + 192,0,255,192,255,192,0,255,192,255,192,0,255,192,255,192, + 0,255,192,255,192,0,255,128,127,192,0,255,128,127,192,0, + 255,128,127,192,0,255,128,127,224,1,255,128,63,224,1,255, + 0,63,224,1,255,0,63,240,3,255,0,31,240,3,254,0, + 31,248,7,254,0,15,254,31,252,0,15,255,255,252,0,7, + 255,255,248,0,3,255,255,240,0,1,255,255,224,0,0,255, + 255,192,0,0,63,255,0,0,0,7,248,0,0,20,49,147, + 39,7,0,0,31,240,0,63,240,0,127,240,1,255,240,3, + 255,240,15,255,240,63,255,240,255,255,240,255,255,240,255,255, + 240,255,223,240,255,159,240,254,31,240,248,31,240,224,31,240, + 128,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, + 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, + 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, + 0,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, + 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, + 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, + 0,31,240,0,31,240,34,50,250,39,2,0,0,3,254,0, + 0,0,31,255,192,0,0,127,255,240,0,0,255,255,248,0, + 3,255,255,254,0,7,255,255,254,0,7,255,255,255,0,15, + 255,255,255,128,31,255,7,255,128,31,252,1,255,192,31,248, + 0,255,192,63,248,0,255,192,63,240,0,127,192,63,240,0, + 127,192,63,240,0,127,192,0,0,0,127,192,0,0,0,127, + 192,0,0,0,255,192,0,0,0,255,128,0,0,1,255,128, + 0,0,1,255,128,0,0,3,255,0,0,0,7,255,0,0, + 0,15,254,0,0,0,31,254,0,0,0,63,252,0,0,0, + 127,248,0,0,0,255,240,0,0,1,255,224,0,0,3,255, + 192,0,0,7,255,128,0,0,15,255,0,0,0,31,254,0, + 0,0,63,252,0,0,0,255,248,0,0,1,255,224,0,0, + 3,255,192,0,0,7,255,128,0,0,31,254,0,0,0,63, + 252,0,0,0,127,248,0,0,0,255,224,0,0,0,255,255, + 255,255,192,255,255,255,255,192,255,255,255,255,192,255,255,255, + 255,192,255,255,255,255,192,255,255,255,255,192,255,255,255,255, + 192,255,255,255,255,192,32,51,204,39,3,255,0,31,248,0, + 0,255,255,0,3,255,255,128,7,255,255,224,15,255,255,240, + 31,255,255,248,63,255,255,248,127,255,255,252,127,248,31,252, + 127,224,15,254,255,192,7,254,255,192,3,254,255,128,3,254, + 255,128,3,254,0,0,3,254,0,0,3,254,0,0,3,254, + 0,0,7,254,0,0,15,252,0,0,127,252,0,63,255,248, + 0,63,255,224,0,63,255,192,0,63,254,0,0,63,255,0, + 0,63,255,192,0,63,255,240,0,63,255,248,0,0,63,252, + 0,0,7,254,0,0,3,254,0,0,3,255,0,0,1,255, + 0,0,1,255,0,0,1,255,0,0,1,255,255,128,1,255, + 255,128,1,255,255,128,1,255,255,192,3,255,255,192,3,254, + 127,224,7,254,127,224,15,254,127,248,31,252,63,255,255,248, + 63,255,255,240,31,255,255,240,15,255,255,192,3,255,255,128, + 1,255,254,0,0,31,240,0,36,50,250,39,2,0,0,0, + 63,252,0,0,0,127,252,0,0,0,127,252,0,0,0,255, + 252,0,0,0,255,252,0,0,1,255,252,0,0,3,255,252, + 0,0,3,255,252,0,0,7,255,252,0,0,7,255,252,0, + 0,15,247,252,0,0,31,247,252,0,0,31,231,252,0,0, + 63,199,252,0,0,127,199,252,0,0,127,135,252,0,0,255, + 135,252,0,0,255,7,252,0,1,255,7,252,0,3,254,7, + 252,0,3,252,7,252,0,7,252,7,252,0,7,248,7,252, + 0,15,248,7,252,0,31,240,7,252,0,31,240,7,252,0, + 63,224,7,252,0,63,192,7,252,0,127,192,7,252,0,255, + 128,7,252,0,255,128,7,252,0,255,255,255,255,240,255,255, + 255,255,240,255,255,255,255,240,255,255,255,255,240,255,255,255, + 255,240,255,255,255,255,240,255,255,255,255,240,255,255,255,255, + 240,0,0,7,252,0,0,0,7,252,0,0,0,7,252,0, + 0,0,7,252,0,0,0,7,252,0,0,0,7,252,0,0, + 0,7,252,0,0,0,7,252,0,0,0,7,252,0,0,0, + 7,252,0,0,0,7,252,0,33,50,250,39,3,255,127,255, + 255,254,0,127,255,255,254,0,127,255,255,254,0,127,255,255, + 254,0,127,255,255,254,0,127,255,255,254,0,127,255,255,254, + 0,127,255,255,254,0,127,192,0,0,0,127,192,0,0,0, + 127,192,0,0,0,127,192,0,0,0,127,192,0,0,0,127, + 192,0,0,0,127,192,0,0,0,127,192,0,0,0,127,192, + 0,0,0,127,193,255,0,0,127,199,255,192,0,127,223,255, + 240,0,127,255,255,248,0,127,255,255,252,0,127,255,255,254, + 0,127,255,255,254,0,127,252,15,255,0,127,240,3,255,0, + 127,224,3,255,0,127,192,1,255,128,127,192,1,255,128,0, + 0,0,255,128,0,0,0,255,128,0,0,0,255,128,0,0, + 0,255,128,0,0,0,255,128,0,0,0,255,128,0,0,0, + 255,128,0,0,0,255,128,255,128,1,255,128,255,128,1,255, + 0,255,192,3,255,0,255,192,3,254,0,127,224,15,254,0, + 127,248,63,252,0,127,255,255,252,0,63,255,255,248,0,31, + 255,255,240,0,15,255,255,224,0,7,255,255,128,0,1,255, + 254,0,0,0,63,240,0,0,34,51,255,39,2,255,0,3, + 252,0,0,0,31,255,128,0,0,127,255,224,0,0,255,255, + 240,0,1,255,255,248,0,3,255,255,252,0,7,255,255,254, + 0,7,255,255,254,0,15,255,7,255,0,31,252,3,255,0, + 31,248,1,255,128,31,248,0,255,128,63,240,0,255,128,63, + 224,0,0,0,63,224,0,0,0,127,224,0,0,0,127,192, + 0,0,0,127,192,0,0,0,127,192,127,0,0,127,195,255, + 224,0,255,199,255,240,0,255,207,255,248,0,255,223,255,252, + 0,255,191,255,254,0,255,255,255,255,0,255,254,15,255,0, + 255,248,3,255,128,255,248,3,255,128,255,240,1,255,128,255, + 240,1,255,192,255,224,0,255,192,255,224,0,255,192,255,224, + 0,255,192,255,224,0,255,192,255,224,0,255,192,127,224,0, + 255,192,127,224,0,255,192,127,224,0,255,192,127,224,0,255, + 128,63,240,1,255,128,63,240,1,255,128,63,248,3,255,0, + 31,248,3,255,0,31,254,15,254,0,15,255,255,254,0,7, + 255,255,252,0,3,255,255,248,0,1,255,255,240,0,0,255, + 255,192,0,0,63,255,0,0,0,7,248,0,0,33,49,245, + 39,3,0,255,255,255,255,128,255,255,255,255,128,255,255,255, + 255,128,255,255,255,255,128,255,255,255,255,128,255,255,255,255, + 128,255,255,255,255,128,255,255,255,255,128,0,0,0,255,128, + 0,0,1,255,128,0,0,1,255,128,0,0,3,255,0,0, + 0,3,255,0,0,0,7,254,0,0,0,7,254,0,0,0, + 15,254,0,0,0,15,252,0,0,0,31,252,0,0,0,31, + 248,0,0,0,31,248,0,0,0,63,240,0,0,0,63,240, + 0,0,0,127,240,0,0,0,127,224,0,0,0,255,224,0, + 0,0,255,192,0,0,1,255,192,0,0,1,255,192,0,0, + 3,255,128,0,0,3,255,128,0,0,3,255,0,0,0,7, + 255,0,0,0,7,254,0,0,0,15,254,0,0,0,15,254, + 0,0,0,31,252,0,0,0,31,252,0,0,0,63,248,0, + 0,0,63,248,0,0,0,63,248,0,0,0,127,240,0,0, + 0,127,240,0,0,0,255,224,0,0,0,255,224,0,0,1, + 255,192,0,0,1,255,192,0,0,3,255,192,0,0,3,255, + 128,0,0,7,255,128,0,0,34,51,255,39,2,255,0,15, + 252,0,0,0,255,255,192,0,3,255,255,240,0,7,255,255, + 248,0,15,255,255,252,0,31,255,255,254,0,63,255,255,255, + 0,63,255,255,255,0,63,252,15,255,0,127,248,7,255,128, + 127,240,3,255,128,127,224,1,255,128,127,224,1,255,128,127, + 224,1,255,128,127,224,1,255,128,127,224,1,255,128,127,224, + 1,255,128,63,240,3,255,0,63,248,7,255,0,31,252,15, + 254,0,15,255,255,252,0,7,255,255,240,0,1,255,255,192, + 0,0,63,255,0,0,0,255,255,128,0,3,255,255,224,0, + 7,255,255,248,0,31,255,255,252,0,63,252,15,254,0,63, + 248,7,255,0,127,240,3,255,0,127,224,1,255,128,127,224, + 1,255,128,255,192,0,255,192,255,192,0,255,192,255,192,0, + 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, + 192,255,224,1,255,192,255,224,1,255,192,255,240,3,255,192, + 127,240,7,255,128,127,252,15,255,128,63,255,255,255,0,63, + 255,255,255,0,31,255,255,254,0,15,255,255,252,0,3,255, + 255,240,0,0,255,255,192,0,0,15,252,0,0,34,51,255, + 39,2,255,0,7,248,0,0,0,63,255,0,0,0,255,255, + 192,0,3,255,255,224,0,7,255,255,240,0,15,255,255,248, + 0,31,255,255,252,0,31,255,255,254,0,63,248,31,254,0, + 63,240,7,255,0,127,224,7,255,0,127,192,3,255,0,127, + 192,3,255,128,255,192,1,255,128,255,128,1,255,128,255,128, + 1,255,128,255,128,1,255,192,255,128,1,255,192,255,128,1, + 255,192,255,192,1,255,192,255,192,3,255,192,255,192,3,255, + 192,127,224,7,255,192,127,240,7,255,192,127,248,31,255,192, + 63,255,255,255,192,31,255,255,127,192,31,255,254,255,192,15, + 255,252,255,192,3,255,252,255,192,1,255,240,255,192,0,127, + 192,255,128,0,0,0,255,128,0,0,0,255,128,0,0,1, + 255,128,0,0,1,255,128,0,0,1,255,0,0,0,1,255, + 0,127,192,3,255,0,127,192,3,254,0,127,224,7,254,0, + 63,224,15,254,0,63,240,15,252,0,31,248,63,252,0,31, + 255,255,248,0,15,255,255,240,0,7,255,255,224,0,3,255, + 255,192,0,1,255,255,128,0,0,127,254,0,0,0,15,240, + 0,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=14 h=16 x= 4 y=10 dx=15 dy= 0 ascent=16 len=32 + Font Bounding box w=20 h=20 x=-1 y=-4 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur11[3712] U8G_SECTION(".progmem.u8g_font_fur11") = { + 0,20,20,255,252,11,2,81,4,211,32,255,253,16,252,11, + 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, + 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, + 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, + 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, + 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, + 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, + 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, + 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, + 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, + 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, + 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, + 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, + 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, + 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, + 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, + 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, + 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, + 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, + 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, + 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, + 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, + 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, + 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, + 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, + 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, + 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, + 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, + 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, + 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, + 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, + 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, + 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, + 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, + 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, + 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, + 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, + 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, + 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, + 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, + 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, + 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, + 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, + 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, + 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, + 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, + 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, + 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, + 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, + 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, + 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, + 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, + 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, + 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, + 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, + 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, + 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, + 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, + 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, + 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, + 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, + 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, + 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, + 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, + 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, + 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, + 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, + 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, + 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, + 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, + 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, + 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, + 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, + 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, + 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, + 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, + 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, + 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, + 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, + 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, + 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, + 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, + 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, + 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, + 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, + 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, + 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, + 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, + 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, + 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, + 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, + 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, + 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, + 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, + 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, + 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, + 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, + 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, + 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, + 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, + 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, + 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, + 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, + 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, + 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,5,0,0,1,11,11,5,2,253,128,0,0, + 128,128,128,128,128,128,128,128,6,12,12,8,1,254,8,8, + 120,220,148,144,160,164,236,120,64,64,7,11,11,9,1,0, + 60,102,64,64,248,64,64,64,64,64,254,8,9,9,10,1, + 2,129,90,36,66,66,66,36,90,129,8,11,11,9,0,0, + 65,99,34,231,20,28,255,8,8,8,8,1,14,14,6,3, + 253,128,128,128,128,128,128,0,0,128,128,128,128,128,128,5, + 14,14,7,1,253,120,136,128,192,112,216,136,152,240,48,24, + 8,24,240,4,1,1,4,0,10,144,11,11,22,13,1,0, + 31,0,127,128,115,64,225,96,160,32,160,32,161,32,179,96, + 94,64,96,128,31,0,6,8,8,6,0,3,56,72,120,72, + 88,104,0,252,6,6,6,8,1,1,36,72,216,216,72,36, + 8,3,3,10,1,4,255,1,1,255,11,11,22,13,1,0, + 31,0,127,128,81,64,209,96,158,32,147,32,145,32,209,96, + 64,64,97,128,31,0,4,1,1,4,0,10,240,3,4,4, + 5,1,7,224,160,160,224,9,10,20,15,3,0,8,0,8, + 0,8,0,255,128,8,0,8,0,8,0,0,0,0,0,255, + 128,4,6,6,6,1,5,112,144,48,96,192,240,5,6,6, + 6,0,5,120,200,24,48,136,112,3,3,3,3,1,9,96, + 64,128,255,7,14,14,9,1,253,126,244,244,244,244,116,20, + 20,20,20,20,20,20,20,1,2,2,4,2,4,128,128,4, + 3,3,5,1,253,48,16,224,3,6,6,5,1,5,96,160, + 32,32,32,32,5,8,8,7,1,3,112,216,136,136,216,112, + 0,248,6,6,6,8,1,1,216,72,36,36,72,216,10,11, + 22,12,1,0,97,0,162,0,34,0,36,0,36,0,41,128, + 9,128,18,128,51,192,32,128,96,128,11,11,22,13,1,0, + 96,128,161,0,34,0,34,0,36,0,37,192,9,32,24,96, + 16,192,33,128,97,224,11,11,22,12,0,0,120,128,9,128, + 49,0,27,0,138,0,116,192,4,192,9,64,11,224,16,64, + 48,64,6,11,11,8,1,253,16,0,16,16,48,96,192,128, + 132,236,120,11,16,32,11,0,0,24,0,8,0,4,0,0, + 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, + 128,63,192,96,192,64,64,192,96,11,16,32,11,0,0,3, + 0,2,0,4,0,0,0,0,0,6,0,14,0,10,0,27, + 0,25,0,49,128,49,128,63,192,96,192,64,64,192,96,11, + 16,32,11,0,0,4,0,14,0,9,0,0,0,0,0,6, + 0,14,0,10,0,27,0,25,0,49,128,49,128,63,192,96, + 192,64,64,192,96,11,15,30,11,0,0,13,0,22,0,0, + 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, + 128,63,192,96,192,64,64,192,96,11,14,28,11,0,0,9, + 0,0,0,0,0,6,0,14,0,11,0,27,0,25,0,17, + 128,48,128,63,192,96,192,64,96,192,96,11,16,32,11,0, + 0,14,0,10,0,14,0,0,0,0,0,4,0,12,0,10, + 0,10,0,17,0,17,0,49,128,63,128,96,192,64,64,192, + 96,13,11,22,14,0,0,3,248,5,0,13,0,13,0,25, + 0,25,248,49,0,63,0,97,0,65,0,193,248,8,15,15, + 10,1,252,62,97,193,128,128,128,128,128,193,67,62,12,6, + 2,28,6,16,16,9,1,0,64,32,16,0,0,252,128,128, + 128,128,252,128,128,128,128,252,6,16,16,9,1,0,8,16, + 16,0,0,252,128,128,128,128,252,128,128,128,128,252,6,16, + 16,9,1,0,48,48,72,0,0,252,128,128,128,128,252,128, + 128,128,128,252,6,15,15,8,1,0,72,0,0,0,252,128, + 128,128,128,252,128,128,128,128,252,3,16,16,3,255,0,192, + 64,32,0,0,32,32,32,32,32,32,32,32,32,32,32,3, + 16,16,3,1,0,96,192,128,0,0,128,128,128,128,128,128, + 128,128,128,128,128,3,16,16,3,0,0,64,224,160,0,0, + 64,64,64,64,64,64,64,64,64,64,64,4,14,14,4,0, + 0,144,0,0,64,64,64,64,64,64,64,64,64,64,64,10, + 11,22,11,0,0,62,0,33,128,32,128,32,192,32,64,248, + 64,32,64,32,192,32,128,33,128,62,0,8,15,15,10,1, + 0,52,44,0,0,193,225,225,177,177,153,137,141,133,135,131, + 9,16,32,11,1,0,48,0,16,0,8,0,0,0,0,0, + 62,0,99,0,193,128,129,128,128,128,128,128,128,128,129,128, + 193,0,99,0,62,0,9,16,32,11,1,0,4,0,12,0, + 8,0,0,0,0,0,62,0,99,0,193,128,129,128,128,128, + 128,128,128,128,129,128,193,0,99,0,62,0,9,16,32,11, + 1,0,8,0,28,0,20,0,0,0,0,0,62,0,99,0, + 193,128,129,128,128,128,128,128,128,128,129,128,193,0,99,0, + 62,0,9,15,30,11,1,0,24,0,44,0,0,0,0,0, + 62,0,99,0,193,128,128,128,128,128,128,128,128,128,129,128, + 193,0,119,0,62,0,9,15,30,11,1,0,18,0,0,0, + 0,0,0,0,62,0,99,0,193,128,129,128,128,128,128,128, + 128,128,129,128,193,0,99,0,62,0,7,7,7,15,4,1, + 130,68,40,16,40,68,130,9,13,26,11,1,255,0,128,63, + 0,99,0,195,128,134,128,140,128,136,128,152,128,177,128,225, + 0,99,0,254,0,128,0,8,16,16,10,1,0,32,16,24, + 0,0,129,129,129,129,129,129,129,129,195,230,60,8,16,16, + 10,1,0,12,8,16,0,0,129,129,129,129,129,129,129,129, + 195,230,60,8,16,16,10,1,0,24,24,36,0,0,129,129, + 129,129,129,129,129,129,195,230,60,8,15,15,10,1,0,36, + 0,0,0,129,129,129,129,129,129,129,129,131,194,60,9,16, + 32,10,1,0,6,0,4,0,8,0,0,0,0,0,193,128, + 65,0,99,0,38,0,52,0,28,0,8,0,8,0,8,0, + 8,0,8,0,7,11,11,9,1,0,128,128,252,134,130,130, + 134,252,128,128,128,7,11,11,8,1,0,120,204,132,140,144, + 144,156,134,130,178,156,6,12,12,8,1,0,32,16,16,0, + 120,204,4,124,196,132,140,116,6,13,13,8,1,0,24,16, + 48,32,0,120,204,4,124,196,132,140,116,6,12,12,8,1, + 0,48,104,72,0,120,204,4,124,196,132,140,116,6,11,11, + 8,1,0,120,0,0,120,204,4,124,196,132,140,116,6,11, + 11,8,1,0,72,0,0,120,204,4,124,196,132,140,116,6, + 13,13,8,1,0,48,72,72,48,0,120,196,4,124,196,132, + 140,116,12,8,16,13,1,0,251,192,138,32,4,48,127,240, + 196,0,140,48,202,96,113,192,6,12,12,8,1,252,120,204, + 132,128,128,132,204,120,48,24,8,48,6,13,13,8,1,0, + 64,32,32,16,0,120,196,132,252,128,132,204,120,6,13,13, + 8,1,0,8,16,16,32,0,120,196,132,252,128,132,204,120, + 6,12,12,8,1,0,48,104,72,0,120,196,132,252,128,132, + 204,120,6,11,11,8,1,0,72,0,0,120,204,132,252,128, + 132,204,120,2,12,12,3,0,0,128,64,64,0,64,64,64, + 64,64,64,64,64,3,12,12,3,0,0,32,64,128,0,64, + 64,64,64,64,64,64,64,5,12,12,3,255,0,112,80,136, + 0,32,32,32,32,32,32,32,32,4,11,11,4,0,0,144, + 0,0,64,64,64,64,64,64,64,64,7,11,11,9,1,0, + 104,112,136,124,198,134,130,130,134,196,120,6,11,11,8,1, + 0,120,0,0,184,204,132,132,132,132,132,132,7,13,13,9, + 1,0,96,32,16,16,0,120,196,134,130,130,134,196,120,7, + 13,13,9,1,0,12,24,16,32,0,120,196,134,130,130,134, + 196,120,7,12,12,9,1,0,56,40,68,0,120,196,134,130, + 130,134,196,120,7,11,11,9,1,0,120,0,0,120,196,134, + 130,130,134,196,120,7,11,11,9,1,0,72,0,0,120,196, + 134,130,130,134,196,120,9,7,14,15,3,1,8,0,8,0, + 0,0,255,128,0,0,8,0,8,0,8,10,10,9,0,255, + 1,62,98,71,73,89,83,98,124,192,6,13,13,8,1,0, + 64,32,32,16,0,132,132,132,132,132,132,204,116,6,13,13, + 8,1,0,24,16,48,32,0,132,132,132,132,132,132,204,116, + 6,12,12,8,1,0,48,80,72,0,132,132,132,132,132,132, + 204,116,6,11,11,8,1,0,72,0,0,132,132,132,132,132, + 132,204,116,8,15,15,8,0,253,4,8,16,0,195,66,102, + 38,52,60,24,24,24,80,112,7,14,14,9,1,253,128,128, + 128,188,198,134,130,130,134,198,188,128,128,128,8,14,14,8, + 0,253,36,0,0,195,66,102,36,36,60,24,24,24,16,48 + }; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 11 + Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=15 dy= 0 ascent=11 len=18 + Font Bounding box w=20 h=20 x=-1 y=-4 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur11n[265] U8G_SECTION(".progmem.u8g_font_fur11n") = { + 0,20,20,255,252,11,0,0,0,0,42,57,0,11,254,11, + 0,6,5,5,10,2,5,72,48,252,48,120,9,9,18,15, + 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, + 8,0,8,0,2,4,4,4,1,254,192,192,128,128,4,1, + 1,6,1,3,240,1,2,2,4,2,0,128,128,4,12,12, + 6,1,255,16,16,16,32,32,32,64,64,64,64,128,128,6, + 11,11,8,1,0,120,200,140,132,132,132,132,132,140,200,120, + 4,11,11,8,2,0,48,112,208,16,16,16,16,16,16,16, + 16,6,11,11,8,1,0,120,204,196,4,12,24,16,48,96, + 192,252,7,11,11,8,0,0,60,70,194,6,24,4,6,2, + 194,70,60,7,11,11,8,1,0,12,28,20,36,100,68,196, + 254,4,4,4,6,11,11,8,1,0,248,128,128,184,204,132, + 4,4,140,200,112,7,11,11,8,1,0,60,198,134,128,188, + 198,130,130,130,198,60,7,11,11,8,1,0,254,6,6,4, + 12,8,24,24,16,48,48,6,11,11,8,1,0,120,204,132, + 204,112,200,132,132,132,204,120,7,11,11,8,1,0,124,198, + 130,130,198,122,2,6,134,204,120}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=14 h=16 x= 4 y= 9 dx=15 dy= 0 ascent=13 len=28 + Font Bounding box w=20 h=20 x=-1 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur11r[1729] U8G_SECTION(".progmem.u8g_font_fur11r") = { + 0,20,20,255,252,11,2,81,4,211,32,127,253,13,252,11, + 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, + 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, + 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, + 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, + 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, + 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, + 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, + 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, + 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, + 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, + 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, + 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, + 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, + 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, + 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, + 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, + 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, + 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, + 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, + 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, + 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, + 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, + 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, + 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, + 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, + 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, + 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, + 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, + 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, + 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, + 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, + 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, + 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, + 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, + 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, + 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, + 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, + 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, + 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, + 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, + 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, + 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, + 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, + 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, + 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, + 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, + 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, + 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, + 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, + 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, + 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, + 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, + 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, + 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, + 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, + 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, + 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, + 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, + 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, + 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, + 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, + 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, + 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, + 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, + 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, + 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, + 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, + 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, + 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, + 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, + 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, + 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, + 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, + 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, + 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, + 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, + 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, + 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, + 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, + 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, + 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, + 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, + 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, + 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, + 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, + 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, + 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, + 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, + 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, + 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, + 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, + 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, + 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, + 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, + 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, + 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, + 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, + 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, + 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, + 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, + 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, + 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, + 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, + 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, + 255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=18 h=21 x= 5 y=13 dx=19 dy= 0 ascent=21 len=54 + Font Bounding box w=26 h=26 x=-1 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =21 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur14[5349] U8G_SECTION(".progmem.u8g_font_fur14") = { + 0,26,26,255,251,14,3,59,6,250,32,255,252,21,251,14, + 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, + 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, + 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, + 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, + 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, + 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, + 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, + 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, + 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, + 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, + 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, + 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, + 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, + 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, + 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, + 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, + 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, + 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, + 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, + 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, + 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, + 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, + 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, + 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, + 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, + 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, + 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, + 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, + 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, + 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, + 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, + 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, + 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, + 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, + 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, + 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, + 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, + 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, + 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, + 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, + 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, + 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, + 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, + 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, + 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, + 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, + 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, + 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, + 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, + 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, + 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, + 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, + 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, + 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, + 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, + 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, + 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, + 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, + 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, + 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, + 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, + 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, + 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, + 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, + 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, + 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, + 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, + 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, + 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, + 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, + 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, + 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, + 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, + 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, + 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, + 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, + 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, + 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, + 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, + 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, + 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, + 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, + 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, + 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, + 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, + 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, + 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, + 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, + 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, + 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, + 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, + 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, + 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, + 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, + 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, + 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, + 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, + 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, + 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, + 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, + 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, + 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, + 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, + 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, + 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, + 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, + 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, + 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, + 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, + 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, + 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, + 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, + 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, + 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, + 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, + 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, + 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, + 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, + 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, + 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, + 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, + 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, + 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, + 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, + 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, + 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, + 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, + 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, + 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, + 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, + 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, + 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, + 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, + 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, + 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, + 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, + 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, + 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, + 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, + 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, + 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, + 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, + 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, + 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, + 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, + 4,10,0,4,120,192,207,128,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,6,0,0,2, + 14,14,7,3,252,192,192,0,0,192,192,192,192,192,192,192, + 192,192,192,8,14,14,10,1,254,2,4,60,102,203,200,200, + 208,208,211,102,60,32,64,10,14,28,11,1,0,31,0,49, + 128,96,192,96,0,96,0,252,0,96,0,96,0,96,0,96, + 0,96,0,96,0,96,0,255,128,10,10,20,12,1,3,128, + 64,94,128,51,0,65,128,64,128,64,128,64,128,33,0,94, + 128,128,64,10,14,28,12,1,0,192,192,96,128,97,128,49, + 0,243,192,27,0,30,0,255,192,12,0,12,0,12,0,12, + 0,12,0,12,0,1,18,18,7,3,252,128,128,128,128,128, + 128,128,128,0,0,128,128,128,128,128,128,128,128,7,17,17, + 9,1,253,60,100,192,192,96,56,124,198,198,206,124,60,14, + 6,6,140,248,6,1,1,6,0,13,204,14,14,28,16,1, + 0,15,192,28,224,39,144,76,200,216,108,152,4,152,4,152, + 4,152,100,140,204,71,200,32,16,16,32,15,192,7,10,10, + 8,1,4,120,204,4,124,196,132,124,0,0,254,7,8,8, + 11,2,1,38,100,204,216,152,204,100,38,10,5,10,12,1, + 3,255,192,0,64,0,64,0,64,0,64,255,14,14,28,16, + 1,0,15,192,28,224,47,208,76,104,204,108,140,100,143,132, + 140,68,140,100,204,108,76,104,32,16,28,224,15,192,6,1, + 1,6,0,13,252,4,5,5,6,1,9,96,240,144,144,96, + 11,12,24,19,4,0,6,0,6,0,6,0,6,0,255,224, + 6,0,6,0,6,0,0,0,0,0,0,0,255,224,6,8, + 8,7,1,6,120,220,12,12,24,48,192,252,6,8,8,7, + 1,6,120,204,12,48,24,140,204,120,4,4,4,4,1,12, + 48,96,64,192,255,9,18,36,11,1,252,63,128,121,0,249, + 0,249,0,249,0,249,0,121,0,25,0,9,0,9,0,9, + 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,2, + 2,2,5,2,5,192,192,6,5,5,5,0,251,64,120,12, + 12,248,4,7,7,6,1,7,112,240,48,48,48,48,48,6, + 10,10,8,1,4,120,72,132,132,132,132,204,120,0,252,7, + 8,8,11,2,1,152,204,100,102,102,100,204,152,13,14,28, + 15,1,0,112,64,240,192,48,128,49,128,49,0,51,0,50, + 48,54,112,12,112,8,176,25,176,17,248,48,48,32,48,13, + 14,28,15,1,0,112,64,240,192,48,128,49,128,49,0,50, + 0,50,112,52,216,12,24,8,24,24,48,16,96,48,192,32, + 248,14,14,28,16,1,0,120,48,204,32,12,96,48,192,12, + 128,141,128,121,24,3,56,2,120,4,88,12,152,8,252,24, + 24,16,24,8,14,14,10,1,252,12,12,0,12,12,12,24, + 48,96,192,192,193,127,62,14,20,40,14,0,0,12,0,6, + 0,2,0,3,0,0,0,0,0,3,0,7,128,7,128,4, + 192,12,192,12,192,24,96,24,96,31,240,63,240,48,24,96, + 24,96,24,192,12,14,20,40,14,0,0,0,192,0,128,1, + 128,1,0,0,0,0,0,3,0,7,128,7,128,4,192,12, + 192,12,192,24,96,24,96,31,240,63,240,48,24,96,24,96, + 24,192,12,14,20,40,14,0,0,3,0,3,128,6,128,4, + 192,0,0,0,0,3,0,7,128,7,128,4,192,12,192,12, + 192,24,96,24,96,31,240,63,240,48,24,96,24,96,24,192, + 12,14,18,36,14,0,0,7,192,0,0,0,0,0,0,3, + 0,7,128,7,128,4,192,12,192,12,192,24,96,24,96,31, + 240,63,240,48,24,96,24,96,24,192,12,13,18,36,15,1, + 0,12,192,0,0,0,0,0,0,7,0,7,0,13,128,13, + 128,12,192,24,192,24,192,48,96,63,224,63,240,96,48,96, + 24,192,24,192,24,13,21,42,14,1,0,6,0,13,0,9, + 0,9,0,6,0,0,0,0,0,6,0,7,0,15,0,13, + 0,25,128,25,128,16,192,48,192,63,224,127,224,96,32,192, + 48,192,48,192,24,17,14,42,19,1,0,1,255,128,3,192, + 0,2,192,0,6,192,0,14,192,0,12,192,0,28,255,128, + 24,192,0,56,192,0,63,192,0,96,192,0,96,192,0,192, + 192,0,192,255,128,11,18,36,13,1,252,31,128,57,192,96, + 96,64,96,192,0,192,0,192,0,192,0,192,0,192,0,64, + 96,96,96,49,192,31,0,4,0,7,0,1,128,15,128,9, + 20,40,12,2,0,96,0,48,0,24,0,8,0,0,0,0, + 0,255,128,192,0,192,0,192,0,192,0,192,0,255,128,192, + 0,192,0,192,0,192,0,192,0,192,0,255,128,9,20,40, + 12,2,0,6,0,4,0,12,0,24,0,0,0,0,0,255, + 128,192,0,192,0,192,0,192,0,192,0,255,128,192,0,192, + 0,192,0,192,0,192,0,192,0,255,128,9,20,40,12,2, + 0,24,0,28,0,52,0,38,0,0,0,0,0,255,128,192, + 0,192,0,192,0,192,0,192,0,255,128,192,0,192,0,192, + 0,192,0,192,0,192,0,255,128,9,18,36,12,2,0,102, + 0,0,0,0,0,0,0,255,128,192,0,192,0,192,0,192, + 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, + 0,255,128,4,20,20,5,0,0,192,96,32,48,0,0,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,4,20,20, + 5,2,0,48,96,64,128,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,5,20,20,5,0,0,48,112,88, + 200,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,6,18,18,6,0,0,204,0,0,0,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,13,14,28,14,0,0,127, + 128,97,224,96,112,96,48,96,16,96,24,254,24,96,24,96, + 24,96,16,96,48,96,96,97,224,127,128,11,18,36,14,2, + 0,31,0,0,0,0,0,0,0,224,96,224,96,240,96,248, + 96,216,96,220,96,204,96,198,96,198,96,195,96,195,96,193, + 224,193,224,192,224,12,20,40,14,1,0,24,0,12,0,6, + 0,2,0,0,0,0,0,31,128,57,192,96,96,64,32,192, + 48,192,48,192,48,192,48,192,48,192,48,64,32,96,96,57, + 192,15,0,12,20,40,14,1,0,1,128,3,0,6,0,4, + 0,0,0,0,0,31,128,57,192,96,96,64,32,192,48,192, + 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, + 0,12,20,40,14,1,0,6,0,15,0,9,0,16,128,0, + 0,0,0,31,128,57,192,96,96,64,32,192,48,192,48,192, + 48,192,48,192,48,192,48,64,32,96,96,57,192,15,0,12, + 19,38,14,1,0,12,128,31,0,0,0,0,0,0,0,31, + 128,57,192,96,96,64,32,192,48,192,48,192,48,192,48,192, + 48,192,48,96,96,112,224,63,192,15,0,12,18,36,14,1, + 0,13,128,0,0,0,0,0,0,31,128,57,192,96,96,64, + 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, + 96,57,192,15,0,11,10,20,19,4,1,192,96,96,192,49, + 128,27,0,14,0,14,0,27,0,49,128,96,192,64,96,12, + 16,32,14,1,255,0,48,31,224,56,224,96,224,65,176,193, + 176,195,48,198,48,198,48,204,48,220,48,88,32,112,96,57, + 192,127,0,192,0,11,20,40,15,2,0,24,0,8,0,4, + 0,6,0,0,0,0,0,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, + 192,31,0,11,20,40,15,2,0,3,0,2,0,4,0,12, + 0,0,0,0,0,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,96,192,127,192,31, + 0,11,20,40,15,2,0,14,0,14,0,27,0,17,0,0, + 0,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, + 18,36,15,2,0,25,128,0,0,0,0,0,0,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,96,192,113,192,31,0,12,20,40,12,0,0,1, + 128,3,0,2,0,4,0,0,0,0,0,224,112,96,96,112, + 192,48,192,25,128,25,128,15,0,14,0,6,0,6,0,6, + 0,6,0,6,0,6,0,9,14,28,12,2,0,192,0,192, + 0,192,0,254,0,195,0,193,128,193,128,193,128,195,128,254, + 0,192,0,192,0,192,0,192,0,10,14,28,11,1,0,62, + 0,103,0,195,0,195,0,198,0,204,0,204,0,206,0,199, + 128,193,128,192,192,216,192,220,128,199,128,8,15,15,10,1, + 0,48,24,8,0,0,62,103,195,3,63,99,195,195,231,123, + 8,16,16,10,1,0,6,12,24,16,0,0,62,103,195,3, + 63,99,195,195,231,123,8,16,16,10,1,0,24,28,36,38, + 0,0,62,103,195,3,63,99,195,195,231,123,8,14,14,10, + 1,0,62,0,0,0,62,103,195,3,63,115,195,195,231,123, + 8,14,14,10,1,0,102,0,0,0,62,103,195,3,63,99, + 195,195,231,123,8,16,16,10,1,0,28,34,34,28,0,0, + 62,99,193,1,63,113,193,193,231,61,16,10,20,18,1,0, + 62,124,227,198,193,131,1,131,63,255,225,128,193,128,195,131, + 230,238,124,60,8,14,14,10,1,252,62,103,195,192,192,192, + 192,195,102,60,16,28,6,62,9,16,32,11,1,0,48,0, + 48,0,24,0,8,0,0,0,0,0,62,0,99,0,193,0, + 193,128,255,128,192,0,192,0,67,0,103,0,62,0,9,16, + 32,11,1,0,6,0,12,0,8,0,24,0,0,0,0,0, + 62,0,99,0,193,0,193,128,255,128,192,0,192,0,67,0, + 103,0,62,0,9,16,32,11,1,0,24,0,28,0,52,0, + 34,0,0,0,0,0,62,0,99,0,193,0,193,128,255,128, + 192,0,192,0,67,0,103,0,62,0,9,14,28,11,1,0, + 102,0,0,0,0,0,0,0,62,0,99,0,193,0,193,128, + 255,128,192,0,192,0,67,0,103,0,62,0,3,15,15,4, + 0,0,128,192,96,32,0,96,96,96,96,96,96,96,96,96, + 96,3,15,15,4,1,0,96,64,192,128,0,192,192,192,192, + 192,192,192,192,192,192,6,15,15,4,255,0,48,120,72,132, + 0,48,48,48,48,48,48,48,48,48,48,6,14,14,5,0, + 0,204,0,0,0,48,48,48,48,48,48,48,48,48,48,9, + 14,28,11,1,0,102,0,24,0,108,0,6,0,63,0,99, + 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,8,14,14,10,1,0,52,124,0,0,222,231,195,195,195, + 195,195,195,195,195,9,16,32,11,1,0,48,0,16,0,24, + 0,8,0,0,0,0,0,62,0,99,0,193,128,193,128,193, + 128,193,128,193,128,193,128,99,0,62,0,9,16,32,11,1, + 0,6,0,4,0,12,0,8,0,0,0,0,0,62,0,99, + 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,9,16,32,11,1,0,8,0,28,0,20,0,34,0,0, + 0,0,0,62,0,99,0,193,128,193,128,193,128,193,128,193, + 128,193,128,99,0,62,0,9,14,28,11,1,0,62,0,0, + 0,0,0,0,0,62,0,99,0,193,128,193,128,193,128,193, + 128,193,128,193,128,99,0,62,0,9,14,28,11,1,0,51, + 0,0,0,0,0,0,0,62,0,115,0,193,128,192,128,192, + 128,192,128,192,128,193,128,115,0,62,0,11,8,16,19,4, + 2,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, + 0,9,12,24,11,1,0,1,128,63,0,99,0,199,128,197, + 128,201,128,217,128,209,128,225,128,99,0,254,0,128,0,8, + 16,16,10,1,0,96,48,16,8,0,0,195,195,195,195,195, + 195,195,195,231,123,8,16,16,10,1,0,4,12,8,16,0, + 0,195,195,195,195,195,195,195,195,231,123,8,16,16,10,1, + 0,24,24,52,36,0,0,195,195,195,195,195,195,195,195,231, + 123,8,14,14,10,1,0,102,0,0,0,195,195,195,195,195, + 195,195,195,231,123,10,19,38,10,0,252,3,0,6,0,4, + 0,8,0,0,0,192,192,97,128,97,128,49,128,51,0,19, + 0,26,0,30,0,14,0,12,0,12,0,12,0,120,0,120, + 0,9,18,36,11,1,252,192,0,192,0,192,0,192,0,222, + 0,227,0,193,128,193,128,193,128,193,128,193,128,193,128,227, + 0,222,0,192,0,192,0,192,0,192,0,10,18,36,10,0, + 252,51,0,0,0,0,0,0,0,192,192,97,128,97,128,97, + 0,51,0,51,0,30,0,30,0,30,0,12,0,12,0,24, + 0,24,0,24,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 14 + Calculated Max Values w=11 h=15 x= 4 y= 7 dx=19 dy= 0 ascent=14 len=28 + Font Bounding box w=26 h=26 x=-1 y=-5 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =14 descent= 0 + X Font ascent =14 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur14n[405] U8G_SECTION(".progmem.u8g_font_fur14n") = { + 0,26,26,255,251,14,0,0,0,0,42,57,0,14,254,14, + 0,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, + 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, + 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, + 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, + 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, + 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, + 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, + 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, + 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, + 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, + 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, + 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, + 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, + 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, + 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, + 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, + 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, + 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, + 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, + 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, + 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, + 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, + 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, + 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, + 0,102,0,60,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=18 h=21 x= 5 y=12 dx=19 dy= 0 ascent=16 len=54 + Font Bounding box w=26 h=26 x=-1 y=-5 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur14r[2489] U8G_SECTION(".progmem.u8g_font_fur14r") = { + 0,26,26,255,251,14,3,59,6,250,32,127,252,16,251,14, + 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, + 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, + 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, + 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, + 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, + 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, + 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, + 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, + 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, + 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, + 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, + 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, + 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, + 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, + 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, + 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, + 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, + 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, + 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, + 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, + 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, + 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, + 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, + 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, + 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, + 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, + 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, + 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, + 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, + 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, + 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, + 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, + 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, + 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, + 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, + 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, + 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, + 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, + 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, + 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, + 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, + 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, + 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, + 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, + 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, + 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, + 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, + 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, + 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, + 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, + 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, + 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, + 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, + 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, + 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, + 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, + 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, + 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, + 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, + 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, + 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, + 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, + 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, + 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, + 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, + 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, + 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, + 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, + 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, + 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, + 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, + 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, + 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, + 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, + 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, + 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, + 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, + 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, + 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, + 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, + 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, + 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, + 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, + 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, + 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, + 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, + 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, + 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, + 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, + 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, + 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, + 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, + 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, + 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, + 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, + 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, + 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, + 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, + 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, + 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, + 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, + 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, + 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, + 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, + 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, + 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, + 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, + 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, + 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, + 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, + 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, + 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, + 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, + 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, + 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, + 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, + 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, + 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, + 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, + 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, + 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, + 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, + 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, + 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, + 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, + 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, + 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, + 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, + 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, + 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, + 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, + 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, + 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, + 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, + 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, + 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, + 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, + 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, + 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, + 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, + 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, + 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, + 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, + 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, + 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, + 4,10,0,4,120,192,207,128,255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=22 h=25 x= 6 y=15 dx=24 dy= 0 ascent=24 len=66 + Font Bounding box w=31 h=30 x=-2 y=-6 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =24 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur17[6799] U8G_SECTION(".progmem.u8g_font_fur17") = { + 0,31,30,254,250,17,4,5,8,170,32,255,251,24,250,17, + 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, + 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, + 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, + 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, + 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, + 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, + 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, + 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, + 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, + 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, + 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, + 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, + 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, + 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, + 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, + 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, + 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, + 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, + 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, + 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, + 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, + 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, + 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, + 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, + 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, + 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, + 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, + 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, + 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, + 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, + 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, + 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, + 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, + 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, + 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, + 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, + 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, + 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, + 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, + 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, + 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, + 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, + 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, + 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, + 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, + 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, + 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, + 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, + 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, + 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, + 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, + 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, + 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, + 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, + 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, + 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, + 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, + 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, + 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, + 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, + 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, + 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, + 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, + 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, + 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, + 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, + 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, + 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, + 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, + 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, + 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, + 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, + 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, + 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, + 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, + 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, + 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, + 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, + 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, + 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, + 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, + 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, + 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, + 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, + 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, + 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, + 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, + 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, + 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, + 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, + 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, + 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, + 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, + 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, + 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, + 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, + 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, + 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, + 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, + 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, + 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, + 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, + 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, + 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, + 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, + 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, + 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, + 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, + 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, + 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, + 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, + 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, + 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, + 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, + 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, + 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, + 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, + 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, + 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, + 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, + 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, + 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, + 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, + 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, + 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, + 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, + 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, + 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, + 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, + 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, + 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, + 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, + 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, + 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, + 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, + 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, + 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, + 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, + 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, + 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, + 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, + 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, + 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, + 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, + 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, + 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, + 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, + 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, + 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, + 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, + 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, + 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, + 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, + 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, + 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, + 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, + 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, + 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, + 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, + 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, + 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, + 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, + 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, + 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, + 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, + 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, + 2,4,12,0,5,62,112,231,224,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,0,0,0,7,0,0, + 2,17,17,8,3,251,192,192,0,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,10,18,36,14,2,253,1,0,1, + 0,1,0,31,0,127,128,98,192,198,192,196,0,196,0,204, + 0,200,0,200,192,121,192,127,128,31,0,32,0,32,0,32, + 0,11,17,34,13,1,0,15,128,29,192,48,96,48,0,48, + 0,48,0,254,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,255,224,11,14,28,13,1,3,0, + 32,128,32,95,64,123,128,96,128,64,64,64,64,64,64,64, + 64,96,128,113,128,95,64,128,32,0,32,12,17,34,14,1, + 0,192,48,96,96,96,96,48,224,48,192,249,240,25,128,15, + 128,15,0,255,240,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,1,22,22,8,4,251,128,128,128,128,128,128,128, + 128,128,0,0,0,0,128,128,128,128,128,128,128,128,128,8, + 21,21,10,1,252,62,126,192,192,192,112,120,62,119,227,195, + 199,238,124,30,7,3,3,3,142,252,7,2,2,7,0,15, + 198,198,17,17,51,19,1,0,3,224,0,15,120,0,56,14, + 0,35,242,0,71,57,0,78,25,0,140,0,128,140,0,128, + 140,0,128,140,0,128,140,24,128,70,57,0,67,241,0,32, + 2,0,48,6,0,12,24,0,3,224,0,9,11,22,9,0, + 6,62,0,127,0,97,0,1,0,63,0,113,0,65,0,67, + 0,61,0,0,0,255,128,9,9,18,13,2,1,49,128,51, + 0,99,0,230,0,204,0,230,0,99,0,51,0,17,128,12, + 5,10,14,1,5,255,240,0,16,0,16,0,16,0,16,255, + 17,17,51,19,1,0,3,224,0,15,120,0,56,14,0,39, + 242,0,70,57,0,70,25,0,134,24,128,135,224,128,134,48, + 128,134,16,128,134,24,128,70,25,0,70,25,0,32,2,0, + 56,14,0,15,120,0,3,224,0,7,1,1,7,0,15,254, + 5,6,6,7,1,11,112,216,136,136,216,112,14,14,28,24, + 5,0,2,0,2,0,2,0,2,0,255,252,2,0,2,0, + 2,0,2,0,2,0,0,0,0,0,0,0,255,252,7,9, + 9,9,1,8,60,126,198,6,12,24,48,224,254,7,9,9, + 9,1,8,60,126,198,14,24,14,6,206,124,3,4,4,5, + 2,14,96,96,192,128,255,10,21,42,13,1,252,31,192,60, + 128,124,128,252,128,252,128,252,128,124,128,124,128,60,128,4, + 128,4,128,4,128,4,128,4,128,4,128,4,128,4,128,4, + 128,4,128,4,128,4,128,2,3,3,6,2,7,192,192,192, + 6,5,5,6,1,250,64,120,12,12,252,3,9,9,7,2, + 8,96,224,32,32,32,32,32,32,32,8,11,11,10,1,6, + 60,126,195,193,193,193,195,98,124,0,255,9,9,18,13,2, + 1,204,0,102,0,99,0,51,0,57,128,51,0,99,0,102, + 0,204,0,15,17,34,18,2,0,96,48,224,32,32,96,32, + 64,32,192,32,128,33,0,35,0,34,24,6,24,4,40,12, + 72,8,200,16,254,48,8,32,8,96,8,16,17,34,19,2, + 0,96,16,224,48,32,32,32,96,32,192,32,128,33,128,33, + 0,35,62,6,119,4,99,12,3,8,6,24,28,16,48,32, + 96,96,127,17,17,51,19,1,0,124,4,0,254,12,0,6, + 8,0,24,16,0,30,48,0,6,32,0,198,96,0,206,64, + 0,124,198,0,1,134,0,1,10,0,3,26,0,2,50,0, + 6,63,128,4,2,0,8,2,0,24,2,0,10,17,34,12, + 1,251,6,0,6,0,0,0,0,0,6,0,6,0,6,0, + 14,0,28,0,112,0,96,0,192,0,192,0,192,192,241,192, + 127,128,31,0,16,23,46,17,1,0,14,0,6,0,3,0, + 1,0,0,0,0,0,3,128,3,128,7,192,6,192,14,224, + 12,96,12,112,24,48,24,48,56,56,63,248,63,252,96,12, + 96,12,224,6,192,6,192,7,16,23,46,17,1,0,0,96, + 0,192,0,128,1,0,0,0,0,0,3,128,3,128,7,192, + 6,192,14,224,12,96,12,112,24,48,24,48,56,56,63,248, + 63,252,96,12,96,12,224,6,192,6,192,7,16,23,46,17, + 1,0,3,128,3,192,6,192,4,96,0,0,0,0,3,128, + 3,128,7,192,6,192,14,224,12,96,12,112,24,48,24,48, + 56,56,63,248,63,252,96,12,96,12,224,6,192,6,192,7, + 16,22,44,17,1,0,7,96,13,192,0,0,0,0,0,0, + 3,128,3,128,7,192,6,192,14,224,12,96,12,112,24,48, + 24,48,56,56,63,248,63,252,96,12,96,12,224,6,192,6, + 192,7,16,22,44,18,1,0,6,48,6,48,0,0,0,0, + 0,0,1,192,3,192,3,224,7,96,6,96,6,112,12,48, + 12,56,28,24,24,28,63,252,63,252,48,6,96,6,96,7, + 224,3,192,3,16,24,48,17,1,0,3,128,6,192,4,64, + 4,64,3,128,0,0,0,0,3,128,3,128,7,192,6,192, + 6,224,12,96,12,112,28,48,24,48,24,24,63,248,63,252, + 96,12,96,12,224,6,192,6,192,7,21,17,51,23,1,0, + 0,255,248,0,240,0,1,240,0,1,176,0,3,176,0,3, + 48,0,7,48,0,6,48,0,14,63,248,12,48,0,28,48, + 0,31,240,0,56,48,0,48,48,0,112,48,0,96,48,0, + 192,63,248,13,22,44,15,1,251,15,192,63,240,48,56,96, + 24,96,24,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,96,0,96,24,112,48,63,240,15,192,2,0,3,192,0, + 224,0,96,7,224,11,23,46,14,2,0,48,0,24,0,12, + 0,4,0,0,0,0,0,255,224,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,255,192,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,255,224,11,23,46,14,2,0,3, + 0,6,0,6,0,12,0,0,0,0,0,255,224,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,11,23,46, + 14,2,0,30,0,30,0,51,0,33,0,0,0,0,0,255, + 224,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, + 192,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, + 224,11,22,44,14,2,0,51,0,51,0,0,0,0,0,0, + 0,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,255,192,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,255,224,4,23,23,6,0,0,192,96,48,16,0,0,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 4,23,23,6,2,0,48,96,64,192,0,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,6,23,23, + 6,0,0,56,120,76,196,0,0,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,7,22,22,7,0,0, + 198,198,0,0,0,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,15,17,34,17,0,0,63,192,49,240, + 48,56,48,12,48,12,48,6,48,6,48,6,255,6,48,6, + 48,6,48,6,48,12,48,28,48,56,49,240,63,192,13,22, + 44,17,2,0,14,192,31,128,0,0,0,0,0,0,224,24, + 240,24,248,24,248,24,220,24,220,24,206,24,198,24,199,24, + 195,24,195,152,193,216,193,216,192,248,192,248,192,120,192,56, + 15,24,48,17,1,0,14,0,6,0,3,0,1,0,1,128, + 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, + 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, + 48,24,30,240,7,192,15,24,48,17,1,0,0,224,0,192, + 1,128,1,0,3,0,0,0,0,0,7,192,30,240,48,24, + 96,12,96,12,192,6,192,6,192,6,192,6,192,6,192,6, + 224,14,96,12,96,12,48,24,30,240,7,192,15,24,48,17, + 1,0,3,128,3,128,6,192,4,64,12,32,0,0,0,0, + 7,192,30,240,48,24,96,12,96,12,192,6,192,6,192,6, + 192,6,192,6,192,6,224,14,96,12,96,12,48,24,30,240, + 7,192,15,22,44,17,1,0,7,96,13,192,0,0,0,0, + 0,0,7,192,30,240,48,24,96,12,96,12,192,6,192,6, + 192,6,192,6,192,6,192,6,224,14,96,12,112,28,56,56, + 31,240,7,192,15,22,44,17,1,0,6,96,6,96,0,0, + 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, + 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, + 48,24,30,240,7,192,13,12,24,23,5,1,192,24,96,48, + 48,96,24,192,13,128,7,0,7,0,13,128,24,192,48,96, + 96,48,192,24,15,21,42,17,1,254,0,4,0,14,7,236, + 30,248,48,60,96,60,96,110,192,230,192,198,193,198,195,134, + 195,6,199,6,238,14,108,12,124,12,120,24,62,240,111,192, + 224,0,64,0,13,24,48,17,2,0,28,0,12,0,6,0, + 2,0,1,0,0,0,0,0,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, + 224,24,96,56,112,112,63,224,31,192,13,24,48,17,2,0, + 1,192,1,128,3,0,2,0,6,0,0,0,0,0,192,24, + 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,224,24,96,56,112,112,63,224,31,192, + 13,24,48,17,2,0,7,0,7,0,13,128,8,128,24,64, + 0,0,0,0,192,24,192,24,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,192,24,192,24,192,24,224,24,96,56, + 112,112,63,224,31,192,13,22,44,17,2,0,12,192,12,192, + 0,0,0,0,0,0,192,24,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, + 96,56,96,48,61,224,31,192,14,23,46,15,0,0,0,192, + 1,128,1,128,3,0,0,0,0,0,224,28,112,24,112,56, + 56,48,24,112,28,96,12,192,14,192,7,128,3,128,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,11,17,34,14, + 2,0,192,0,192,0,192,0,192,0,255,128,193,192,192,224, + 192,96,192,96,192,96,193,192,255,128,192,0,192,0,192,0, + 192,0,192,0,12,17,34,13,1,0,31,0,127,128,224,192, + 192,192,193,192,195,128,199,0,198,0,198,0,195,128,193,224, + 192,112,192,48,192,48,204,48,207,96,195,192,10,18,36,13, + 1,0,24,0,12,0,4,0,6,0,0,0,0,0,31,0, + 123,128,96,192,96,192,0,192,63,192,120,192,224,192,192,192, + 193,192,119,192,60,192,10,19,38,13,1,0,3,0,6,0, + 6,0,12,0,8,0,0,0,0,0,31,0,123,128,96,192, + 96,192,0,192,63,192,120,192,224,192,192,192,193,192,119,192, + 60,192,10,19,38,13,1,0,14,0,14,0,27,0,51,0, + 33,128,0,0,0,0,31,0,123,128,96,192,96,192,0,192, + 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,17, + 34,13,1,0,29,128,63,0,0,0,0,0,0,0,31,0, + 123,128,96,192,0,192,7,192,63,192,112,192,192,192,193,192, + 193,192,119,192,60,192,10,17,34,13,1,0,49,128,49,128, + 0,0,0,0,0,0,31,0,123,128,96,192,96,192,0,192, + 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,20, + 40,13,1,0,14,0,27,0,17,0,17,0,27,0,14,0, + 0,0,0,0,31,0,123,128,96,192,96,192,0,192,63,192, + 120,192,224,192,192,192,193,192,119,192,62,192,18,12,36,20, + 1,0,30,31,0,127,191,128,97,225,128,0,224,192,0,192, + 192,63,255,192,120,192,0,224,192,0,192,224,192,193,225,128, + 127,63,128,62,31,0,10,17,34,12,1,251,31,0,127,128, + 97,192,192,192,192,0,192,0,192,0,192,0,192,192,97,192, + 127,128,31,0,8,0,15,0,3,128,1,128,31,0,10,19, + 38,13,1,0,48,0,24,0,8,0,12,0,6,0,0,0, + 0,0,31,0,127,128,96,192,192,192,192,192,255,192,192,0, + 192,0,192,192,96,192,63,128,31,0,10,19,38,13,1,0, + 3,0,7,0,6,0,12,0,8,0,0,0,0,0,31,0, + 127,128,96,192,192,192,192,192,255,192,192,0,192,0,192,192, + 96,192,63,128,31,0,10,19,38,13,1,0,12,0,30,0, + 26,0,51,0,33,0,0,0,0,0,31,0,127,128,96,192, + 192,192,192,192,255,192,192,0,192,0,192,192,96,192,63,128, + 31,0,11,17,34,13,1,0,49,128,49,128,0,0,0,0, + 0,0,31,0,59,192,96,192,224,96,192,96,255,224,192,0, + 192,0,192,96,96,192,59,192,31,0,4,18,18,6,0,0, + 192,96,48,16,0,0,48,48,48,48,48,48,48,48,48,48, + 48,48,4,18,18,6,2,0,48,96,192,128,0,0,192,192, + 192,192,192,192,192,192,192,192,192,192,6,18,18,6,0,0, + 120,120,204,132,0,0,48,48,48,48,48,48,48,48,48,48, + 48,48,6,17,17,5,255,0,204,204,0,0,0,48,48,48, + 48,48,48,48,48,48,48,48,48,11,17,34,13,1,0,97, + 128,63,0,30,0,119,0,3,128,31,192,127,192,96,224,224, + 96,192,96,192,96,192,96,192,96,224,96,96,192,63,192,31, + 0,10,17,34,14,2,0,25,0,63,0,0,0,0,0,0, + 0,223,0,255,128,225,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,11,19,38,13,1,0,56, + 0,24,0,12,0,4,0,2,0,0,0,0,0,31,0,63, + 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, + 192,63,192,31,0,11,19,38,13,1,0,3,128,3,0,6, + 0,4,0,12,0,0,0,0,0,31,0,63,192,96,192,224, + 224,192,96,192,96,192,96,192,96,224,224,96,192,63,192,31, + 0,11,19,38,13,1,0,14,0,14,0,27,0,17,0,49, + 128,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, + 96,192,96,192,96,224,224,96,192,63,192,31,0,11,17,34, + 13,1,0,29,128,63,0,0,0,0,0,0,0,31,0,63, + 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, + 192,63,192,31,0,11,17,34,13,1,0,49,128,49,128,0, + 0,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, + 96,192,96,192,96,224,224,96,192,63,192,31,0,14,10,20, + 24,5,2,3,0,3,0,3,0,0,0,0,0,255,252,0, + 0,3,0,3,0,3,0,11,15,30,13,1,254,0,32,0, + 96,31,192,63,192,97,192,227,224,194,96,198,96,204,96,216, + 96,248,224,112,192,123,192,95,0,192,0,10,19,38,14,2, + 0,48,0,24,0,24,0,12,0,4,0,0,0,0,0,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,225,192,119,192,60,192,10,19,38,14,2,0,3,0,6, + 0,6,0,12,0,8,0,0,0,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,119, + 192,60,192,10,19,38,14,2,0,12,0,30,0,30,0,51, + 0,33,0,0,0,0,0,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,225,192,119,192,60,192,10, + 17,34,14,2,0,51,0,51,0,0,0,0,0,0,0,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,225,192,127,192,60,192,11,23,46,12,1,251,3,0,3, + 0,6,0,12,0,0,0,0,0,192,96,192,192,224,192,97, + 192,113,128,49,128,51,128,59,0,27,0,30,0,14,0,14, + 0,12,0,12,0,220,0,248,0,112,0,11,22,44,14,2, + 251,192,0,192,0,192,0,192,0,192,0,207,0,251,192,224, + 192,224,224,192,96,192,96,192,96,192,96,224,224,224,192,251, + 192,207,0,192,0,192,0,192,0,192,0,192,0,11,22,44, + 13,1,251,49,128,49,128,0,0,0,0,0,0,192,96,224, + 96,96,224,96,192,113,192,49,128,57,128,27,128,27,0,31, + 0,14,0,14,0,14,0,12,0,12,0,28,0,24,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 17 + Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 + Font Bounding box w=31 h=30 x=-2 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =17 descent= 0 + X Font ascent =17 descent= 0 + Max Font ascent =17 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur17n[510] U8G_SECTION(".progmem.u8g_font_fur17n") = { + 0,31,30,254,250,17,0,0,0,0,42,57,0,17,253,17, + 0,9,9,18,15,3,8,34,0,54,0,22,0,28,0,255, + 128,156,128,20,0,54,0,34,0,14,14,28,24,5,0,2, + 0,2,0,2,0,2,0,2,0,2,0,255,252,2,0,2, + 0,2,0,2,0,2,0,2,0,2,0,4,6,6,6,1, + 253,112,112,96,96,192,192,6,1,1,8,1,5,252,2,3, + 3,6,2,0,192,192,192,7,18,18,9,1,255,6,6,4, + 12,12,8,8,24,24,16,48,48,32,32,96,96,64,192,10, + 17,34,13,1,0,30,0,63,128,97,128,96,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,97, + 192,97,128,63,128,30,0,5,17,17,13,3,0,56,120,248, + 216,24,24,24,24,24,24,24,24,24,24,24,24,24,10,17, + 34,13,1,0,30,0,127,128,97,128,224,192,224,192,0,192, + 1,192,3,128,3,128,7,0,14,0,28,0,56,0,112,0, + 96,0,224,0,255,192,10,17,34,13,1,0,31,0,127,128, + 96,192,224,192,0,192,0,192,3,128,14,0,7,128,1,192, + 0,192,0,192,192,192,224,192,97,192,127,128,30,0,11,17, + 34,13,1,0,3,128,3,128,7,128,13,128,13,128,25,128, + 57,128,49,128,97,128,97,128,193,128,255,224,255,224,1,128, + 1,128,1,128,1,128,10,17,34,13,1,0,127,128,96,0, + 96,0,96,0,96,0,111,0,127,128,97,128,64,192,0,192, + 0,192,0,192,0,192,192,192,225,128,127,0,30,0,11,17, + 34,13,1,0,31,0,59,128,96,192,224,192,192,0,192,0, + 207,0,223,192,241,192,224,224,192,96,192,96,192,96,192,96, + 96,192,59,192,31,0,10,17,34,13,1,0,255,192,0,192, + 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, + 6,0,14,0,12,0,12,0,28,0,24,0,56,0,11,17, + 34,13,1,0,31,0,59,128,96,192,96,192,96,192,96,192, + 49,128,31,0,59,128,96,192,192,96,192,96,192,96,192,96, + 96,224,123,192,31,0,11,17,34,13,1,0,31,0,127,192, + 96,192,192,224,192,96,192,96,192,224,224,224,113,224,63,96, + 0,96,0,96,0,224,96,192,97,192,127,128,31,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=22 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 + Font Bounding box w=31 h=30 x=-2 y=-6 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =19 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur17r[3146] U8G_SECTION(".progmem.u8g_font_fur17r") = { + 0,31,30,254,250,17,4,5,8,170,32,127,251,19,250,17, + 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, + 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, + 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, + 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, + 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, + 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, + 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, + 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, + 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, + 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, + 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, + 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, + 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, + 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, + 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, + 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, + 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, + 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, + 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, + 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, + 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, + 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, + 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, + 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, + 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, + 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, + 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, + 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, + 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, + 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, + 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, + 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, + 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, + 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, + 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, + 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, + 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, + 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, + 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, + 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, + 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, + 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, + 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, + 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, + 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, + 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, + 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, + 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, + 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, + 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, + 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, + 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, + 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, + 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, + 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, + 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, + 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, + 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, + 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, + 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, + 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, + 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, + 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, + 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, + 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, + 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, + 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, + 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, + 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, + 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, + 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, + 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, + 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, + 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, + 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, + 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, + 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, + 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, + 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, + 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, + 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, + 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, + 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, + 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, + 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, + 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, + 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, + 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, + 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, + 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, + 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, + 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, + 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, + 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, + 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, + 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, + 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, + 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, + 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, + 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, + 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, + 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, + 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, + 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, + 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, + 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, + 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, + 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, + 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, + 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, + 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, + 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, + 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, + 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, + 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, + 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, + 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, + 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, + 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, + 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, + 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, + 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, + 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, + 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, + 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, + 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, + 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, + 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, + 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, + 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, + 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, + 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, + 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, + 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, + 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, + 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, + 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, + 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, + 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, + 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, + 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, + 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, + 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, + 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, + 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, + 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, + 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, + 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, + 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, + 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, + 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, + 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, + 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, + 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, + 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, + 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, + 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, + 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, + 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, + 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, + 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, + 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, + 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, + 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, + 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, + 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, + 2,4,12,0,5,62,112,231,224,255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 20, '1' Height: 20 + Calculated Max Values w=26 h=29 x= 7 y=17 dx=29 dy= 0 ascent=28 len=96 + Font Bounding box w=38 h=35 x=-2 y=-7 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-5 + X Font ascent =20 descent=-5 + Max Font ascent =28 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur20[8654] U8G_SECTION(".progmem.u8g_font_fur20") = { + 0,38,35,254,249,20,5,12,11,23,32,255,251,28,249,20, + 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, + 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, + 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, + 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, + 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, + 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, + 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, + 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, + 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, + 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, + 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, + 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, + 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, + 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, + 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, + 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, + 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, + 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, + 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, + 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, + 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, + 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, + 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, + 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, + 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, + 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, + 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, + 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, + 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, + 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, + 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, + 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, + 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, + 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, + 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, + 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, + 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, + 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, + 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, + 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, + 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, + 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, + 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, + 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, + 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, + 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, + 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, + 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, + 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, + 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, + 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, + 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, + 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, + 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, + 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, + 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, + 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, + 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, + 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, + 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, + 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, + 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, + 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, + 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, + 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, + 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, + 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, + 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, + 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, + 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, + 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, + 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, + 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, + 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, + 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, + 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, + 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, + 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, + 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, + 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, + 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, + 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, + 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, + 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, + 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, + 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, + 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, + 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, + 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, + 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, + 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, + 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, + 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, + 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, + 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, + 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, + 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, + 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, + 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, + 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, + 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, + 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, + 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, + 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, + 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, + 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, + 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, + 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, + 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, + 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, + 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, + 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, + 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, + 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, + 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, + 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, + 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, + 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, + 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, + 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, + 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, + 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, + 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, + 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, + 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, + 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, + 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, + 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, + 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, + 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, + 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, + 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, + 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, + 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, + 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, + 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, + 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, + 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, + 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, + 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, + 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, + 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, + 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, + 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, + 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, + 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, + 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, + 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, + 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, + 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, + 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, + 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, + 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, + 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, + 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, + 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, + 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, + 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, + 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, + 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, + 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, + 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, + 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, + 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, + 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, + 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, + 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, + 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, + 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, + 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, + 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, + 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, + 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, + 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, + 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, + 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, + 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, + 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, + 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, + 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, + 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, + 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, + 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, + 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, + 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, + 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, + 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, + 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, + 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, + 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, + 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, + 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, + 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, + 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, + 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, + 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, + 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, + 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, + 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, + 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, + 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, + 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, + 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, + 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, + 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, + 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, + 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, + 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, + 5,62,14,127,252,224,248,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,8,0,0,3,19, + 19,10,4,251,224,224,224,0,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,12,20,40,16,2,253,0,192,0, + 128,0,128,31,128,63,192,113,96,227,96,226,0,226,0,230, + 0,228,0,228,0,236,112,232,96,120,224,63,192,31,128,16, + 0,48,0,48,0,14,20,40,16,1,0,7,224,31,248,60, + 60,56,28,56,0,56,0,56,0,255,128,255,128,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,255, + 248,255,248,16,14,28,18,1,4,192,3,97,134,55,236,28, + 56,24,24,48,12,48,12,48,12,48,12,24,24,28,56,63, + 252,115,198,192,3,15,20,40,17,1,0,224,14,224,28,112, + 28,48,56,56,56,24,112,252,126,252,254,14,224,7,192,255, + 254,255,254,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,1,25,25,9,4,251,128,128,128,128,128,128,128, + 128,128,128,128,0,0,0,128,128,128,128,128,128,128,128,128, + 128,128,10,25,50,12,1,251,31,0,63,128,112,0,224,0, + 224,0,112,0,120,0,62,0,31,0,127,128,113,192,225,192, + 225,192,225,128,247,128,126,0,31,0,7,128,3,192,1,192, + 1,192,1,192,131,128,255,0,60,0,8,3,3,8,0,17, + 231,231,231,21,20,60,25,2,0,1,252,0,7,255,0,28, + 3,128,56,112,192,35,254,96,103,142,48,199,7,16,134,7, + 24,142,0,8,142,0,8,142,0,8,134,0,8,134,7,24, + 199,7,16,67,254,16,32,248,32,48,0,64,28,1,128,7, + 143,0,1,252,0,10,13,26,12,1,7,63,0,127,128,97, + 128,1,128,31,128,127,128,225,128,193,128,227,128,127,128,24, + 0,0,0,255,192,11,11,22,16,2,2,12,96,24,224,56, + 192,113,128,99,128,227,0,99,128,113,128,56,192,24,224,12, + 96,15,6,12,18,2,6,255,254,255,254,0,6,0,6,0, + 6,0,6,255,21,20,60,25,2,0,1,252,0,7,255,0, + 28,3,128,59,252,192,35,254,96,99,3,48,195,3,16,131, + 3,24,131,254,8,131,252,8,131,6,8,131,6,8,131,3, + 24,195,3,16,67,3,48,35,3,96,56,0,192,28,3,128, + 7,255,0,1,252,0,8,2,2,8,0,17,255,255,6,6, + 6,8,1,14,120,204,132,132,204,120,17,17,51,29,6,0, + 1,128,0,1,128,0,1,128,0,1,128,0,1,128,0,255, + 255,128,255,255,128,1,128,0,1,128,0,1,128,0,1,128, + 0,1,128,0,0,0,0,0,0,0,0,0,0,255,255,128, + 255,255,128,9,11,22,11,1,9,62,0,127,0,227,128,3, + 128,3,0,7,0,28,0,56,0,112,0,255,128,255,128,8, + 11,11,10,1,9,62,127,195,3,30,30,7,3,195,126,60, + 5,5,5,6,2,16,56,48,96,224,192,255,13,24,48,16, + 1,252,15,248,62,32,126,32,126,32,254,32,254,32,254,32, + 126,32,62,32,30,32,2,32,2,32,2,32,2,32,2,32, + 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, + 2,32,3,3,3,7,2,8,224,224,224,7,7,7,7,1, + 249,32,32,60,14,6,254,248,4,10,10,8,2,10,112,240, + 176,48,48,48,48,48,48,48,10,12,24,12,1,8,30,0, + 99,128,193,128,192,192,192,192,192,192,192,192,193,128,99,128, + 30,0,0,0,255,192,12,11,22,16,2,2,227,0,99,128, + 49,128,56,192,24,224,28,112,24,224,56,192,49,128,99,128, + 227,0,18,20,60,22,2,0,112,12,0,240,12,0,176,24, + 0,48,24,0,48,48,0,48,96,0,48,96,0,48,192,0, + 48,192,0,49,131,0,49,7,0,3,15,0,6,31,0,6, + 27,0,12,51,0,12,99,0,24,127,192,16,3,0,48,3, + 0,96,3,0,18,20,60,22,2,0,112,12,0,240,24,0, + 176,24,0,48,48,0,48,48,0,48,96,0,48,64,0,48, + 192,0,48,128,0,49,143,0,51,31,128,3,49,192,6,1, + 192,6,1,192,12,3,128,8,7,0,24,14,0,16,24,0, + 48,63,192,96,63,192,20,20,60,22,1,0,62,1,128,127, + 3,0,195,3,0,3,6,0,28,6,0,30,12,0,3,24, + 0,195,24,0,199,48,0,126,48,192,56,97,192,0,99,192, + 0,198,192,1,134,192,1,140,192,3,24,192,3,31,240,6, + 0,192,12,0,192,12,0,192,12,19,38,15,2,251,7,0, + 7,0,7,0,0,0,0,0,7,0,7,0,7,0,15,0, + 30,0,56,0,112,0,224,0,224,0,224,0,224,112,127,224, + 63,224,31,128,19,27,81,21,1,0,7,0,0,3,128,0, + 1,128,0,0,192,0,0,96,0,0,0,0,0,0,0,0, + 224,0,1,240,0,1,240,0,3,176,0,3,184,0,3,56, + 0,7,28,0,7,28,0,14,14,0,14,14,0,30,15,0, + 28,7,0,28,7,0,63,255,128,63,255,128,112,1,192,112, + 1,192,224,0,224,224,0,224,224,0,224,19,27,81,21,1, + 0,0,28,0,0,56,0,0,48,0,0,96,0,0,192,0, + 0,0,0,0,0,0,0,224,0,1,240,0,1,240,0,3, + 176,0,3,184,0,3,56,0,7,28,0,7,28,0,14,14, + 0,14,14,0,30,15,0,28,7,0,28,7,0,63,255,128, + 63,255,128,112,1,192,112,1,192,224,0,224,224,0,224,224, + 0,224,19,27,81,21,1,0,0,224,0,1,240,0,1,176, + 0,3,24,0,6,12,0,0,0,0,0,0,0,0,224,0, + 1,240,0,1,240,0,3,176,0,3,184,0,3,56,0,7, + 28,0,7,28,0,14,14,0,14,14,0,30,15,0,28,7, + 0,28,7,0,63,255,128,63,255,128,112,1,192,112,1,192, + 224,0,224,224,0,224,224,0,224,19,26,78,21,1,0,1, + 140,0,3,248,0,6,112,0,0,0,0,0,0,0,0,0, + 0,0,224,0,1,240,0,1,240,0,3,176,0,3,184,0, + 3,56,0,7,28,0,7,28,0,14,14,0,14,14,0,30, + 15,0,28,7,0,28,7,0,63,255,128,63,255,128,112,1, + 192,112,1,192,224,0,224,224,0,224,224,0,224,19,26,78, + 21,1,0,3,156,0,3,156,0,3,156,0,0,0,0,0, + 0,0,0,0,0,0,224,0,0,240,0,1,240,0,1,184, + 0,3,184,0,3,152,0,7,28,0,7,28,0,7,14,0, + 14,14,0,14,15,0,28,7,0,28,7,0,63,255,128,63, + 255,128,56,1,192,112,1,192,112,0,224,224,0,224,224,0, + 224,20,28,84,21,0,0,0,240,0,1,152,0,1,8,0, + 1,8,0,1,152,0,0,240,0,0,0,0,0,0,0,0, + 240,0,0,240,0,0,248,0,1,248,0,1,220,0,3,156, + 0,3,158,0,7,14,0,7,14,0,7,7,0,14,7,0, + 14,7,128,30,3,128,31,255,192,31,255,192,56,1,192,56, + 0,224,112,0,224,112,0,112,224,0,112,25,20,80,28,1, + 0,0,63,255,128,0,127,255,128,0,126,0,0,0,238,0, + 0,0,238,0,0,1,206,0,0,1,206,0,0,3,206,0, + 0,3,142,0,0,7,143,255,128,7,15,255,128,15,14,0, + 0,14,14,0,0,31,254,0,0,63,254,0,0,56,14,0, + 0,120,14,0,0,112,14,0,0,224,15,255,128,224,15,255, + 128,16,27,54,19,2,249,7,240,31,252,60,14,48,6,112, + 7,96,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,96,0,96,7,48,6,56,14,31,252,7,240,0, + 128,0,224,0,248,0,24,0,24,3,248,1,224,13,27,54, + 17,2,0,24,0,28,0,14,0,6,0,3,0,0,0,0, + 0,255,248,255,248,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,255,240,255,240,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,255,248,255,248,13,27,54,17,2,0,1, + 192,1,128,3,0,6,0,4,0,0,0,0,0,255,248,255, + 248,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, + 240,255,240,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,255,248,255,248,13,27,54,17,2,0,15,0,15,0,25, + 128,16,192,48,192,0,0,0,0,255,248,255,248,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,255,240,255,240,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,255,248,255, + 248,13,26,52,17,2,0,56,224,56,224,56,224,0,0,0, + 0,0,0,255,248,255,248,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,255,240,255,240,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,255,248,255,248,5,27,27,7,0, + 0,224,96,48,48,24,0,0,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,5,27,27,7, + 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,8,27,27, + 7,255,0,28,62,118,99,193,0,0,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,8,26, + 26,8,0,0,227,227,227,0,0,0,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,19,20, + 60,20,0,0,63,240,0,63,254,0,56,31,0,56,7,128, + 56,3,128,56,1,192,56,1,192,56,0,192,56,0,224,255, + 192,224,255,192,224,56,0,224,56,0,192,56,1,192,56,1, + 192,56,3,128,56,7,128,56,31,0,63,254,0,63,240,0, + 16,26,52,20,2,0,6,48,15,224,9,224,0,0,0,0, + 0,0,240,7,248,7,248,7,252,7,252,7,238,7,238,7, + 231,7,231,135,227,135,227,199,225,199,224,231,224,231,224,119, + 224,119,224,63,224,63,224,31,224,31,18,28,84,22,2,0, + 7,0,0,3,128,0,1,128,0,0,192,0,0,64,0,0, + 0,0,0,0,0,0,0,0,3,240,0,15,252,0,62,31, + 0,56,7,0,112,3,128,96,1,128,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,96, + 1,192,112,3,128,112,3,128,56,7,0,30,30,0,15,252, + 0,3,240,0,18,28,84,22,2,0,0,56,0,0,112,0, + 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, + 0,0,3,240,0,15,252,0,62,31,0,56,7,0,112,3, + 128,96,1,128,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,96,1,192,112,3,128,112, + 3,128,56,7,0,30,30,0,15,252,0,3,240,0,18,28, + 84,22,2,0,1,224,0,1,224,0,3,240,0,3,48,0, + 6,24,0,0,0,0,0,0,0,0,0,0,3,240,0,15, + 252,0,62,31,0,56,7,0,112,3,128,96,1,128,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,96,1,192,112,3,128,112,3,128,56,7,0,30, + 30,0,15,252,0,3,240,0,18,26,78,22,2,0,3,152, + 0,7,248,0,6,112,0,0,0,0,0,0,0,0,0,0, + 3,240,0,15,252,0,62,31,0,56,7,0,112,3,128,96, + 1,128,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,96,1,192,112,3,128,112,3,128, + 56,7,0,31,62,0,15,252,0,3,240,0,18,26,78,22, + 2,0,7,28,0,7,28,0,7,28,0,0,0,0,0,0, + 0,0,0,0,3,240,0,15,252,0,62,31,0,56,7,0, + 112,3,128,96,1,128,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,96,1,192,112,3, + 128,112,3,128,56,7,0,30,30,0,15,252,0,3,240,0, + 16,15,30,28,6,1,64,2,224,7,112,14,56,28,12,56, + 6,96,3,192,1,128,3,192,6,96,12,48,24,24,48,12, + 96,6,64,2,18,24,72,22,2,254,0,0,128,0,1,192, + 3,251,128,15,255,0,62,31,0,56,15,128,112,31,128,96, + 29,128,224,57,192,224,113,192,224,113,192,224,225,192,225,193, + 192,227,193,192,227,129,192,231,1,128,111,3,128,126,3,128, + 60,7,0,62,30,0,63,252,0,115,240,0,224,0,0,96, + 0,0,16,28,56,20,2,0,14,0,7,0,3,0,1,128, + 0,128,0,0,0,0,0,0,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,96,14,112,14,62,124,31,248,15,224, + 16,28,56,20,2,0,0,112,0,224,0,192,1,128,1,0, + 0,0,0,0,0,0,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,96,14,112,14,62,124,31,248,15,224,16,28, + 56,20,2,0,3,192,3,192,7,224,6,96,12,48,0,0, + 0,0,0,0,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,96,14,112,14,62,124,31,248,15,224,16,26,52,20, + 2,0,14,56,14,56,14,56,0,0,0,0,0,0,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,96,6,112,14, + 60,60,31,248,15,224,17,27,81,19,1,0,0,112,0,0, + 96,0,0,192,0,0,128,0,1,128,0,0,0,0,0,0, + 0,224,3,128,240,7,0,112,7,0,56,14,0,60,28,0, + 28,28,0,14,56,0,14,48,0,7,112,0,7,96,0,3, + 224,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,14,20,40, + 17,2,0,224,0,224,0,224,0,224,0,255,192,255,240,224, + 120,224,56,224,28,224,28,224,28,224,56,224,120,255,240,255, + 192,224,0,224,0,224,0,224,0,224,0,14,20,40,15,1, + 0,15,128,63,224,112,112,224,112,224,112,224,112,225,224,227, + 128,231,0,231,0,227,128,227,224,224,248,224,56,224,28,224, + 28,238,28,230,28,231,248,225,240,12,21,42,15,1,0,12, + 0,14,0,6,0,3,0,1,128,0,0,0,0,31,192,63, + 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, + 112,224,112,224,240,127,176,30,48,12,22,44,15,1,0,1, + 192,1,128,3,0,3,0,6,0,12,0,0,0,0,0,31, + 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, + 112,224,112,224,112,224,240,127,176,30,48,12,22,44,15,1, + 0,7,0,15,0,13,128,29,128,24,192,48,64,0,0,0, + 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, + 112,224,112,224,112,224,112,224,240,127,176,30,48,12,20,40, + 15,1,0,30,64,31,192,49,128,0,0,0,0,0,0,31, + 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, + 112,224,112,224,112,224,240,127,176,30,48,12,20,40,15,1, + 0,56,224,56,224,56,224,0,0,0,0,0,0,31,192,63, + 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, + 112,224,112,224,240,127,176,30,48,12,23,46,15,1,0,15, + 0,25,128,16,128,16,128,25,128,15,0,0,0,0,0,0, + 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, + 112,224,112,224,112,224,112,224,240,127,176,30,48,23,14,42, + 25,1,0,31,131,240,63,207,248,112,108,28,112,56,12,0, + 56,14,15,255,254,63,255,254,120,56,0,224,56,0,224,56, + 14,224,120,12,240,236,28,127,199,248,31,3,240,12,21,42, + 14,1,249,31,128,63,224,112,112,224,112,224,112,224,0,224, + 0,224,0,224,0,224,112,224,112,112,224,63,224,31,128,4, + 0,7,128,7,192,0,96,0,96,31,192,15,0,13,22,44, + 15,1,0,56,0,28,0,12,0,6,0,6,0,3,0,0, + 0,0,0,15,128,63,224,112,112,96,48,224,56,255,248,255, + 248,224,0,224,0,224,56,96,112,112,112,63,224,15,128,13, + 22,44,15,1,0,1,192,1,128,3,128,3,0,6,0,4, + 0,0,0,0,0,15,128,63,224,112,112,96,48,224,56,255, + 248,255,248,224,0,224,0,224,56,96,112,112,112,63,224,15, + 128,13,22,44,15,1,0,7,0,15,0,15,128,25,128,24, + 192,48,64,0,0,0,0,15,128,63,224,112,112,96,48,224, + 56,255,248,255,248,224,0,224,0,224,56,96,112,112,112,63, + 224,15,128,13,20,40,15,1,0,56,224,56,224,56,224,0, + 0,0,0,0,0,15,192,63,224,112,112,96,56,224,56,255, + 248,255,248,224,0,224,0,224,56,96,56,112,112,63,224,15, + 128,5,21,21,7,0,0,224,96,48,48,24,0,0,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,5,21,21,7, + 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,8,21,21,7,255,0,60,62,118, + 99,193,0,0,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,8,20,20,7,255,0,227,227,227,0,0,0,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,14,20,40,16, + 1,0,48,32,57,224,15,0,31,128,113,192,0,224,15,240, + 63,240,120,120,112,56,224,24,224,28,224,28,224,28,224,28, + 224,24,96,56,112,112,63,224,15,192,12,20,40,16,2,0, + 28,192,63,192,51,128,0,0,0,0,0,0,239,128,255,224, + 240,240,224,112,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,14,22,44,16,1,0,28,0, + 12,0,14,0,6,0,3,0,1,0,0,0,0,0,15,192, + 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, + 224,24,112,56,112,112,63,224,15,192,14,22,44,16,1,0, + 0,224,1,192,1,128,3,0,3,0,6,0,0,0,0,0, + 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, + 224,28,224,24,112,56,112,112,63,224,15,192,14,22,44,16, + 1,0,7,0,7,128,15,128,12,192,24,192,24,96,0,0, + 0,0,15,192,63,224,112,112,112,56,224,24,224,28,224,28, + 224,28,224,28,224,24,112,56,112,112,63,224,15,192,14,20, + 40,16,1,0,14,96,31,192,17,128,0,0,0,0,0,0, + 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, + 224,28,224,24,112,56,112,112,63,224,15,192,14,20,40,16, + 1,0,28,224,28,224,28,224,0,0,0,0,0,0,15,192, + 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, + 224,24,112,56,112,112,63,224,15,192,17,12,36,29,6,2, + 1,192,0,1,192,0,1,192,0,0,0,0,0,0,0,255, + 255,128,255,255,128,0,0,0,0,0,0,1,192,0,1,192, + 0,1,192,0,14,18,36,16,1,254,0,8,0,24,15,248, + 63,240,112,112,112,248,225,216,225,152,227,28,230,28,238,28, + 236,24,120,56,112,112,127,224,111,192,192,0,128,0,12,22, + 44,16,2,0,56,0,24,0,12,0,12,0,6,0,3,0, + 0,0,0,0,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,240,240,127,240,63,112, + 12,22,44,16,2,0,1,192,1,128,3,0,7,0,6,0, + 12,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, + 63,112,12,22,44,16,2,0,6,0,15,0,15,0,25,128, + 16,128,48,192,0,0,0,0,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,112,240,240, + 127,240,63,112,12,20,40,16,2,0,57,192,57,192,57,192, + 0,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, + 63,112,13,27,54,15,1,251,0,224,1,192,1,128,3,0, + 2,0,0,0,0,0,0,0,224,24,224,56,96,56,112,112, + 112,112,56,96,56,224,28,224,29,192,13,192,15,128,7,128, + 7,128,7,0,7,0,6,0,238,0,252,0,120,0,14,25, + 50,17,2,251,224,0,224,0,224,0,224,0,224,0,224,0, + 231,192,255,240,240,112,240,56,224,24,224,28,224,28,224,28, + 224,28,224,24,224,56,240,112,255,240,231,192,224,0,224,0, + 224,0,224,0,224,0,14,25,50,14,0,251,28,224,28,224, + 28,224,0,0,0,0,0,0,224,28,112,24,112,56,48,56, + 56,112,56,112,28,96,28,224,14,224,14,192,7,192,7,128, + 3,128,3,128,3,0,7,0,6,0,6,0,14,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 20 + Calculated Max Values w=17 h=21 x= 6 y= 9 dx=29 dy= 0 ascent=20 len=48 + Font Bounding box w=38 h=35 x=-2 y=-7 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =20 descent= 0 + X Font ascent =20 descent= 0 + Max Font ascent =20 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur20n[596] U8G_SECTION(".progmem.u8g_font_fur20n") = { + 0,38,35,254,249,20,0,0,0,0,42,57,0,20,253,20, + 0,11,11,22,19,4,9,17,0,49,128,27,0,27,0,14, + 0,255,224,142,32,27,0,27,0,49,128,17,0,17,16,48, + 29,6,0,1,128,0,1,128,0,1,128,0,1,128,0,1, + 128,0,1,128,0,1,128,0,255,255,128,255,255,128,1,128, + 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, + 1,128,0,5,7,7,8,1,253,56,56,112,112,96,96,224, + 7,2,2,9,1,6,254,254,3,3,3,8,3,0,224,224, + 224,8,21,21,11,2,255,3,6,6,6,4,12,12,12,24, + 24,24,48,48,48,96,96,96,64,192,192,192,13,20,40,16, + 1,0,15,128,63,192,112,224,96,112,96,112,224,48,224,48, + 224,56,224,56,224,56,224,56,224,56,224,56,224,48,224,48, + 96,112,112,112,48,224,63,192,15,128,7,20,20,16,4,0, + 30,62,126,254,206,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,12,20,40,16,2,0,31,128,63,192,112,96, + 112,112,224,112,0,112,0,112,0,112,0,224,1,224,3,192, + 3,128,7,0,14,0,28,0,60,0,120,0,240,0,255,240, + 255,240,13,20,40,16,1,0,15,128,63,224,112,112,112,48, + 224,56,0,56,0,48,0,224,7,192,7,192,0,224,0,112, + 0,56,0,56,224,56,224,56,224,56,112,112,63,224,31,128, + 14,20,40,16,1,0,0,240,1,240,1,240,3,240,7,112, + 6,112,14,112,28,112,24,112,56,112,112,112,96,112,224,112, + 255,252,255,252,0,112,0,112,0,112,0,112,0,112,13,20, + 40,16,1,0,255,224,255,224,224,0,224,0,224,0,224,0, + 224,0,239,128,255,224,240,112,224,112,224,48,0,56,0,56, + 0,56,224,48,224,112,112,224,127,192,31,128,13,20,40,16, + 1,0,15,192,63,224,120,112,112,48,224,56,224,0,224,0, + 231,192,255,224,248,240,224,56,224,56,224,56,224,56,224,56, + 224,56,96,48,48,112,63,224,15,128,12,20,40,16,2,0, + 255,240,255,240,0,112,0,112,0,96,0,224,0,224,1,192, + 1,192,1,128,3,128,3,128,3,0,7,0,7,0,14,0, + 14,0,14,0,28,0,28,0,13,20,40,16,1,0,15,128, + 63,224,112,112,224,48,224,56,224,56,96,48,112,112,31,192, + 31,192,56,96,96,48,224,56,224,56,224,56,224,56,224,56, + 112,112,63,224,15,128,13,20,40,16,1,0,31,192,63,224, + 112,112,224,56,224,56,224,56,224,56,224,56,224,56,112,120, + 63,248,31,56,0,56,0,56,0,56,96,48,96,112,112,224, + 63,192,31,128}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 20, '1' Height: 20 + Calculated Max Values w=26 h=29 x= 7 y=16 dx=29 dy= 0 ascent=22 len=96 + Font Bounding box w=38 h=35 x=-2 y=-7 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =20 descent=-5 + X Font ascent =20 descent=-5 + Max Font ascent =22 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur20r[3976] U8G_SECTION(".progmem.u8g_font_fur20r") = { + 0,38,35,254,249,20,5,12,11,23,32,127,251,22,249,20, + 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, + 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, + 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, + 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, + 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, + 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, + 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, + 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, + 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, + 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, + 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, + 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, + 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, + 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, + 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, + 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, + 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, + 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, + 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, + 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, + 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, + 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, + 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, + 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, + 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, + 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, + 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, + 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, + 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, + 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, + 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, + 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, + 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, + 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, + 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, + 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, + 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, + 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, + 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, + 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, + 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, + 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, + 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, + 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, + 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, + 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, + 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, + 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, + 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, + 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, + 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, + 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, + 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, + 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, + 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, + 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, + 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, + 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, + 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, + 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, + 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, + 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, + 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, + 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, + 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, + 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, + 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, + 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, + 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, + 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, + 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, + 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, + 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, + 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, + 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, + 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, + 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, + 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, + 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, + 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, + 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, + 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, + 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, + 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, + 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, + 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, + 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, + 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, + 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, + 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, + 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, + 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, + 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, + 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, + 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, + 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, + 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, + 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, + 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, + 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, + 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, + 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, + 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, + 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, + 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, + 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, + 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, + 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, + 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, + 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, + 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, + 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, + 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, + 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, + 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, + 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, + 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, + 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, + 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, + 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, + 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, + 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, + 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, + 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, + 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, + 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, + 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, + 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, + 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, + 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, + 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, + 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, + 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, + 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, + 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, + 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, + 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, + 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, + 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, + 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, + 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, + 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, + 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, + 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, + 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, + 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, + 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, + 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, + 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, + 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, + 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, + 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, + 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, + 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, + 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, + 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, + 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, + 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, + 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, + 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, + 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, + 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, + 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, + 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, + 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, + 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, + 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, + 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, + 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, + 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, + 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, + 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, + 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, + 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, + 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, + 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, + 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, + 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, + 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, + 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, + 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, + 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, + 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, + 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, + 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, + 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, + 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, + 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, + 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, + 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, + 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, + 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, + 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, + 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, + 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, + 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, + 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, + 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, + 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, + 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, + 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, + 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, + 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, + 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, + 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, + 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, + 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, + 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, + 5,62,14,127,252,224,248,255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 25, '1' Height: 25 + Calculated Max Values w=31 h=37 x= 8 y=22 dx=34 dy= 0 ascent=36 len=132 + Font Bounding box w=46 h=45 x=-2 y=-9 + Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =36 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur25[11949] U8G_SECTION(".progmem.u8g_font_fur25") = { + 0,46,45,254,247,25,6,119,15,27,32,255,249,36,247,25, + 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, + 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, + 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, + 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, + 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, + 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, + 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, + 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, + 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, + 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, + 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, + 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, + 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, + 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, + 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, + 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, + 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, + 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, + 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, + 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, + 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, + 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, + 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, + 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, + 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, + 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, + 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, + 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, + 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, + 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, + 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, + 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, + 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, + 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, + 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, + 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, + 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, + 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, + 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, + 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, + 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, + 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, + 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, + 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, + 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, + 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, + 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, + 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, + 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, + 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, + 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, + 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, + 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, + 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, + 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, + 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, + 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, + 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, + 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, + 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, + 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, + 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, + 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, + 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, + 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, + 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, + 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, + 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, + 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, + 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, + 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, + 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, + 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, + 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, + 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, + 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, + 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, + 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, + 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, + 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, + 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, + 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, + 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, + 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, + 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, + 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, + 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, + 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, + 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, + 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, + 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, + 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, + 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, + 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, + 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, + 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, + 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, + 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, + 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, + 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, + 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, + 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, + 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, + 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, + 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, + 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, + 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, + 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, + 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, + 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, + 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, + 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, + 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, + 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, + 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, + 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, + 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, + 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, + 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, + 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, + 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, + 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, + 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, + 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, + 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, + 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, + 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, + 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, + 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, + 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, + 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, + 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, + 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, + 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, + 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, + 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, + 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, + 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, + 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, + 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, + 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, + 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, + 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, + 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, + 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, + 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, + 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, + 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, + 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, + 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, + 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, + 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, + 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, + 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, + 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, + 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, + 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, + 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, + 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, + 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, + 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, + 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, + 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, + 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, + 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, + 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, + 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, + 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, + 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, + 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, + 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, + 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, + 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, + 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, + 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, + 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, + 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, + 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, + 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, + 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, + 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, + 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, + 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, + 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, + 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, + 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, + 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, + 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, + 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, + 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, + 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, + 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, + 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, + 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, + 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, + 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, + 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, + 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, + 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, + 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, + 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, + 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, + 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, + 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, + 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, + 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, + 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, + 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, + 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, + 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, + 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, + 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, + 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, + 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, + 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, + 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, + 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, + 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, + 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, + 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, + 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, + 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, + 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, + 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, + 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, + 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, + 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, + 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, + 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, + 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, + 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, + 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, + 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, + 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, + 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, + 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, + 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, + 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, + 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, + 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, + 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, + 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, + 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, + 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, + 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, + 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, + 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, + 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, + 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, + 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, + 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, + 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, + 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, + 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, + 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, + 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, + 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, + 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, + 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, + 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, + 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, + 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, + 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, + 31,1,192,63,231,128,121,255,0,224,62,0,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, + 10,0,0,3,25,25,13,5,249,224,224,224,0,0,0,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,14,26,52,19,2,252,0,48,0,48,0,32,0,96, + 15,224,63,240,124,248,112,220,112,156,241,156,225,128,225,128, + 227,0,227,0,227,0,226,0,246,28,118,28,124,60,60,120, + 63,240,15,192,24,0,24,0,16,0,48,0,17,26,78,19, + 1,0,0,64,0,7,252,0,15,254,0,30,15,0,60,7, + 128,56,3,128,56,0,0,56,0,0,56,0,0,56,0,0, + 255,224,0,255,224,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,255,255,0,255,255,0, + 18,19,57,20,1,6,64,0,128,224,1,192,113,227,128,63, + 255,0,31,62,0,28,14,0,24,6,0,48,3,0,48,3, + 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, + 31,62,0,55,251,0,113,225,128,224,1,192,64,0,128,18, + 25,75,20,1,0,240,1,192,112,3,192,120,3,128,56,7, + 128,60,7,0,28,15,0,30,14,0,254,15,192,255,31,192, + 7,28,0,7,184,0,3,184,0,3,240,0,255,255,192,255, + 255,192,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,12,31,62,16,2,251,31,224,63, + 224,56,32,112,0,112,0,112,0,120,0,124,0,62,0,31, + 128,15,192,63,224,120,240,240,112,224,112,224,112,224,240,241, + 224,127,192,63,128,31,128,7,224,1,224,0,240,0,112,0, + 112,0,112,0,240,65,224,127,192,63,128,10,3,6,10,0, + 22,225,192,225,192,225,192,26,25,100,30,2,1,0,255,192, + 0,3,255,240,0,7,128,120,0,14,0,28,0,28,127,14, + 0,57,255,135,0,115,227,195,0,99,129,225,128,103,128,225, + 128,199,0,0,192,199,0,0,192,199,0,0,192,199,0,0, + 192,199,0,0,192,199,0,0,192,199,0,224,128,99,129,225, + 128,99,195,193,128,49,255,131,0,48,127,7,0,24,0,14, + 0,14,0,28,0,7,128,120,0,1,255,224,0,0,127,128, + 0,12,17,34,14,1,8,31,128,63,192,120,224,96,96,0, + 96,7,224,63,224,56,96,96,96,96,96,96,224,113,224,63, + 96,30,96,0,0,0,0,255,240,13,14,28,19,3,2,14, + 56,28,56,56,112,56,224,112,224,113,192,227,192,227,192,113, + 192,112,224,56,224,24,112,28,56,14,56,18,8,24,21,2, + 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,255,26,25,100,30,2,1, + 0,255,192,0,3,255,240,0,7,128,120,0,14,255,156,0, + 24,255,206,0,48,193,231,0,112,192,99,0,96,192,97,128, + 96,192,97,128,192,192,192,192,192,255,128,192,192,255,128,192, + 192,193,192,192,192,192,192,192,192,192,192,192,192,192,225,128, + 96,192,97,128,96,192,97,128,48,192,99,0,56,0,7,0, + 28,0,14,0,15,0,60,0,7,193,248,0,1,255,224,0, + 0,127,128,0,10,2,4,10,0,22,255,192,255,192,7,7, + 7,11,2,18,56,196,130,130,130,196,120,20,21,63,34,7, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,255,240,255,255,240, + 10,13,26,12,1,13,63,128,127,128,97,192,225,192,1,192, + 3,128,7,128,14,0,28,0,56,0,240,0,255,192,255,192, + 10,14,28,13,2,12,127,128,255,192,193,192,1,192,7,128, + 14,0,15,128,3,192,0,192,192,192,192,192,227,128,127,128, + 62,0,6,6,6,8,2,21,28,60,56,112,96,192,255,16, + 31,62,20,2,250,7,255,31,140,63,140,127,140,255,140,255, + 140,255,140,255,140,255,140,127,140,127,140,31,140,7,140,1, + 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, + 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, + 140,1,140,3,4,4,9,3,10,224,224,224,224,8,9,9, + 9,2,247,32,32,60,62,7,3,135,255,252,5,13,13,10, + 2,12,56,120,248,152,24,24,24,24,24,24,24,24,24,12, + 16,32,14,1,9,31,128,63,192,112,224,224,96,192,112,192, + 48,192,48,192,48,192,112,224,112,112,224,63,192,31,128,0, + 0,0,0,255,240,13,14,28,19,3,2,227,128,225,192,112, + 192,56,224,56,112,28,112,28,56,30,56,28,112,56,112,56, + 224,112,192,225,192,227,128,23,27,81,27,2,0,56,0,192, + 120,1,192,248,1,128,216,3,128,24,3,0,24,7,0,24, + 6,0,24,14,0,24,12,0,24,24,0,24,24,0,24,48, + 0,24,112,0,24,96,112,0,224,112,0,192,240,1,193,176, + 1,129,48,3,131,48,3,6,48,7,12,48,6,15,254,14, + 15,254,12,0,48,24,0,48,24,0,48,48,0,48,23,27, + 81,27,2,0,56,0,224,120,1,192,248,1,128,216,3,128, + 24,3,0,24,7,0,24,6,0,24,14,0,24,12,0,24, + 28,0,24,24,0,24,56,0,24,48,0,24,112,248,0,227, + 252,0,195,142,1,199,6,1,128,6,3,128,14,3,0,12, + 7,0,56,6,0,112,14,0,224,12,3,192,28,7,128,24, + 7,254,48,7,254,24,26,78,27,2,0,0,0,24,127,128, + 56,255,192,112,193,192,96,3,128,224,14,0,192,15,129,192, + 3,193,128,0,195,128,192,199,0,192,198,0,227,142,0,127, + 140,28,62,28,60,0,24,60,0,48,108,0,112,204,0,97, + 204,0,227,140,0,195,12,1,199,255,1,135,255,3,0,12, + 7,0,12,6,0,12,14,0,12,15,25,50,18,2,249,1, + 192,1,192,1,192,0,0,0,0,0,0,1,192,1,192,1, + 192,1,192,3,192,7,128,15,0,62,0,124,0,120,0,240, + 0,224,0,224,0,224,8,240,14,120,60,63,252,31,248,7, + 224,24,35,105,26,1,0,1,192,0,1,224,0,0,224,0, + 0,112,0,0,48,0,0,24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,60,0,0,124,0,0,126,0,0,254, + 0,0,238,0,0,239,0,1,231,0,1,199,128,3,195,128, + 3,131,192,7,131,192,7,1,192,7,1,224,15,0,224,14, + 0,240,31,255,240,31,255,240,31,255,248,60,0,56,56,0, + 60,120,0,28,112,0,30,112,0,30,240,0,14,224,0,15, + 24,35,105,26,1,0,0,7,128,0,7,0,0,14,0,0, + 12,0,0,28,0,0,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,60,0,0,124,0,0,126,0,0,254,0, + 0,238,0,0,239,0,1,231,0,1,199,128,3,195,128,3, + 131,192,7,131,192,7,1,192,7,1,224,15,0,224,14,0, + 240,31,255,240,31,255,240,31,255,248,60,0,56,56,0,60, + 120,0,28,112,0,30,112,0,30,240,0,14,224,0,15,24, + 35,105,26,1,0,0,60,0,0,124,0,0,110,0,0,230, + 0,0,195,0,1,131,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,60,0,0,124,0,0,126,0,0,254,0,0, + 238,0,0,239,0,1,231,0,1,199,128,3,195,128,3,131, + 192,7,131,192,7,1,192,7,1,224,15,0,224,14,0,240, + 31,255,240,31,255,240,31,255,248,60,0,56,56,0,60,120, + 0,28,112,0,30,112,0,30,240,0,14,224,0,15,24,33, + 99,26,1,0,0,241,128,1,255,0,1,159,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, + 124,0,0,126,0,0,254,0,0,238,0,0,239,0,1,231, + 0,1,199,128,3,195,128,3,131,192,7,131,192,7,1,192, + 7,1,224,15,0,224,14,0,240,31,255,240,31,255,240,31, + 255,248,60,0,56,56,0,60,120,0,28,112,0,30,112,0, + 30,240,0,14,224,0,15,25,33,132,25,0,0,0,225,192, + 0,0,225,192,0,0,225,192,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0, + 0,0,62,0,0,0,62,0,0,0,127,0,0,0,119,0, + 0,0,247,128,0,0,227,128,0,0,227,192,0,1,227,192, + 0,1,193,192,0,3,193,224,0,3,128,224,0,7,128,240, + 0,7,0,112,0,7,0,112,0,15,255,248,0,15,255,248, + 0,31,255,252,0,28,0,28,0,28,0,30,0,60,0,14, + 0,56,0,14,0,120,0,15,0,112,0,7,0,240,0,7, + 128,24,36,108,25,1,0,0,56,0,0,196,0,0,130,0, + 0,130,0,0,130,0,0,196,0,0,124,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,60,0,0,124,0,0,126, + 0,0,254,0,0,238,0,0,239,0,1,231,0,1,199,128, + 3,195,128,3,131,128,7,131,192,7,129,192,7,1,224,15, + 0,224,14,0,240,31,255,240,31,255,240,31,255,248,60,0, + 56,56,0,60,120,0,60,120,0,28,112,0,30,240,0,14, + 224,0,15,31,25,100,34,1,0,0,7,255,252,0,15,255, + 252,0,15,255,252,0,31,192,0,0,29,192,0,0,61,192, + 0,0,57,192,0,0,121,192,0,0,241,192,0,0,241,192, + 0,1,225,192,0,1,225,255,252,3,193,255,252,3,193,255, + 252,7,129,192,0,7,255,192,0,15,255,192,0,15,255,192, + 0,30,1,192,0,28,1,192,0,60,1,192,0,56,1,192, + 0,120,1,255,254,112,1,255,254,240,1,255,254,19,33,99, + 23,2,249,3,254,0,15,255,128,30,3,192,60,1,192,56, + 0,224,112,0,224,112,0,0,112,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,112,0,0,112,0,224,112,0,224,56, + 1,224,60,1,192,31,7,128,15,255,0,3,252,0,0,64, + 0,0,120,0,0,124,0,0,30,0,0,6,0,0,6,0, + 1,254,0,1,252,0,16,35,70,21,3,0,28,0,14,0, + 7,0,7,0,3,128,1,128,0,0,0,0,0,0,0,0, + 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, + 255,255,16,35,70,21,3,0,0,112,0,240,0,224,1,192, + 1,128,3,0,0,0,0,0,0,0,0,0,255,254,255,254, + 255,254,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,255,254,255,254,255,254,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,255,255,255,255,255,255,16,35, + 70,21,3,0,7,192,7,192,14,224,12,96,28,112,24,48, + 0,0,0,0,0,0,0,0,255,254,255,254,255,254,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,254, + 255,254,255,254,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,255,255,255,255,255,255,16,33,66,21,3,0, + 28,112,28,112,28,112,0,0,0,0,0,0,0,0,0,0, + 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, + 255,255,6,35,35,9,0,0,240,112,56,24,28,12,0,0, + 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,6,35,35,9,3, + 0,28,56,48,112,224,192,0,0,0,0,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,9,35,70,9,0,0,30,0,62,0,55,0, + 115,0,99,128,193,128,0,0,0,0,0,0,0,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 10,33,66,10,0,0,225,192,225,192,225,192,0,0,0,0, + 0,0,0,0,0,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,22,25,75,24,0,0,31,252, + 0,31,255,128,31,255,192,28,7,224,28,0,240,28,0,120, + 28,0,120,28,0,60,28,0,60,28,0,28,28,0,28,255, + 240,28,255,240,28,255,240,28,28,0,28,28,0,28,28,0, + 60,28,0,56,28,0,120,28,0,120,28,0,240,28,7,224, + 31,255,192,31,255,128,31,252,0,19,33,99,25,3,0,3, + 204,0,7,252,0,14,248,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,248,0,224,248,0,224,252,0,224, + 254,0,224,254,0,224,239,0,224,239,0,224,231,128,224,231, + 128,224,227,192,224,227,192,224,225,224,224,224,224,224,224,240, + 224,224,120,224,224,120,224,224,60,224,224,60,224,224,30,224, + 224,30,224,224,15,224,224,15,224,224,7,224,224,3,224,224, + 3,224,22,36,108,26,2,0,3,192,0,1,192,0,0,224, + 0,0,96,0,0,112,0,0,56,0,0,24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,255,0,15,255,192,31, + 255,224,62,1,240,56,0,112,120,0,120,112,0,56,240,0, + 56,240,0,28,224,0,28,224,0,28,224,0,28,224,0,28, + 224,0,28,224,0,28,240,0,60,112,0,56,112,0,56,120, + 0,120,56,0,112,60,0,240,31,3,224,15,255,192,7,255, + 128,0,252,0,22,36,108,26,2,0,0,15,0,0,14,0, + 0,28,0,0,24,0,0,56,0,0,112,0,0,96,0,0, + 0,0,0,0,0,0,0,0,0,0,0,3,255,0,15,255, + 192,31,255,224,62,1,240,56,0,112,120,0,120,112,0,56, + 240,0,56,240,0,28,224,0,28,224,0,28,224,0,28,224, + 0,28,224,0,28,224,0,28,240,0,60,112,0,56,112,0, + 56,120,0,120,56,0,112,60,0,240,31,3,224,15,255,192, + 7,255,128,0,252,0,22,36,108,26,2,0,0,120,0,0, + 120,0,0,252,0,0,206,0,1,206,0,3,135,0,3,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,3,255,0, + 15,255,192,31,255,224,62,1,240,56,0,112,120,0,120,112, + 0,56,240,0,56,240,0,28,224,0,28,224,0,28,224,0, + 28,224,0,28,224,0,28,224,0,28,240,0,60,112,0,56, + 112,0,56,120,0,120,56,0,112,60,0,240,31,3,224,15, + 255,192,7,255,128,0,252,0,22,33,99,26,2,0,1,243, + 0,3,255,0,3,30,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,3,255,0,15,255,192,31,255,224,62, + 1,240,56,0,112,120,0,120,112,0,56,240,0,56,240,0, + 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,28, + 224,0,28,240,0,60,112,0,56,112,0,56,120,0,120,56, + 0,112,60,0,240,31,3,224,15,255,192,7,255,128,0,252, + 0,22,33,99,26,2,0,1,195,128,1,195,128,1,195,128, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, + 255,0,15,255,192,31,255,224,62,1,240,56,0,112,120,0, + 120,112,0,56,240,0,56,240,0,28,224,0,28,224,0,28, + 224,0,28,224,0,28,224,0,28,224,0,28,240,0,60,112, + 0,56,112,0,56,120,0,120,56,0,112,60,0,240,31,3, + 224,15,255,192,7,255,128,0,252,0,18,19,57,34,8,1, + 64,0,128,224,1,192,112,3,128,56,7,0,24,6,0,12, + 12,0,6,24,0,3,48,0,1,224,0,0,192,0,1,224, + 0,3,48,0,6,24,0,12,12,0,24,6,0,48,3,0, + 96,1,128,224,1,192,64,0,128,22,31,93,26,2,253,0, + 0,24,0,0,60,0,0,56,3,255,120,15,255,240,31,255, + 240,62,1,240,56,1,240,120,3,248,112,7,184,240,15,60, + 240,15,60,224,30,28,224,60,28,224,60,28,224,120,28,224, + 240,28,224,224,28,241,224,60,115,192,56,115,128,56,127,128, + 120,63,0,112,62,0,240,31,3,224,63,255,192,63,255,128, + 121,252,0,240,0,0,224,0,0,32,0,0,19,36,108,25, + 3,0,7,0,0,3,128,0,3,128,0,1,192,0,0,224, + 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, + 0,0,0,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, + 224,0,224,224,0,224,240,0,224,240,1,224,112,1,192,120, + 3,192,62,7,192,63,255,128,31,255,0,3,248,0,19,36, + 108,25,3,0,0,28,0,0,60,0,0,56,0,0,112,0, + 0,96,0,0,192,0,1,192,0,0,0,0,0,0,0,0, + 0,0,0,0,0,224,0,224,224,0,224,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, + 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,240,0,224,240,1,224,112,1, + 192,120,3,192,62,7,192,63,255,128,31,255,0,3,248,0, + 19,36,108,25,3,0,0,224,0,1,240,0,1,240,0,3, + 184,0,3,28,0,6,12,0,6,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,224,0,224,224,0,224,224,0,224, + 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,240,0,224,240,1,224, + 112,1,192,120,3,192,62,7,192,63,255,128,31,255,0,3, + 248,0,19,33,99,25,3,0,7,14,0,7,14,0,7,14, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, + 224,0,224,240,0,224,240,1,224,112,1,192,120,3,192,62, + 7,192,63,255,128,31,255,0,3,248,0,21,35,105,23,1, + 0,0,14,0,0,30,0,0,28,0,0,56,0,0,48,0, + 0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,240, + 0,120,120,0,112,120,0,240,60,1,224,30,1,224,30,3, + 192,15,3,128,15,7,128,7,135,0,3,143,0,3,206,0, + 1,252,0,1,252,0,0,248,0,0,120,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,16,25,50,21,3,0, + 224,0,224,0,224,0,224,0,255,224,255,252,255,254,224,62, + 224,15,224,7,224,7,224,7,224,7,224,7,224,15,224,62, + 255,254,255,252,255,224,224,0,224,0,224,0,224,0,224,0, + 224,0,17,25,75,19,2,0,7,224,0,31,248,0,126,124, + 0,112,60,0,240,28,0,224,28,0,224,28,0,224,56,0, + 224,248,0,225,224,0,225,192,0,225,192,0,225,224,0,225, + 240,0,224,252,0,224,63,0,224,15,0,224,7,128,224,3, + 128,224,3,128,231,3,128,227,131,128,227,231,128,225,255,0, + 224,124,0,15,27,54,19,2,0,14,0,7,0,3,128,3, + 128,1,192,0,192,0,0,0,0,0,0,15,240,63,252,60, + 60,120,30,112,14,0,14,0,14,15,254,63,254,124,14,112, + 14,224,14,224,30,224,30,240,62,120,238,63,238,15,142,15, + 28,56,19,2,0,0,112,0,224,0,224,1,192,3,128,3, + 0,6,0,0,0,0,0,0,0,15,240,63,252,60,60,120, + 30,112,14,0,14,0,14,15,254,63,254,124,14,112,14,224, + 14,224,30,224,30,240,62,120,238,63,238,15,142,15,28,56, + 19,2,0,3,192,7,192,7,224,14,224,12,112,28,48,24, + 24,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, + 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, + 30,224,30,240,62,120,238,63,238,15,142,15,25,50,19,2, + 0,15,152,31,240,25,224,0,0,0,0,0,0,0,0,15, + 240,63,252,60,60,120,30,112,14,0,14,0,14,15,254,63, + 254,124,14,112,14,224,14,224,30,224,30,240,62,120,238,63, + 238,15,142,15,25,50,19,2,0,28,56,28,56,28,56,0, + 0,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, + 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, + 30,224,30,240,62,120,238,63,238,15,142,15,29,58,19,2, + 0,3,128,12,64,8,32,8,32,8,32,12,64,7,192,0, + 0,0,0,0,0,0,0,15,240,63,252,60,124,120,30,112, + 30,0,30,0,30,15,254,63,254,124,14,112,14,224,14,224, + 30,224,30,240,62,120,238,63,238,15,142,27,18,72,31,2, + 0,15,224,126,0,63,241,255,0,124,121,199,128,112,31,129, + 192,112,15,1,192,0,15,0,224,0,14,0,224,15,255,255, + 224,63,255,255,224,124,14,0,0,240,14,0,0,224,14,0, + 0,224,31,0,224,224,27,1,192,240,59,131,192,124,241,239, + 128,63,225,255,128,31,192,126,0,14,26,52,18,2,248,15, + 224,63,248,60,120,112,60,112,28,240,28,224,0,224,0,224, + 0,224,0,224,0,224,0,240,28,112,28,112,60,60,120,31, + 240,7,224,1,0,1,224,1,240,0,120,0,24,0,24,7, + 240,7,224,16,28,56,19,2,0,28,0,14,0,14,0,7, + 0,3,128,1,128,0,192,0,0,0,0,0,0,7,224,31, + 248,60,124,120,30,112,14,240,14,224,14,255,254,255,255,224, + 0,224,0,224,0,112,14,112,14,120,30,62,124,31,248,7, + 224,16,28,56,19,2,0,0,120,0,240,0,224,1,192,1, + 128,3,128,3,0,0,0,0,0,0,0,7,224,31,248,60, + 124,120,30,112,14,240,14,224,14,255,254,255,255,224,0,224, + 0,224,0,112,14,112,14,120,30,62,124,31,248,7,224,16, + 28,56,19,2,0,3,192,7,192,7,224,14,224,12,112,24, + 48,24,24,0,0,0,0,0,0,7,224,31,248,60,124,120, + 30,112,14,240,14,224,14,255,254,255,255,224,0,224,0,224, + 0,112,14,112,14,120,30,62,124,31,248,7,224,16,25,50, + 19,2,0,28,56,28,56,28,56,0,0,0,0,0,0,0, + 0,7,224,31,248,60,60,120,14,112,14,240,14,224,6,255, + 254,255,255,224,0,224,0,224,0,112,14,112,14,120,30,62, + 60,31,248,7,224,6,27,27,8,255,0,240,112,56,24,28, + 12,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,6,27,27,8,2,0,28,56,112,112, + 224,192,0,0,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,9,27,54,8,255,0,62,0,62, + 0,119,0,115,0,227,128,193,128,0,0,0,0,0,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,10,25,50,8,255,0,227,192,227,192,227,192,0, + 0,0,0,0,0,0,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,17,26,78,21,2, + 0,16,4,0,56,28,0,30,248,0,7,192,0,15,192,0, + 60,240,0,112,120,0,0,60,0,7,252,0,31,254,0,62, + 63,0,120,15,0,112,7,0,240,7,128,240,3,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,3,128,240,7,0, + 112,7,0,120,15,0,62,62,0,31,252,0,7,240,0,15, + 25,50,19,2,0,15,48,31,240,27,224,0,0,0,0,0, + 0,0,0,227,240,239,248,252,124,248,30,240,30,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,17,28,84,21,2,0,14,0,0, + 15,0,0,7,0,0,3,128,0,1,128,0,0,192,0,0, + 224,0,0,0,0,0,0,0,0,0,0,7,240,0,31,252, + 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, + 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, + 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, + 0,17,28,84,21,2,0,0,56,0,0,120,0,0,112,0, + 0,224,0,0,192,0,1,128,0,3,0,0,0,0,0,0, + 0,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, + 0,112,7,0,240,7,0,240,7,128,224,3,128,224,3,128, + 224,3,128,224,3,128,240,7,128,240,7,128,112,7,0,120, + 15,0,62,62,0,31,252,0,7,240,0,17,28,84,21,2, + 0,1,192,0,3,224,0,3,224,0,7,112,0,14,56,0, + 12,24,0,28,28,0,0,0,0,0,0,0,0,0,0,7, + 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, + 0,240,7,128,224,3,128,224,3,128,224,3,128,224,3,128, + 240,7,128,240,7,128,112,7,0,120,15,0,62,62,0,31, + 252,0,7,240,0,17,25,75,21,2,0,7,152,0,15,248, + 0,12,240,0,0,0,0,0,0,0,0,0,0,0,0,0, + 7,240,0,31,252,0,62,62,0,120,15,0,112,7,0,240, + 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, + 128,240,7,128,240,7,128,112,7,0,120,15,0,62,62,0, + 31,252,0,7,240,0,17,25,75,21,2,0,28,56,0,28, + 56,0,28,56,0,0,0,0,0,0,0,0,0,0,0,0, + 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, + 240,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, + 3,128,240,7,128,240,7,128,112,7,0,120,15,0,62,62, + 0,31,252,0,7,240,0,20,15,45,34,7,3,0,96,0, + 0,240,0,0,240,0,0,96,0,0,0,0,0,0,0,0, + 0,0,255,255,240,255,255,240,0,0,0,0,0,0,0,96, + 0,0,240,0,0,240,0,0,96,0,17,23,69,21,2,254, + 0,1,0,0,1,128,0,3,128,7,247,0,31,254,0,62, + 62,0,120,31,0,112,63,0,240,55,128,240,119,128,224,227, + 128,225,195,128,225,131,128,227,131,128,231,7,128,254,7,128, + 124,7,0,124,15,0,62,62,0,127,252,0,103,240,0,224, + 0,0,192,0,0,15,28,56,19,2,0,28,0,30,0,14, + 0,7,0,3,0,1,128,1,128,0,0,0,0,0,0,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,240,30,240,30,124,126,63, + 238,31,142,15,28,56,19,2,0,0,112,0,240,0,224,1, + 192,1,128,3,0,7,0,0,0,0,0,0,0,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,240,30,240,30,124,126,63,238,31, + 142,15,28,56,19,2,0,3,128,7,192,7,192,14,224,12, + 96,24,48,24,48,0,0,0,0,0,0,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,240,30,240,30,124,126,63,238,31,142,15, + 25,50,19,2,0,56,112,56,112,56,112,0,0,0,0,0, + 0,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,240,30,240, + 62,124,126,63,238,31,142,16,34,68,18,1,249,0,56,0, + 112,0,96,0,224,1,192,1,128,0,0,0,0,0,0,224, + 7,240,7,112,15,112,14,120,14,56,30,60,28,28,28,28, + 60,30,56,14,120,15,112,7,112,7,240,7,224,3,224,3, + 224,1,192,1,192,3,128,3,128,231,128,255,0,127,0,62, + 0,16,32,64,20,2,249,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,227,240,231,248,254,60,248,30,240,14,240, + 15,224,7,224,7,224,7,224,7,224,7,224,7,240,15,240, + 14,248,30,254,124,239,248,227,240,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,16,32,64,18,1,249,28,56,28, + 56,28,56,0,0,0,0,0,0,0,0,224,7,224,7,240, + 15,112,14,120,14,56,30,60,28,60,28,28,56,30,56,14, + 120,15,112,15,112,7,240,7,224,3,224,3,192,3,192,3, + 192,3,128,3,128,7,128,7,0,7,0,15,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 25 + Calculated Max Values w=20 h=28 x= 7 y=12 dx=34 dy= 0 ascent=26 len=75 + Font Bounding box w=46 h=45 x=-2 y=-9 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =25 descent= 0 + X Font ascent =25 descent= 0 + Max Font ascent =26 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur25n[774] U8G_SECTION(".progmem.u8g_font_fur25n") = { + 0,46,45,254,247,25,0,0,0,0,42,57,0,26,252,25, + 0,14,13,26,22,4,12,24,96,28,224,28,224,12,192,7, + 128,243,60,255,252,231,156,7,128,12,192,28,224,60,224,24, + 96,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, + 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,6,9,9,9,2,252,60,120,120,112, + 112,224,224,224,192,8,3,3,10,1,7,255,255,255,3,4, + 4,9,3,0,224,224,224,224,10,28,56,13,2,254,0,192, + 1,192,1,128,1,128,3,128,3,0,3,0,3,0,7,0, + 6,0,6,0,14,0,12,0,12,0,28,0,28,0,24,0, + 24,0,56,0,48,0,48,0,112,0,112,0,96,0,96,0, + 224,0,192,0,192,0,15,25,50,19,2,1,15,224,63,248, + 62,248,120,60,112,28,112,30,224,14,224,14,224,14,224,14, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,240,14, + 112,30,112,28,120,28,60,60,63,248,31,240,7,192,8,25, + 25,19,5,0,15,31,63,127,255,231,135,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,15,25,50, + 19,2,1,15,240,63,248,62,252,120,28,120,30,112,14,240, + 14,0,14,0,30,0,28,0,60,0,120,0,120,0,240,1, + 224,3,192,7,128,15,0,31,0,62,0,60,0,120,0,240, + 0,255,254,255,254,16,25,50,19,2,1,15,240,63,248,60, + 28,120,14,112,14,112,14,0,14,0,14,0,28,0,120,3, + 240,3,240,0,248,0,30,0,14,0,15,0,7,0,7,240, + 7,240,7,240,14,120,30,60,124,31,248,7,224,17,25,75, + 19,1,0,0,60,0,0,124,0,0,124,0,0,252,0,1, + 220,0,1,220,0,3,156,0,7,28,0,7,28,0,14,28, + 0,28,28,0,60,28,0,56,28,0,112,28,0,240,28,0, + 224,28,0,255,255,128,255,255,128,255,255,128,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,15,25, + 50,19,2,0,127,252,127,252,127,252,112,0,112,0,112,0, + 112,0,112,0,115,240,127,248,124,60,120,28,112,30,96,14, + 0,14,0,14,0,14,0,14,0,14,224,30,240,28,112,60, + 124,120,63,240,15,192,16,25,50,19,1,1,15,240,31,252, + 60,28,120,30,112,14,240,14,224,0,224,0,224,0,227,240, + 231,252,239,252,252,30,248,14,240,15,240,7,240,7,240,7, + 240,7,112,7,120,14,56,14,62,60,15,248,7,224,15,25, + 50,19,2,0,255,254,255,254,0,14,0,30,0,28,0,28, + 0,60,0,56,0,56,0,120,0,112,0,240,0,240,0,224, + 1,224,1,224,1,192,3,192,3,128,7,128,7,128,7,0, + 15,0,15,0,14,0,16,25,50,19,1,1,15,240,63,252, + 60,60,120,30,112,14,112,14,112,14,112,14,56,28,60,60, + 15,240,15,240,62,56,56,28,112,14,224,7,224,7,224,7, + 224,7,224,7,240,15,120,14,60,60,31,248,7,224,16,25, + 50,19,2,1,31,248,63,252,120,30,112,14,240,15,224,15, + 224,15,224,15,224,15,240,15,112,31,120,63,63,247,15,231, + 0,7,0,7,0,7,0,14,112,14,112,14,112,30,112,60, + 60,120,31,240,15,224}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 25, '1' Height: 25 + Calculated Max Values w=31 h=37 x= 8 y=21 dx=34 dy= 0 ascent=28 len=120 + Font Bounding box w=46 h=45 x=-2 y=-9 + Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =28 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur25r[5389] U8G_SECTION(".progmem.u8g_font_fur25r") = { + 0,46,45,254,247,25,6,119,15,27,32,127,249,28,247,25, + 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, + 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, + 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, + 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, + 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, + 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, + 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, + 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, + 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, + 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, + 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, + 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, + 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, + 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, + 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, + 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, + 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, + 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, + 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, + 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, + 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, + 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, + 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, + 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, + 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, + 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, + 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, + 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, + 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, + 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, + 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, + 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, + 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, + 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, + 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, + 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, + 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, + 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, + 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, + 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, + 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, + 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, + 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, + 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, + 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, + 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, + 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, + 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, + 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, + 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, + 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, + 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, + 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, + 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, + 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, + 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, + 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, + 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, + 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, + 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, + 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, + 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, + 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, + 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, + 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, + 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, + 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, + 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, + 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, + 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, + 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, + 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, + 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, + 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, + 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, + 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, + 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, + 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, + 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, + 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, + 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, + 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, + 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, + 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, + 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, + 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, + 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, + 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, + 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, + 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, + 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, + 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, + 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, + 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, + 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, + 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, + 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, + 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, + 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, + 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, + 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, + 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, + 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, + 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, + 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, + 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, + 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, + 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, + 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, + 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, + 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, + 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, + 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, + 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, + 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, + 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, + 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, + 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, + 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, + 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, + 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, + 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, + 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, + 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, + 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, + 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, + 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, + 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, + 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, + 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, + 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, + 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, + 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, + 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, + 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, + 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, + 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, + 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, + 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, + 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, + 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, + 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, + 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, + 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, + 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, + 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, + 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, + 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, + 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, + 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, + 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, + 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, + 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, + 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, + 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, + 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, + 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, + 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, + 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, + 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, + 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, + 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, + 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, + 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, + 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, + 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, + 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, + 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, + 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, + 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, + 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, + 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, + 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, + 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, + 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, + 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, + 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, + 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, + 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, + 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, + 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, + 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, + 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, + 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, + 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, + 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, + 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, + 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, + 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, + 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, + 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, + 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, + 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, + 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, + 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, + 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, + 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, + 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, + 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, + 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, + 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, + 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, + 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, + 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, + 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, + 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, + 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, + 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, + 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, + 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, + 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, + 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, + 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, + 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, + 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, + 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, + 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, + 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, + 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, + 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, + 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, + 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, + 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, + 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, + 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, + 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, + 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, + 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, + 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, + 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, + 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, + 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, + 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, + 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, + 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, + 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, + 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, + 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, + 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, + 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, + 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, + 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, + 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, + 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, + 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, + 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, + 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, + 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, + 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, + 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, + 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, + 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, + 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, + 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, + 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, + 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, + 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, + 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, + 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, + 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, + 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, + 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, + 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, + 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, + 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, + 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, + 31,1,192,63,231,128,121,255,0,224,62,0,255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 30, '1' Height: 30 + Calculated Max Values w=37 h=43 x=10 y=26 dx=40 dy= 0 ascent=43 len=185 + Font Bounding box w=54 h=54 x=-3 y=-11 + Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-7 + X Font ascent =31 descent=-8 + Max Font ascent =43 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur30[16505] U8G_SECTION(".progmem.u8g_font_fur30") = { + 0,54,54,253,245,30,9,94,20,223,32,255,249,43,245,31, + 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, + 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, + 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, + 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, + 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, + 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, + 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, + 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, + 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, + 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, + 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, + 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, + 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, + 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, + 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, + 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, + 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, + 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, + 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, + 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, + 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, + 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, + 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, + 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, + 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, + 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, + 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, + 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, + 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, + 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, + 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, + 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, + 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, + 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, + 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, + 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, + 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, + 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, + 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, + 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, + 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, + 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, + 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, + 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, + 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, + 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, + 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, + 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, + 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, + 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, + 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, + 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, + 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, + 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, + 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, + 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, + 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, + 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, + 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, + 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, + 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, + 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, + 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, + 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, + 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, + 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, + 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, + 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, + 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, + 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, + 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, + 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, + 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, + 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, + 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, + 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, + 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, + 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, + 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, + 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, + 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, + 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, + 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, + 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, + 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, + 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, + 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, + 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, + 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, + 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, + 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, + 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, + 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, + 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, + 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, + 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, + 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, + 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, + 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, + 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, + 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, + 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, + 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, + 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, + 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, + 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, + 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, + 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, + 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, + 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, + 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, + 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, + 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, + 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, + 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, + 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, + 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, + 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, + 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, + 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, + 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, + 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, + 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, + 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, + 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, + 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, + 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, + 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, + 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, + 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, + 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, + 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, + 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, + 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, + 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, + 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, + 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, + 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, + 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, + 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, + 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, + 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, + 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, + 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, + 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, + 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, + 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, + 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, + 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, + 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, + 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, + 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, + 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, + 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, + 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, + 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, + 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, + 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, + 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, + 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, + 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, + 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, + 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, + 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, + 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, + 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, + 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, + 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, + 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, + 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, + 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, + 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, + 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, + 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, + 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, + 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, + 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, + 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, + 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, + 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, + 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, + 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, + 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, + 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, + 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, + 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, + 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, + 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, + 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, + 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, + 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, + 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, + 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, + 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, + 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, + 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, + 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, + 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, + 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, + 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, + 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, + 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, + 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, + 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, + 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, + 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, + 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, + 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, + 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, + 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, + 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, + 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, + 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, + 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, + 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, + 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, + 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, + 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, + 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, + 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, + 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, + 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, + 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, + 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, + 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, + 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, + 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, + 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, + 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, + 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, + 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, + 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, + 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, + 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, + 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, + 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, + 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, + 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, + 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, + 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, + 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, + 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, + 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, + 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, + 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, + 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, + 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, + 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, + 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, + 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, + 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, + 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, + 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, + 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, + 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, + 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, + 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, + 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, + 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, + 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, + 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, + 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, + 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, + 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, + 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, + 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, + 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, + 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, + 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, + 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, + 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, + 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, + 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, + 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, + 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, + 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, + 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, + 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, + 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, + 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, + 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, + 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, + 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, + 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, + 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, + 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, + 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, + 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, + 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, + 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, + 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, + 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, + 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, + 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, + 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, + 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, + 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, + 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, + 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, + 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, + 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, + 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, + 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, + 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, + 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, + 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, + 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, + 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, + 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, + 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, + 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, + 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, + 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, + 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, + 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, + 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, + 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, + 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, + 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, + 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, + 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, + 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, + 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, + 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, + 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, + 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, + 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, + 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, + 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, + 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, + 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, + 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, + 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, + 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, + 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, + 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, + 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, + 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, + 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, + 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, + 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, + 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, + 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, + 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, + 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, + 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, + 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, + 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, + 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, + 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, + 240,15,128,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,12,0,0,4,28,28,14,5,248, + 240,240,240,240,0,0,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,17,31,93,23, + 3,250,0,12,0,0,12,0,0,24,0,0,24,0,0,24, + 0,15,248,0,63,254,0,62,63,0,120,119,0,120,103,0, + 240,103,128,240,96,0,240,192,0,240,192,0,240,192,0,241, + 128,0,241,128,0,241,128,0,243,7,128,243,7,128,123,7, + 0,126,15,0,62,30,0,31,254,0,15,248,0,12,0,0, + 12,0,0,28,0,0,24,0,0,24,0,0,8,0,0,20, + 31,93,23,2,0,0,16,0,1,255,0,7,255,192,15,135, + 224,15,1,224,30,0,240,30,0,240,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,255,248,0,255,248,0,255, + 248,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,255,255,224,255,255,224,255, + 255,224,21,22,66,25,2,7,192,0,24,224,0,56,96,48, + 48,51,254,96,63,255,224,31,7,192,28,1,192,24,0,192, + 56,0,224,48,0,96,48,0,96,48,0,96,48,0,96,56, + 0,224,24,0,192,28,1,192,14,3,128,31,255,192,59,254, + 224,112,248,112,224,0,56,192,0,24,21,30,90,23,1,0, + 240,0,120,248,0,120,120,0,240,124,0,240,60,1,240,62, + 1,224,30,1,224,30,3,192,15,3,192,15,7,128,255,135, + 248,255,143,248,255,207,248,3,207,0,1,254,0,1,252,0, + 255,255,248,255,255,248,255,255,248,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,2,38,38,14,6,248, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 0,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,15,37,74,19,2,250,15,248,31,248, + 62,24,60,0,120,0,120,0,120,0,120,0,60,0,63,0, + 31,128,15,224,15,240,63,248,124,124,120,62,240,30,240,30, + 240,30,240,60,248,120,127,240,63,224,31,224,7,240,1,248, + 0,124,0,60,0,30,0,30,0,30,0,28,0,60,96,248, + 127,240,127,224,3,0,12,4,8,12,0,26,240,240,240,240, + 240,240,240,240,30,30,120,34,2,1,0,63,240,0,0,255, + 252,0,3,240,63,0,7,128,7,128,15,0,3,192,28,3, + 0,224,56,63,240,112,56,127,248,112,112,248,124,56,97,240, + 30,24,97,224,30,24,225,224,30,28,195,192,0,12,195,192, + 0,12,195,192,0,12,195,192,0,12,195,192,0,12,195,192, + 0,12,193,192,30,12,97,224,30,24,97,224,30,24,96,240, + 60,56,48,255,252,48,56,63,248,112,28,15,224,224,14,0, + 1,192,7,0,3,128,3,192,15,0,1,255,252,0,0,63, + 240,0,14,19,38,16,1,11,15,192,63,240,56,120,112,56, + 0,56,0,56,15,248,63,248,120,56,224,56,224,56,224,120, + 240,248,127,184,31,56,0,0,0,0,255,252,255,252,16,16, + 32,22,3,2,7,7,15,14,14,14,28,28,60,60,56,120, + 120,112,240,240,240,240,120,112,56,120,60,60,28,28,14,14, + 15,14,7,7,21,10,30,25,2,8,255,255,248,255,255,248, + 255,255,248,0,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,255,30,30,120,34,2,1,0, + 63,240,0,0,255,252,0,3,240,63,0,7,128,7,128,14, + 0,1,192,28,127,240,224,56,127,248,112,48,127,252,48,112, + 112,30,56,96,112,14,24,96,112,14,24,192,112,14,12,192, + 112,28,12,192,127,248,12,192,127,240,12,192,127,248,12,192, + 112,28,12,192,112,28,12,192,112,28,12,96,112,12,24,96, + 112,12,24,112,112,14,56,48,112,14,48,56,112,14,112,28, + 0,0,224,14,0,1,192,7,128,7,128,3,240,63,0,1, + 255,252,0,0,63,240,0,12,3,6,12,0,26,255,240,255, + 240,255,240,9,9,18,13,2,21,62,0,127,0,227,128,193, + 128,193,128,193,128,227,128,127,0,62,0,24,24,72,40,8, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,255,255,255,255,255,255,255,255,255,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,255,255,255,255,12,16,32,14,1,15,31, + 192,127,224,120,240,112,112,224,112,0,112,0,224,1,224,3, + 192,7,128,14,0,60,0,120,0,255,240,255,240,255,240,12, + 16,32,14,1,15,63,192,127,224,112,240,96,112,0,112,0, + 240,7,224,7,128,7,224,0,240,0,112,224,112,224,112,127, + 224,127,192,31,128,8,7,7,9,2,25,15,30,28,56,56, + 112,224,255,18,36,108,22,2,250,3,255,192,15,255,192,63, + 195,0,127,195,0,127,195,0,255,195,0,255,195,0,255,195, + 0,255,195,0,255,195,0,255,195,0,127,195,0,127,195,0, + 63,195,0,15,195,0,0,195,0,0,195,0,0,195,0,0, + 195,0,0,195,0,0,195,0,0,195,0,0,195,0,0,195, + 0,0,195,0,0,195,0,0,195,0,0,195,0,0,195,0, + 0,195,0,0,195,0,0,195,0,0,195,0,0,195,0,0, + 195,0,0,195,0,4,5,5,10,3,11,240,240,240,240,240, + 10,10,20,10,2,246,48,0,48,0,62,0,63,128,7,128, + 1,192,1,192,3,192,255,128,254,0,7,16,16,12,2,14, + 30,62,254,238,142,14,14,14,14,14,14,14,14,14,14,14, + 14,19,38,16,1,10,15,192,63,224,120,112,112,56,224,56, + 224,28,224,28,224,28,224,28,224,28,224,56,112,56,56,112, + 31,224,7,128,0,0,0,0,255,252,255,252,16,16,32,22, + 3,2,224,224,112,112,120,120,56,56,28,60,30,30,15,14, + 15,15,15,15,15,14,30,30,28,60,56,56,120,120,112,112, + 224,224,28,30,120,32,2,0,30,0,12,0,62,0,28,0, + 254,0,56,0,238,0,56,0,142,0,112,0,14,0,112,0, + 14,0,224,0,14,0,192,0,14,1,192,0,14,3,128,0, + 14,3,128,0,14,7,0,0,14,7,0,0,14,14,0,0, + 14,12,7,128,14,28,7,128,0,56,15,128,0,56,31,128, + 0,112,27,128,0,112,59,128,0,224,115,128,0,224,99,128, + 1,192,195,128,1,129,195,128,3,129,255,240,7,1,255,240, + 7,0,3,128,14,0,3,128,14,0,3,128,28,0,3,128, + 28,30,120,32,2,0,30,0,28,0,62,0,28,0,254,0, + 56,0,238,0,56,0,142,0,112,0,14,0,112,0,14,0, + 224,0,14,0,224,0,14,1,192,0,14,3,128,0,14,3, + 128,0,14,7,0,0,14,7,0,0,14,14,0,0,14,14, + 31,128,14,28,63,224,0,56,121,224,0,56,112,112,0,112, + 240,112,0,112,0,112,0,224,0,240,0,224,0,224,1,192, + 3,192,1,128,7,128,3,128,15,0,7,0,60,0,7,0, + 120,0,14,0,255,240,14,0,255,240,28,0,255,240,30,31, + 124,32,1,0,0,0,1,192,63,192,3,128,127,224,3,128, + 112,240,7,0,96,112,6,0,0,112,14,0,0,240,28,0, + 7,224,28,0,7,128,56,0,7,224,56,0,0,240,112,0, + 0,112,112,0,224,112,224,0,224,113,192,0,127,225,192,0, + 127,195,129,224,31,131,129,224,0,7,3,224,0,7,7,224, + 0,14,6,224,0,12,12,224,0,28,28,224,0,56,24,224, + 0,56,48,224,0,112,112,224,0,112,127,252,0,224,127,252, + 0,224,0,224,1,192,0,224,1,128,0,224,3,128,0,224, + 17,28,84,21,2,248,0,240,0,0,240,0,0,240,0,0, + 240,0,0,0,0,0,0,0,0,0,0,0,240,0,0,240, + 0,0,240,0,0,240,0,1,240,0,1,224,0,7,192,0, + 15,128,0,31,0,0,60,0,0,120,0,0,240,0,0,240, + 0,0,240,0,0,240,3,0,240,3,128,124,15,128,127,255, + 0,63,254,0,31,252,0,3,240,0,28,41,164,30,1,0, + 0,240,0,0,0,240,0,0,0,120,0,0,0,56,0,0, + 0,28,0,0,0,14,0,0,0,14,0,0,0,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0, + 0,31,128,0,0,31,128,0,0,63,192,0,0,63,192,0, + 0,127,192,0,0,121,224,0,0,121,224,0,0,241,240,0, + 0,240,240,0,1,240,240,0,1,224,248,0,1,224,120,0, + 3,224,124,0,3,192,60,0,7,192,60,0,7,128,62,0, + 7,128,30,0,15,128,31,0,15,255,255,0,31,255,255,128, + 31,255,255,128,30,0,7,128,60,0,3,192,60,0,3,192, + 124,0,3,224,120,0,1,224,120,0,1,224,240,0,0,240, + 240,0,0,240,28,41,164,30,1,0,0,0,240,0,0,0, + 240,0,0,1,224,0,0,1,192,0,0,3,128,0,0,7, + 0,0,0,7,0,0,0,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,15,0,0,0,31,128,0,0,31, + 128,0,0,63,192,0,0,63,192,0,0,127,192,0,0,121, + 224,0,0,121,224,0,0,241,240,0,0,240,240,0,1,240, + 240,0,1,224,248,0,1,224,120,0,3,224,124,0,3,192, + 60,0,7,192,60,0,7,128,62,0,7,128,30,0,15,128, + 31,0,15,255,255,0,31,255,255,128,31,255,255,128,30,0, + 7,128,60,0,3,192,60,0,3,192,124,0,3,224,120,0, + 1,224,120,0,1,224,240,0,0,240,240,0,0,240,28,41, + 164,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, + 0,63,192,0,0,57,192,0,0,112,224,0,0,96,96,0, + 0,224,112,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,15,0,0,0,31,128,0,0,31,128,0,0,63,192,0, + 0,63,192,0,0,127,192,0,0,121,224,0,0,121,224,0, + 0,241,240,0,0,240,240,0,1,240,240,0,1,224,248,0, + 1,224,120,0,3,224,124,0,3,192,60,0,7,192,60,0, + 7,128,62,0,7,128,30,0,15,128,31,0,15,255,255,0, + 31,255,255,128,31,255,255,128,30,0,7,128,60,0,3,192, + 60,0,3,192,124,0,3,224,120,0,1,224,120,0,1,224, + 240,0,0,240,240,0,0,240,28,39,156,30,1,0,0,16, + 48,0,0,126,112,0,0,127,224,0,0,231,224,0,0,192, + 128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,15,0,0,0,31,128,0,0,31,128,0,0,63, + 192,0,0,63,192,0,0,127,192,0,0,121,224,0,0,121, + 224,0,0,241,240,0,0,240,240,0,1,240,240,0,1,224, + 248,0,1,224,120,0,3,224,124,0,3,192,60,0,7,192, + 60,0,7,128,62,0,7,128,30,0,15,128,31,0,15,255, + 255,0,31,255,255,128,31,255,255,128,30,0,7,128,60,0, + 3,192,60,0,3,192,124,0,3,224,120,0,1,224,120,0, + 1,224,240,0,0,240,240,0,0,240,29,39,156,30,1,0, + 0,120,120,0,0,120,120,0,0,120,120,0,0,120,120,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,15,128,0,0,15,128,0,0,31,128,0, + 0,31,192,0,0,63,192,0,0,61,224,0,0,125,224,0, + 0,121,240,0,0,120,240,0,0,240,240,0,0,240,248,0, + 1,240,120,0,1,224,124,0,1,224,60,0,3,224,60,0, + 3,192,62,0,7,192,30,0,7,128,31,0,7,128,15,0, + 15,255,255,128,15,255,255,128,31,255,255,128,30,0,3,192, + 30,0,3,192,60,0,3,224,60,0,1,224,120,0,1,224, + 120,0,0,240,120,0,0,240,240,0,0,248,28,43,172,30, + 1,0,0,14,0,0,0,63,0,0,0,49,128,0,0,96, + 192,0,0,96,192,0,0,96,192,0,0,96,192,0,0,49, + 128,0,0,63,128,0,0,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,31,0,0,0,31,0,0,0,31, + 128,0,0,63,128,0,0,63,192,0,0,123,192,0,0,123, + 192,0,0,121,224,0,0,241,224,0,0,241,240,0,1,224, + 240,0,1,224,248,0,1,224,120,0,3,192,120,0,3,192, + 124,0,7,192,60,0,7,128,62,0,15,128,30,0,15,0, + 30,0,15,255,255,0,31,255,255,0,31,255,255,128,60,0, + 7,128,60,0,7,192,60,0,3,192,120,0,3,192,120,0, + 1,224,240,0,1,224,240,0,1,240,240,0,0,240,37,30, + 150,39,0,0,0,1,255,255,240,0,1,255,255,240,0,3, + 255,255,240,0,3,255,255,240,0,7,252,0,0,0,7,188, + 0,0,0,15,188,0,0,0,15,60,0,0,0,31,60,0, + 0,0,30,60,0,0,0,62,60,0,0,0,60,60,0,0, + 0,124,60,0,0,0,120,63,255,240,0,248,63,255,240,0, + 240,63,255,240,1,240,63,255,240,1,224,60,0,0,3,224, + 60,0,0,3,255,252,0,0,7,255,252,0,0,7,255,252, + 0,0,15,0,60,0,0,31,0,60,0,0,30,0,60,0, + 0,62,0,60,0,0,60,0,63,255,248,124,0,63,255,248, + 120,0,63,255,248,248,0,63,255,248,22,40,120,26,2,247, + 1,255,128,7,255,224,15,255,240,31,0,248,62,0,120,60, + 0,60,120,0,60,120,0,60,120,0,0,112,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,112, + 0,0,120,0,60,120,0,60,60,0,60,60,0,120,31,0, + 248,15,255,240,7,255,224,3,255,128,0,48,0,0,48,0, + 0,62,0,0,63,128,0,63,192,0,1,192,0,1,192,0, + 1,192,0,255,128,0,254,0,19,41,123,24,3,0,30,0, + 0,15,0,0,7,0,0,3,128,0,3,128,0,1,192,0, + 0,224,0,0,96,0,0,0,0,0,0,0,0,0,0,255, + 255,192,255,255,192,255,255,192,255,255,192,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,255,255,192,255,255,192,255,255,192,255, + 255,192,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,255,255,224, + 255,255,224,255,255,224,255,255,224,19,41,123,24,3,0,0, + 30,0,0,60,0,0,56,0,0,120,0,0,240,0,0,224, + 0,1,192,0,1,128,0,0,0,0,0,0,0,0,0,0, + 255,255,192,255,255,192,255,255,192,255,255,192,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,255,255,192,255,255,192,255,255,192, + 255,255,192,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,255,255, + 224,255,255,224,255,255,224,255,255,224,19,41,123,24,3,0, + 1,224,0,3,240,0,7,240,0,7,120,0,15,56,0,14, + 28,0,28,28,0,24,14,0,0,0,0,0,0,0,0,0, + 0,255,255,192,255,255,192,255,255,192,255,255,192,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,255,255,192,255,255,192,255,255, + 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,255, + 255,224,255,255,224,255,255,224,255,255,224,19,39,117,24,3, + 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,192,255, + 255,192,255,255,192,255,255,192,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,255,255,192,255,255,192,255,255,192,255,255,192,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,255,255,224,255,255,224, + 255,255,224,255,255,224,8,41,41,10,255,0,240,120,56,28, + 30,14,7,3,0,0,0,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,7,41,41,10,3,0,30,30,60,56,112, + 112,224,192,0,0,0,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,12,41,82,10,255,0,15,0,31,0,31,128, + 63,128,57,192,112,224,96,224,224,112,0,0,0,0,0,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,12,39,78,11, + 0,0,240,240,240,240,240,240,240,240,0,0,0,0,0,0, + 0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 26,30,120,28,0,0,31,255,0,0,31,255,224,0,31,255, + 248,0,31,255,252,0,30,0,254,0,30,0,63,0,30,0, + 31,0,30,0,15,128,30,0,7,128,30,0,7,128,30,0, + 3,192,30,0,3,192,30,0,3,192,30,0,3,192,255,252, + 3,192,255,252,3,192,255,252,3,192,30,0,3,192,30,0, + 3,192,30,0,3,192,30,0,7,128,30,0,7,128,30,0, + 15,128,30,0,31,0,30,0,63,0,30,0,254,0,31,255, + 252,0,31,255,248,0,31,255,224,0,31,255,0,0,22,39, + 117,28,3,0,0,131,0,3,243,0,7,255,0,7,62,0, + 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,252, + 0,60,252,0,60,254,0,60,254,0,60,255,0,60,255,0, + 60,255,128,60,247,128,60,247,192,60,243,192,60,243,224,60, + 241,224,60,241,240,60,240,240,60,240,248,60,240,120,60,240, + 124,60,240,60,60,240,62,60,240,30,60,240,31,60,240,15, + 60,240,15,188,240,7,188,240,3,252,240,3,252,240,1,252, + 240,1,252,240,0,252,240,0,252,26,41,164,30,2,0,1, + 224,0,0,0,240,0,0,0,120,0,0,0,56,0,0,0, + 28,0,0,0,28,0,0,0,14,0,0,0,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,255,224,0,3, + 255,240,0,15,255,252,0,31,255,254,0,31,0,62,0,62, + 0,31,0,60,0,15,0,120,0,7,128,120,0,7,128,112, + 0,3,128,240,0,3,192,240,0,3,192,240,0,3,192,240, + 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, + 0,3,192,240,0,3,192,112,0,3,128,120,0,7,128,120, + 0,7,128,120,0,15,128,60,0,15,0,62,0,31,0,31, + 128,126,0,15,255,252,0,7,255,248,0,3,255,240,0,0, + 255,192,0,26,41,164,30,2,0,0,1,224,0,0,3,192, + 0,0,7,128,0,0,7,0,0,0,15,0,0,0,14,0, + 0,0,28,0,0,0,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,255,224,0,3,255,240,0,15,255,252, + 0,31,255,254,0,31,0,62,0,62,0,31,0,60,0,15, + 0,120,0,7,128,120,0,7,128,112,0,3,128,240,0,3, + 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, + 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, + 192,112,0,3,128,120,0,7,128,120,0,7,128,120,0,15, + 128,60,0,15,0,62,0,31,0,31,128,126,0,15,255,252, + 0,7,255,248,0,3,255,240,0,0,255,192,0,26,41,164, + 30,2,0,0,30,0,0,0,63,0,0,0,63,0,0,0, + 127,128,0,0,115,128,0,0,225,192,0,0,192,224,0,1, + 192,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 255,224,0,3,255,240,0,15,255,252,0,31,255,254,0,31, + 0,62,0,62,0,31,0,60,0,15,0,120,0,7,128,120, + 0,7,128,112,0,3,128,240,0,3,192,240,0,3,192,240, + 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, + 0,3,192,240,0,3,192,240,0,3,192,112,0,3,128,120, + 0,7,128,120,0,7,128,120,0,15,128,60,0,15,0,62, + 0,31,0,31,128,126,0,15,255,252,0,7,255,248,0,3, + 255,240,0,0,255,192,0,26,39,156,30,2,0,0,32,96, + 0,0,252,224,0,0,255,224,0,1,207,192,0,1,129,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,255,224,0,3,255,240,0,15,255,252,0,31,255,254, + 0,31,0,62,0,62,0,31,0,60,0,15,0,120,0,7, + 128,120,0,7,128,112,0,3,128,240,0,3,192,240,0,3, + 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, + 192,240,0,3,192,240,0,3,192,240,0,3,192,112,0,3, + 128,120,0,7,128,120,0,7,128,120,0,15,128,60,0,15, + 0,62,0,31,0,31,128,126,0,15,255,252,0,7,255,248, + 0,3,255,240,0,0,255,192,0,26,39,156,30,2,0,0, + 240,240,0,0,240,240,0,0,240,240,0,0,240,240,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,255,224,0,3,255,240,0,15,255,252,0,31, + 255,254,0,31,0,62,0,62,0,31,0,60,0,15,0,120, + 0,7,128,120,0,7,128,112,0,3,128,240,0,3,192,240, + 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, + 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,112, + 0,3,128,120,0,7,128,120,0,7,128,120,0,15,128,60, + 0,15,0,62,0,31,0,31,128,126,0,15,255,252,0,7, + 255,248,0,3,255,240,0,0,255,192,0,22,22,66,40,9, + 1,96,0,24,240,0,60,120,0,120,56,0,112,28,0,224, + 14,1,192,7,3,128,3,135,0,1,206,0,0,252,0,0, + 120,0,0,120,0,0,252,0,1,206,0,3,135,0,7,3, + 128,14,1,192,28,0,224,56,0,112,112,0,56,96,0,24, + 64,0,8,26,38,152,30,2,252,0,0,1,0,0,0,3, + 128,0,0,3,192,0,0,7,128,0,255,199,128,3,255,255, + 0,15,255,255,0,31,255,254,0,31,0,62,0,62,0,127, + 0,124,0,127,0,120,0,255,128,120,1,247,128,240,1,227, + 128,240,3,195,192,240,7,195,192,240,7,131,192,240,15,3, + 192,240,31,3,192,240,30,3,192,240,60,3,192,240,124,3, + 192,240,248,3,192,112,240,3,192,121,240,7,128,123,224,7, + 128,127,192,15,128,63,192,15,0,63,128,31,0,31,128,126, + 0,31,255,252,0,31,255,248,0,63,255,240,0,124,255,192, + 0,120,0,0,0,240,0,0,0,112,0,0,0,32,0,0, + 0,23,41,123,29,3,0,3,192,0,1,192,0,1,224,0, + 0,240,0,0,112,0,0,56,0,0,24,0,0,28,0,0, + 0,0,0,0,0,0,0,0,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,120,0,60,120,0,60, + 124,0,124,62,0,248,63,255,248,31,255,240,15,255,224,3, + 255,128,23,41,123,29,3,0,0,7,128,0,7,0,0,15, + 0,0,30,0,0,28,0,0,56,0,0,48,0,0,112,0, + 0,0,0,0,0,0,0,0,0,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,120,0,60,120,0, + 60,124,0,124,62,0,248,63,255,248,31,255,240,15,255,224, + 3,255,128,23,41,123,29,3,0,0,124,0,0,124,0,0, + 254,0,0,238,0,1,199,0,1,199,0,3,131,128,7,1, + 128,0,0,0,0,0,0,0,0,0,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,120,0,60,120, + 0,60,124,0,124,62,0,248,63,255,248,31,255,240,15,255, + 224,3,255,128,23,38,114,29,3,0,3,195,192,3,195,192, + 3,195,192,3,195,192,0,0,0,0,0,0,0,0,0,0, + 0,0,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,120,0,60,120,0,60,124,0,124,62,0,248, + 63,255,248,31,255,240,15,255,224,3,255,128,24,41,123,26, + 1,0,0,3,192,0,7,128,0,7,0,0,15,0,0,14, + 0,0,28,0,0,24,0,0,48,0,0,0,0,0,0,0, + 0,0,0,248,0,15,248,0,31,124,0,30,124,0,60,62, + 0,124,30,0,120,31,0,248,15,0,240,15,129,224,7,129, + 224,3,195,192,3,227,192,1,231,128,1,247,0,0,255,0, + 0,254,0,0,126,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,19,30,90, + 24,3,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,255,248,0,255,255,0,255,255,128,255,255, + 192,240,15,192,240,3,224,240,1,224,240,1,224,240,1,224, + 240,1,224,240,1,224,240,3,224,240,15,192,255,255,192,255, + 255,128,255,255,0,255,248,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,20,30,90, + 22,2,0,3,248,0,15,254,0,63,255,0,124,15,0,248, + 7,128,240,7,128,240,7,128,240,7,128,240,15,0,240,31, + 0,240,62,0,240,124,0,240,248,0,240,240,0,240,240,0, + 240,248,0,240,126,0,240,63,0,240,31,192,240,15,224,240, + 3,224,240,1,240,240,0,240,240,0,240,243,192,240,243,192, + 240,241,224,240,241,241,224,240,255,224,240,63,128,18,31,93, + 23,2,0,7,128,0,7,128,0,3,192,0,1,192,0,0, + 224,0,0,112,0,0,48,0,0,0,0,0,0,0,0,0, + 0,0,0,0,15,254,0,63,255,0,62,15,128,120,7,128, + 120,3,192,0,3,192,0,3,192,3,255,192,15,255,192,63, + 255,192,126,3,192,120,3,192,240,3,192,240,3,192,240,7, + 192,240,7,192,248,15,192,124,63,192,63,251,192,31,227,192, + 18,32,96,23,2,0,0,60,0,0,60,0,0,120,0,0, + 240,0,0,224,0,1,192,0,1,128,0,3,128,0,0,0, + 0,0,0,0,0,0,0,0,0,0,15,254,0,63,255,0, + 62,15,128,120,7,128,120,3,192,0,3,192,0,3,192,3, + 255,192,15,255,192,63,255,192,126,3,192,120,3,192,240,3, + 192,240,3,192,240,7,192,240,7,192,248,15,192,124,63,192, + 63,251,192,31,227,192,18,32,96,23,2,0,1,224,0,3, + 240,0,3,240,0,7,184,0,7,60,0,14,28,0,12,14, + 0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, + 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, + 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, + 248,15,192,124,63,192,63,251,192,31,227,192,18,30,90,23, + 2,0,7,134,0,15,206,0,15,254,0,28,124,0,24,16, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, + 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, + 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, + 248,15,192,124,63,192,63,251,192,31,243,192,18,30,90,23, + 2,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, + 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, + 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, + 248,15,192,124,63,192,63,251,192,31,227,192,18,34,102,23, + 2,0,1,224,0,3,240,0,6,24,0,12,12,0,12,12, + 0,12,12,0,12,12,0,6,24,0,3,240,0,1,224,0, + 0,0,0,0,0,0,0,0,0,0,0,0,15,254,0,63, + 255,0,62,15,128,120,7,128,120,3,192,0,3,192,0,3, + 192,3,255,192,15,255,192,63,255,192,126,3,192,120,3,192, + 240,3,192,240,3,192,240,7,192,240,7,192,248,15,192,124, + 63,192,63,251,192,31,227,192,32,20,80,36,2,1,15,248, + 31,240,63,254,63,248,124,30,120,60,120,7,112,30,120,7, + 224,14,0,3,224,15,0,3,192,15,0,127,255,255,31,255, + 255,255,63,255,255,255,126,3,192,0,120,3,192,0,240,3, + 192,0,240,3,192,15,240,7,224,14,240,7,224,30,248,14, + 112,30,126,62,124,124,63,252,63,248,31,240,15,240,17,30, + 90,21,2,247,15,252,0,31,254,0,62,31,0,120,15,128, + 120,7,128,240,7,128,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,7,128,112,7, + 128,120,7,128,120,15,0,62,31,0,31,254,0,15,252,0, + 1,128,0,1,128,0,1,240,0,1,252,0,1,254,0,0, + 14,0,0,14,0,0,14,0,7,252,0,7,240,0,18,32, + 96,22,2,0,30,0,0,15,0,0,7,0,0,3,128,0, + 3,192,0,1,192,0,0,224,0,0,96,0,0,0,0,0, + 0,0,0,0,0,0,0,0,7,252,0,31,254,0,62,31, + 0,60,7,128,120,3,128,112,3,192,240,3,192,240,3,192, + 255,255,192,255,255,192,255,255,192,240,0,0,240,0,0,240, + 0,0,112,3,192,120,7,128,56,7,128,62,31,0,31,254, + 0,7,252,0,18,32,96,22,2,0,0,30,0,0,60,0, + 0,120,0,0,112,0,0,224,0,0,224,0,1,192,0,1, + 128,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, + 0,31,254,0,62,31,0,60,7,128,120,3,128,112,3,192, + 240,3,192,240,3,192,255,255,192,255,255,192,255,255,192,240, + 0,0,240,0,0,240,0,0,112,3,192,120,7,128,56,7, + 128,62,31,0,31,254,0,7,252,0,18,32,96,22,2,0, + 1,224,0,3,240,0,3,240,0,7,248,0,7,56,0,14, + 28,0,12,12,0,28,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,252,0,31,254,0,62,31,0,60,7,128, + 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, + 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, + 192,120,7,128,56,7,128,62,31,0,31,254,0,7,252,0, + 18,30,90,22,2,0,30,30,0,30,30,0,30,30,0,30, + 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,252,0,31,254,0,62,15,0,60,7,128, + 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, + 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, + 192,120,3,128,60,7,128,62,15,0,31,254,0,7,252,0, + 8,32,32,10,255,0,240,120,56,28,30,14,7,3,0,0, + 0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,9,32,64,10,2,0,15,128,15,0, + 30,0,28,0,56,0,56,0,112,0,224,0,0,0,0,0, + 0,0,0,0,120,0,120,0,120,0,120,0,120,0,120,0, + 120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0, + 120,0,120,0,120,0,120,0,120,0,120,0,12,32,64,10, + 255,0,15,0,31,128,31,128,59,192,57,192,112,224,224,96, + 192,112,0,0,0,0,0,0,0,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,12,30,60,10,255,0,240,240,240,240,240,240,240,240, + 0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,20,30,90,24,2,0,16,1,0,60,7,0, + 30,31,0,7,252,0,3,240,0,7,240,0,62,120,0,120, + 60,0,96,30,0,0,15,0,7,255,128,31,255,192,63,15, + 192,60,3,192,120,1,224,120,1,224,240,1,224,240,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, + 1,224,120,1,224,120,3,224,60,3,192,63,15,128,31,255, + 0,7,254,0,18,30,90,24,3,0,7,14,0,15,204,0, + 31,252,0,28,248,0,24,16,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,243,254,0,247,255,0,254,31, + 128,248,7,128,248,7,128,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,20,32,96,24,2,0,15,0,0,7,128,0, + 3,128,0,1,192,0,1,192,0,0,224,0,0,112,0,0, + 48,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, + 0,15,255,0,63,15,128,60,3,192,120,3,224,120,1,224, + 240,1,224,240,0,240,240,0,240,240,0,240,240,0,240,240, + 0,240,240,0,240,240,1,224,120,1,224,120,3,224,60,3, + 192,63,15,128,15,255,0,7,254,0,20,32,96,24,2,0, + 0,30,0,0,30,0,0,60,0,0,56,0,0,112,0,0, + 96,0,0,224,0,1,192,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,252,0,15,255,0,63,15,128,60,3,192, + 120,3,224,120,1,224,240,1,224,240,0,240,240,0,240,240, + 0,240,240,0,240,240,0,240,240,0,240,240,1,224,120,1, + 224,120,3,224,60,3,192,63,15,128,15,255,0,7,254,0, + 20,32,96,24,2,0,0,240,0,1,248,0,1,248,0,3, + 188,0,3,156,0,7,14,0,6,6,0,12,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, + 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, + 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, + 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, + 15,255,0,7,254,0,20,30,90,24,2,0,3,135,0,7, + 230,0,15,254,0,14,124,0,12,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, + 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, + 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, + 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, + 15,255,0,7,254,0,20,30,90,24,2,0,15,15,0,15, + 15,0,15,15,0,15,15,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, + 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, + 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, + 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, + 15,255,0,7,254,0,24,19,57,40,8,2,0,16,0,0, + 56,0,0,124,0,0,124,0,0,124,0,0,0,0,0,0, + 0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0, + 0,0,0,0,0,0,0,56,0,0,124,0,0,124,0,0, + 124,0,0,56,0,21,26,78,24,1,254,0,0,56,0,0, + 120,0,0,112,3,255,224,7,255,192,31,135,192,30,3,224, + 60,7,240,60,15,240,120,14,240,120,28,120,120,56,120,120, + 120,120,120,112,120,120,224,120,121,192,120,123,192,240,63,128, + 240,63,1,240,30,1,224,15,135,192,31,255,128,59,255,0, + 112,0,0,240,0,0,96,0,0,18,32,96,24,3,0,30, + 0,0,15,0,0,7,0,0,3,128,0,3,192,0,1,192, + 0,0,224,0,0,96,0,0,0,0,0,0,0,0,0,0, + 0,0,0,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,7,192,120,7,192,124,31,192,63,251,192,31,243,192,18, + 32,96,24,3,0,0,62,0,0,60,0,0,120,0,0,112, + 0,0,224,0,0,224,0,1,192,0,3,128,0,0,0,0, + 0,0,0,0,0,0,0,0,0,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,7,192,120,7,192,124,31,192,63, + 251,192,31,243,192,18,32,96,24,3,0,1,224,0,3,240, + 0,3,240,0,7,120,0,7,56,0,14,28,0,28,12,0, + 24,14,0,0,0,0,0,0,0,0,0,0,0,0,0,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, + 7,192,124,31,192,63,251,192,31,243,192,18,30,90,24,3, + 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, + 15,192,126,31,192,63,251,192,31,243,192,20,40,120,21,1, + 248,0,15,0,0,30,0,0,28,0,0,56,0,0,112,0, + 0,112,0,0,224,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,240,0,240,240,1,224,120,1,224,120,1, + 192,60,3,192,60,3,192,62,7,128,30,7,128,30,7,0, + 15,15,0,15,15,0,15,158,0,7,158,0,7,156,0,3, + 252,0,3,252,0,1,248,0,1,248,0,1,248,0,0,240, + 0,0,240,0,0,224,0,1,224,0,33,224,0,243,192,0, + 127,192,0,127,128,0,31,0,0,19,38,114,24,3,248,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,243,254,0, + 247,255,0,254,15,128,252,7,192,248,3,192,248,3,192,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,1,224,248,3,192,248,3,192,252,7,192, + 254,15,128,247,255,0,243,254,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,20,38,114,22,1,248,15,15,0,15,15,0,15,15,0, + 15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,240,0,240,248,0,224,120,1,224,120,1, + 224,60,3,192,60,3,192,62,3,128,30,7,128,30,7,128, + 15,15,0,15,15,0,7,143,0,7,158,0,7,222,0,3, + 252,0,3,252,0,1,252,0,1,248,0,0,248,0,0,240, + 0,0,240,0,0,240,0,1,224,0,1,224,0,1,192,0, + 3,192,0,3,192,0,3,128,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 30 + Calculated Max Values w=24 h=33 x= 8 y=15 dx=40 dy= 0 ascent=31 len=90 + Font Bounding box w=54 h=54 x=-3 y=-11 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =30 descent= 0 + X Font ascent =30 descent= 0 + Max Font ascent =31 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur30n[1175] U8G_SECTION(".progmem.u8g_font_fur30n") = { + 0,54,54,253,245,30,0,0,0,0,42,57,0,31,251,30, + 0,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, + 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, + 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, + 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, + 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, + 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, + 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, + 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, + 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, + 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, + 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, + 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, + 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, + 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, + 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, + 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, + 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, + 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, + 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, + 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, + 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, + 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, + 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, + 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, + 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, + 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, + 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, + 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, + 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, + 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, + 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, + 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, + 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, + 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, + 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, + 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, + 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, + 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, + 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, + 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, + 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, + 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, + 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, + 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, + 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, + 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, + 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, + 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, + 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, + 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, + 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, + 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, + 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, + 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, + 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, + 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, + 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, + 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, + 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, + 0,31,254,0,15,248,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 30, '1' Height: 30 + Calculated Max Values w=37 h=43 x=10 y=25 dx=40 dy= 0 ascent=33 len=185 + Font Bounding box w=54 h=54 x=-3 y=-11 + Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-7 + X Font ascent =31 descent=-8 + Max Font ascent =33 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur30r[7380] U8G_SECTION(".progmem.u8g_font_fur30r") = { + 0,54,54,253,245,30,9,94,20,223,32,127,249,33,245,31, + 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, + 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, + 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, + 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, + 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, + 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, + 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, + 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, + 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, + 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, + 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, + 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, + 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, + 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, + 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, + 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, + 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, + 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, + 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, + 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, + 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, + 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, + 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, + 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, + 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, + 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, + 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, + 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, + 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, + 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, + 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, + 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, + 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, + 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, + 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, + 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, + 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, + 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, + 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, + 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, + 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, + 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, + 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, + 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, + 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, + 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, + 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, + 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, + 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, + 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, + 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, + 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, + 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, + 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, + 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, + 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, + 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, + 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, + 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, + 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, + 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, + 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, + 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, + 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, + 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, + 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, + 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, + 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, + 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, + 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, + 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, + 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, + 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, + 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, + 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, + 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, + 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, + 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, + 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, + 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, + 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, + 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, + 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, + 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, + 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, + 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, + 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, + 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, + 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, + 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, + 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, + 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, + 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, + 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, + 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, + 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, + 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, + 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, + 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, + 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, + 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, + 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, + 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, + 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, + 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, + 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, + 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, + 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, + 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, + 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, + 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, + 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, + 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, + 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, + 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, + 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, + 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, + 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, + 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, + 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, + 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, + 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, + 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, + 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, + 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, + 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, + 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, + 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, + 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, + 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, + 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, + 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, + 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, + 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, + 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, + 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, + 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, + 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, + 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, + 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, + 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, + 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, + 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, + 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, + 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, + 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, + 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, + 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, + 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, + 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, + 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, + 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, + 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, + 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, + 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, + 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, + 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, + 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, + 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, + 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, + 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, + 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, + 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, + 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, + 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, + 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, + 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, + 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, + 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, + 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, + 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, + 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, + 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, + 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, + 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, + 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, + 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, + 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, + 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, + 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, + 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, + 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, + 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, + 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, + 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, + 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, + 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, + 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, + 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, + 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, + 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, + 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, + 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, + 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, + 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, + 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, + 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, + 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, + 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, + 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, + 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, + 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, + 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, + 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, + 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, + 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, + 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, + 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, + 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, + 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, + 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, + 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, + 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, + 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, + 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, + 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, + 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, + 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, + 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, + 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, + 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, + 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, + 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, + 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, + 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, + 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, + 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, + 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, + 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, + 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, + 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, + 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, + 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, + 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, + 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, + 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, + 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, + 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, + 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, + 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, + 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, + 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, + 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, + 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, + 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, + 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, + 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, + 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, + 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, + 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, + 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, + 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, + 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, + 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, + 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, + 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, + 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, + 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, + 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, + 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, + 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, + 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, + 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, + 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, + 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, + 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, + 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, + 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, + 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, + 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, + 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, + 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, + 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, + 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, + 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, + 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, + 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, + 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, + 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, + 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, + 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, + 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, + 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, + 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, + 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, + 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, + 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, + 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, + 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, + 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, + 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, + 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, + 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, + 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, + 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, + 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, + 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, + 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, + 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, + 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, + 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, + 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, + 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, + 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, + 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, + 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, + 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, + 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, + 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, + 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, + 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, + 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, + 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, + 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, + 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, + 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, + 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, + 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, + 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, + 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, + 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, + 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, + 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, + 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, + 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, + 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, + 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, + 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, + 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, + 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, + 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, + 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, + 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, + 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, + 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, + 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, + 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, + 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, + 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, + 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, + 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, + 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, + 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, + 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, + 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, + 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, + 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, + 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, + 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, + 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, + 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, + 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, + 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, + 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, + 240,15,128,255}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--48-480-72-72-P-226-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 35 + Calculated Max Values w=29 h=39 x=10 y=16 dx=49 dy= 0 ascent=36 len=116 + Font Bounding box w=65 h=64 x=-4 y=-13 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =35 descent= 0 + X Font ascent =35 descent= 0 + Max Font ascent =36 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur35n[1417] U8G_SECTION(".progmem.u8g_font_fur35n") = { + 0,65,64,252,243,35,0,0,0,0,42,57,0,36,250,35, + 0,19,19,57,31,6,16,6,12,0,30,15,0,15,30,0, + 15,30,0,7,28,0,3,184,0,1,176,0,193,240,96,255, + 255,224,255,255,224,248,227,224,1,240,0,3,184,0,7,188, + 0,7,28,0,15,30,0,30,15,0,14,14,0,2,8,0, + 29,29,116,49,10,0,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,255,255,255,248,255,255, + 255,248,255,255,255,248,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, + 0,0,0,7,0,0,0,7,0,0,9,12,24,13,2,250, + 31,128,31,0,31,0,62,0,62,0,62,0,60,0,124,0, + 120,0,120,0,112,0,240,0,12,4,8,16,2,10,255,240, + 255,240,255,240,255,240,5,6,6,13,5,0,248,248,248,248, + 248,248,15,39,78,19,2,253,0,14,0,30,0,28,0,28, + 0,60,0,56,0,56,0,120,0,112,0,112,0,112,0,240, + 0,224,0,224,1,224,1,192,1,192,1,192,3,192,3,128, + 3,128,7,128,7,0,7,0,15,0,15,0,14,0,14,0, + 30,0,28,0,28,0,60,0,56,0,56,0,56,0,120,0, + 112,0,112,0,240,0,22,35,105,27,2,1,3,255,0,7, + 255,128,31,255,224,31,255,224,62,3,240,62,1,240,124,0, + 248,120,0,248,120,0,120,248,0,120,248,0,124,248,0,124, + 248,0,124,248,0,124,248,0,124,248,0,124,248,0,124,248, + 0,124,248,0,124,248,0,124,248,0,124,248,0,124,248,0, + 124,248,0,124,120,0,124,120,0,120,120,0,120,124,0,248, + 60,0,248,62,1,240,63,3,240,31,255,224,15,255,192,7, + 255,128,1,255,0,12,35,70,27,7,0,3,240,7,240,15, + 240,31,240,127,240,255,240,253,240,241,240,193,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,21,35,105,27,3,1,3,255,0,15,255,128,31,255,192, + 63,255,224,63,1,240,126,0,240,124,0,248,124,0,248,124, + 0,248,124,0,248,0,0,248,0,0,248,0,0,240,0,1, + 240,0,3,224,0,7,224,0,7,192,0,15,128,0,31,128, + 0,63,0,0,126,0,0,252,0,1,248,0,3,240,0,7, + 224,0,15,192,0,31,192,0,31,128,0,63,0,0,126,0, + 0,252,0,0,255,255,248,255,255,248,255,255,248,255,255,248, + 22,35,105,27,2,1,3,255,0,15,255,192,31,255,224,31, + 255,240,63,1,248,62,0,248,124,0,120,124,0,120,124,0, + 124,0,0,120,0,0,120,0,0,248,0,1,240,0,15,224, + 0,255,192,0,255,0,0,255,128,0,255,192,0,15,224,0, + 1,240,0,0,248,0,0,248,0,0,124,0,0,124,0,0, + 124,248,0,124,248,0,124,252,0,124,252,0,120,124,0,248, + 127,3,248,63,255,240,31,255,224,15,255,192,3,255,0,24, + 35,105,27,1,0,0,3,240,0,7,240,0,7,240,0,15, + 240,0,31,240,0,63,240,0,61,240,0,121,240,0,249,240, + 0,241,240,1,225,240,3,225,240,3,193,240,7,129,240,15, + 129,240,15,1,240,30,1,240,62,1,240,60,1,240,120,1, + 240,248,1,240,240,1,240,255,255,255,255,255,255,255,255,255, + 255,255,255,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,21,35, + 105,27,3,0,127,255,224,127,255,224,127,255,224,127,255,224, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,254,0,125,255,128,127,255, + 192,127,131,224,126,1,240,124,0,240,120,0,248,120,0,120, + 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, + 0,120,248,0,120,248,0,248,248,0,240,248,1,240,126,3, + 224,63,255,224,63,255,192,15,255,128,7,254,0,23,35,105, + 27,2,1,1,255,128,7,255,192,15,255,224,31,193,240,31, + 0,248,62,0,248,62,0,120,124,0,120,124,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,127,0,120,255,192, + 249,255,240,251,255,240,255,131,248,254,0,248,252,0,124,252, + 0,124,248,0,60,248,0,60,248,0,60,248,0,62,248,0, + 60,248,0,60,120,0,60,124,0,124,124,0,120,63,1,248, + 31,255,240,15,255,224,7,255,192,1,255,0,21,35,105,27, + 3,0,255,255,248,255,255,248,255,255,248,255,255,248,0,0, + 120,0,0,248,0,0,240,0,1,240,0,1,240,0,1,224, + 0,3,224,0,3,224,0,7,192,0,7,192,0,7,128,0, + 15,128,0,15,128,0,15,0,0,31,0,0,31,0,0,62, + 0,0,62,0,0,62,0,0,124,0,0,124,0,0,248,0, + 0,248,0,0,248,0,1,240,0,1,240,0,3,240,0,3, + 224,0,3,224,0,7,192,0,7,192,0,22,35,105,27,2, + 1,3,255,128,15,255,224,31,255,240,63,255,248,63,1,248, + 126,0,252,124,0,124,124,0,124,124,0,124,124,0,124,124, + 0,124,60,0,120,62,0,248,31,131,240,15,255,224,3,255, + 128,7,255,128,15,255,224,31,3,240,62,0,248,124,0,120, + 120,0,124,248,0,60,248,0,60,248,0,60,248,0,60,248, + 0,60,248,0,60,248,0,124,124,0,124,126,1,248,63,255, + 248,31,255,240,15,255,224,3,255,128,22,35,105,27,2,1, + 3,255,128,15,255,192,31,255,224,63,255,240,126,1,248,124, + 0,248,120,0,248,248,0,124,248,0,124,248,0,124,248,0, + 124,248,0,124,248,0,124,248,0,124,248,0,252,120,0,252, + 124,1,252,127,3,252,63,255,252,31,255,124,15,254,124,3, + 248,124,0,0,124,0,0,124,0,0,120,0,0,120,0,0, + 248,120,0,248,120,1,240,124,1,240,62,3,224,63,255,224, + 31,255,192,15,255,128,7,254,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--58-580-72-72-P-271-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 42 + Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=175 + Font Bounding box w=78 h=76 x=-4 y=-15 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =42 descent= 0 + X Font ascent =42 descent= 0 + Max Font ascent =43 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur42n[2135] U8G_SECTION(".progmem.u8g_font_fur42n") = { + 0,78,76,252,241,42,0,0,0,0,42,57,0,43,249,42, + 0,23,22,66,37,7,20,3,1,128,7,131,192,15,131,224, + 7,131,192,7,199,192,3,199,128,1,239,0,0,238,0,0, + 254,0,254,124,254,255,255,254,255,255,254,254,124,254,0,124, + 0,0,238,0,1,239,0,3,199,128,3,199,128,7,195,192, + 15,131,224,15,131,224,3,1,128,35,35,175,59,12,0,0, + 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, + 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, + 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, + 0,1,224,0,0,0,1,224,0,0,255,255,255,255,224,255, + 255,255,255,224,255,255,255,255,224,255,255,255,255,224,0,1, + 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, + 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, + 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, + 1,224,0,0,0,1,224,0,0,0,1,224,0,0,10,15, + 30,16,3,249,31,192,31,192,31,128,63,128,63,0,63,0, + 62,0,62,0,126,0,124,0,124,0,120,0,248,0,248,0, + 240,0,14,5,10,18,2,12,255,252,255,252,255,252,255,252, + 255,252,6,7,7,16,6,0,252,252,252,252,252,252,252,17, + 46,138,23,3,253,0,7,128,0,7,128,0,7,128,0,15, + 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,60,0,0,60,0,0,60,0,0,120,0,0, + 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,240, + 0,1,224,0,1,224,0,1,224,0,3,192,0,3,192,0, + 3,192,0,7,128,0,7,128,0,7,128,0,7,128,0,15, + 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, + 0,62,0,0,60,0,0,60,0,0,60,0,0,120,0,0, + 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,26, + 42,168,32,3,1,0,255,224,0,3,255,240,0,7,255,252, + 0,15,255,254,0,31,255,254,0,63,128,127,0,63,0,63, + 0,62,0,31,128,126,0,31,128,124,0,15,128,124,0,15, + 192,124,0,15,192,252,0,15,192,252,0,7,192,248,0,7, + 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, + 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, + 192,248,0,7,192,252,0,7,192,252,0,7,192,252,0,7, + 192,252,0,7,192,252,0,15,192,124,0,15,192,124,0,15, + 192,126,0,15,192,126,0,15,128,62,0,31,128,63,0,31, + 128,63,0,63,0,31,192,127,0,31,255,254,0,15,255,252, + 0,7,255,252,0,3,255,240,0,0,255,192,0,14,42,84, + 32,8,0,0,252,1,252,3,252,7,252,15,252,63,252,127, + 252,255,124,254,124,248,124,224,124,128,124,0,124,0,124,0, + 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, + 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, + 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, + 124,0,124,0,124,0,124,25,42,168,32,4,1,1,255,192, + 0,7,255,240,0,15,255,248,0,31,255,252,0,31,255,254, + 0,63,128,127,0,63,0,63,0,127,0,31,128,126,0,31, + 128,126,0,31,128,126,0,15,128,126,0,15,128,0,0,31, + 128,0,0,31,128,0,0,31,0,0,0,63,0,0,0,63, + 0,0,0,126,0,0,0,252,0,0,1,252,0,0,3,248, + 0,0,7,240,0,0,7,224,0,0,15,224,0,0,31,192, + 0,0,63,128,0,0,127,0,0,0,254,0,0,1,252,0, + 0,3,248,0,0,7,240,0,0,15,224,0,0,31,224,0, + 0,63,192,0,0,63,128,0,0,127,0,0,0,254,0,0, + 0,255,255,255,128,255,255,255,128,255,255,255,128,255,255,255, + 128,255,255,255,128,26,42,168,32,3,1,1,255,192,0,7, + 255,240,0,15,255,252,0,31,255,254,0,63,255,255,0,63, + 128,127,0,127,0,31,128,126,0,31,128,126,0,15,128,126, + 0,15,128,252,0,15,128,0,0,15,128,0,0,15,128,0, + 0,31,128,0,0,63,0,0,0,126,0,0,3,252,0,0, + 127,248,0,0,127,240,0,0,127,224,0,0,127,240,0,0, + 127,252,0,0,3,254,0,0,0,127,0,0,0,63,128,0, + 0,31,128,0,0,15,192,0,0,15,192,0,0,7,192,0, + 0,7,192,252,0,7,192,252,0,7,192,252,0,7,192,252, + 0,15,192,254,0,31,192,127,0,63,128,127,128,127,128,63, + 255,255,0,63,255,254,0,31,255,252,0,7,255,248,0,1, + 255,224,0,29,42,168,32,2,0,0,0,127,0,0,0,127, + 0,0,0,255,0,0,1,255,0,0,3,255,0,0,3,255, + 0,0,7,223,0,0,15,223,0,0,15,159,0,0,31,31, + 0,0,63,31,0,0,62,31,0,0,124,31,0,0,252,31, + 0,0,248,31,0,1,240,31,0,3,240,31,0,3,224,31, + 0,7,192,31,0,15,192,31,0,15,128,31,0,31,0,31, + 0,63,0,31,0,126,0,31,0,124,0,31,0,252,0,31, + 0,248,0,31,0,255,255,255,248,255,255,255,248,255,255,255, + 248,255,255,255,248,255,255,255,248,0,0,31,0,0,0,31, + 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, + 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, + 0,26,42,168,32,3,0,127,255,255,0,127,255,255,0,127, + 255,255,0,127,255,255,0,127,255,255,0,124,0,0,0,124, + 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, + 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, + 31,192,0,124,127,240,0,124,255,252,0,125,255,254,0,127, + 224,254,0,127,128,63,0,127,0,31,0,126,0,31,128,126, + 0,15,128,124,0,15,128,0,0,15,192,0,0,15,192,0, + 0,7,192,0,0,7,192,0,0,7,192,0,0,15,192,0, + 0,15,192,252,0,15,192,252,0,15,128,252,0,31,128,254, + 0,31,128,126,0,63,0,127,128,126,0,63,255,254,0,63, + 255,252,0,15,255,248,0,7,255,224,0,1,255,192,0,27, + 42,168,32,3,1,0,127,240,0,1,255,252,0,3,255,254, + 0,15,240,127,0,15,192,63,128,31,128,31,128,63,0,15, + 192,63,0,15,192,62,0,15,192,126,0,0,0,126,0,0, + 0,124,0,0,0,124,0,0,0,124,0,0,0,124,0,0, + 0,124,15,224,0,124,63,248,0,124,255,254,0,124,255,255, + 0,125,255,255,128,127,224,127,128,127,192,31,192,255,128,15, + 192,255,0,7,192,255,0,7,224,254,0,7,224,254,0,7, + 224,254,0,3,224,254,0,3,224,254,0,3,224,254,0,7, + 224,254,0,7,224,126,0,7,224,127,0,7,192,127,0,15, + 192,63,128,15,192,31,192,63,128,31,255,255,0,15,255,255, + 0,7,255,254,0,1,255,248,0,0,127,224,0,26,42,168, + 32,3,0,255,255,255,192,255,255,255,192,255,255,255,192,255, + 255,255,192,255,255,255,192,0,0,7,192,0,0,15,192,0, + 0,15,128,0,0,31,128,0,0,31,128,0,0,31,0,0, + 0,63,0,0,0,63,0,0,0,126,0,0,0,126,0,0, + 0,124,0,0,0,252,0,0,0,252,0,0,1,248,0,0, + 1,248,0,0,1,248,0,0,3,240,0,0,3,240,0,0, + 7,224,0,0,7,224,0,0,15,224,0,0,15,192,0,0, + 15,192,0,0,31,128,0,0,31,128,0,0,63,128,0,0, + 63,0,0,0,63,0,0,0,127,0,0,0,126,0,0,0, + 254,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, + 248,0,0,3,248,0,0,3,240,0,0,27,42,168,32,2, + 1,0,255,224,0,3,255,252,0,15,255,254,0,31,255,255, + 0,63,255,255,128,63,128,63,192,127,0,31,192,126,0,15, + 192,126,0,7,192,126,0,7,192,124,0,7,192,124,0,7, + 192,126,0,7,192,62,0,15,192,63,0,15,128,31,128,31, + 0,15,224,127,0,7,255,254,0,3,255,248,0,0,255,240, + 0,3,255,248,0,15,255,254,0,31,224,127,0,63,128,31, + 128,62,0,15,192,126,0,7,192,124,0,7,224,252,0,3, + 224,252,0,3,224,248,0,3,224,248,0,3,224,252,0,3, + 224,252,0,3,224,252,0,7,224,254,0,7,224,127,0,15, + 224,127,128,31,192,63,255,255,128,31,255,255,128,15,255,255, + 0,3,255,252,0,0,255,240,0,27,42,168,32,3,1,1, + 255,240,0,7,255,252,0,15,255,254,0,31,255,255,0,63, + 255,255,128,63,128,63,128,126,0,31,192,126,0,15,192,252, + 0,15,192,252,0,7,224,252,0,7,224,248,0,7,224,248, + 0,7,224,248,0,7,224,252,0,7,224,252,0,7,224,252, + 0,15,224,124,0,15,224,126,0,31,224,63,0,63,224,63, + 192,123,224,31,255,243,224,15,255,243,224,3,255,195,224,0, + 255,7,224,0,0,7,224,0,0,7,224,0,0,7,224,0, + 0,7,192,0,0,7,192,0,0,7,192,124,0,15,192,124, + 0,15,128,126,0,31,128,62,0,31,128,63,0,63,0,63, + 128,255,0,31,255,254,0,31,255,252,0,15,255,248,0,7, + 255,240,0,1,255,192,0}; +/* + Fontname: -FreeType-FreeUniversal-Medium-R-Normal--68-680-72-72-P-317-ISO10646-1 + Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. + Capital A Height: 0, '1' Height: 49 + Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=250 + Font Bounding box w=92 h=89 x=-5 y=-18 + Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 + Pure Font ascent =49 descent= 0 + X Font ascent =49 descent= 0 + Max Font ascent =50 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_fur49n[2643] U8G_SECTION(".progmem.u8g_font_fur49n") = { + 0,92,89,251,238,49,0,0,0,0,42,57,0,50,247,49, + 0,27,26,104,45,9,23,0,192,96,0,3,192,120,0,15, + 192,126,0,7,224,252,0,3,224,248,0,1,241,240,0,1, + 241,240,0,0,251,224,0,0,123,192,0,0,59,128,0,224, + 63,128,224,255,255,255,224,255,255,255,224,255,255,255,224,255, + 159,63,224,128,63,128,32,0,123,192,0,0,123,192,0,0, + 241,224,0,1,241,240,0,3,241,248,0,3,224,248,0,7, + 224,252,0,15,192,124,0,3,192,120,0,0,128,32,0,41, + 41,246,69,14,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,255,255,255,255,255,128,255,255,255, + 255,255,128,255,255,255,255,255,128,255,255,255,255,255,128,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, + 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, + 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, + 0,60,0,0,0,0,0,60,0,0,0,12,17,34,19,3, + 247,15,240,15,240,15,224,15,224,31,224,31,192,31,192,31, + 128,63,128,63,0,63,0,62,0,126,0,126,0,124,0,124, + 0,248,0,16,6,12,22,3,14,255,255,255,255,255,255,255, + 255,255,255,255,255,7,8,8,19,7,0,254,254,254,254,254, + 254,254,254,21,54,162,27,3,252,0,0,248,0,0,240,0, + 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, + 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, + 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, + 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, + 0,0,124,0,0,120,0,0,248,0,0,248,0,0,240,0, + 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, + 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, + 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, + 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, + 0,0,124,0,0,120,0,0,248,0,0,31,51,204,38,3, + 255,0,31,240,0,0,127,252,0,1,255,255,0,3,255,255, + 128,7,255,255,192,15,255,255,224,31,240,31,240,31,192,15, + 240,63,128,7,248,63,128,3,248,63,0,1,248,127,0,1, + 252,126,0,1,252,126,0,0,252,126,0,0,252,254,0,0, + 252,254,0,0,254,252,0,0,254,252,0,0,254,252,0,0, + 254,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, + 126,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, + 126,252,0,0,126,252,0,0,254,254,0,0,254,254,0,0, + 254,254,0,0,254,254,0,0,254,126,0,0,254,126,0,0, + 252,126,0,0,252,127,0,1,252,127,0,1,252,63,0,1, + 252,63,128,3,248,63,128,3,248,31,192,7,248,31,224,15, + 240,15,248,63,240,15,255,255,224,7,255,255,192,3,255,255, + 128,1,255,255,0,0,127,252,0,0,15,240,0,16,49,98, + 38,9,0,0,127,0,255,1,255,3,255,7,255,31,255,63, + 255,127,255,255,255,255,63,252,63,240,63,192,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,63,0,63,29,50,200,38,4,0,0,31,224,0,0, + 255,252,0,3,255,255,0,7,255,255,128,15,255,255,192,31, + 255,255,224,31,240,31,224,63,224,7,240,63,192,3,240,63, + 128,3,248,127,128,3,248,127,0,1,248,127,0,1,248,127, + 0,1,248,127,0,1,248,0,0,1,248,0,0,1,248,0, + 0,3,248,0,0,3,248,0,0,7,240,0,0,7,240,0, + 0,15,224,0,0,31,224,0,0,63,192,0,0,127,128,0, + 0,127,0,0,0,255,0,0,1,254,0,0,3,252,0,0, + 7,248,0,0,15,240,0,0,31,240,0,0,63,224,0,0, + 127,192,0,0,127,128,0,0,255,0,0,1,254,0,0,3, + 252,0,0,7,248,0,0,15,248,0,0,31,240,0,0,63, + 224,0,0,127,192,0,0,255,128,0,0,255,0,0,0,255, + 255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255, + 255,255,248,31,51,204,38,3,255,0,31,240,0,0,255,254, + 0,1,255,255,128,3,255,255,192,7,255,255,224,15,248,31, + 240,31,224,7,248,31,192,3,248,63,192,1,252,63,128,0, + 252,63,128,0,252,127,0,0,252,127,0,0,252,127,0,0, + 252,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, + 248,0,0,3,248,0,0,7,240,0,0,31,224,0,0,255, + 192,0,31,255,128,0,31,254,0,0,31,252,0,0,31,255, + 0,0,31,255,192,0,0,255,224,0,0,15,240,0,0,7, + 248,0,0,3,252,0,0,1,252,0,0,0,254,0,0,0, + 254,0,0,0,126,0,0,0,126,0,0,0,126,254,0,0, + 126,254,0,0,126,255,0,0,126,255,0,0,254,127,0,0, + 254,127,128,1,252,127,128,3,252,63,224,7,248,31,248,31, + 240,15,255,255,224,7,255,255,192,3,255,255,128,0,255,254, + 0,0,31,240,0,34,50,250,38,2,0,0,0,15,240,0, + 0,0,15,240,0,0,0,31,240,0,0,0,63,240,0,0, + 0,63,240,0,0,0,127,240,0,0,0,255,240,0,0,0, + 255,240,0,0,1,251,240,0,0,3,251,240,0,0,3,243, + 240,0,0,7,227,240,0,0,15,227,240,0,0,15,195,240, + 0,0,31,131,240,0,0,63,131,240,0,0,63,3,240,0, + 0,126,3,240,0,0,254,3,240,0,1,252,3,240,0,1, + 248,3,240,0,3,248,3,240,0,7,240,3,240,0,7,224, + 3,240,0,15,224,3,240,0,31,192,3,240,0,31,128,3, + 240,0,63,128,3,240,0,127,0,3,240,0,126,0,3,240, + 0,252,0,3,240,0,252,0,3,240,0,255,255,255,255,192, + 255,255,255,255,192,255,255,255,255,192,255,255,255,255,192,255, + 255,255,255,192,255,255,255,255,192,0,0,3,240,0,0,0, + 3,240,0,0,0,3,240,0,0,0,3,240,0,0,0,3, + 240,0,0,0,3,240,0,0,0,3,240,0,0,0,3,240, + 0,0,0,3,240,0,0,0,3,240,0,0,0,3,240,0, + 0,0,3,240,0,30,50,200,38,4,255,63,255,255,224,63, + 255,255,224,63,255,255,224,63,255,255,224,63,255,255,224,63, + 255,255,224,63,0,0,0,63,0,0,0,63,0,0,0,63, + 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63, + 0,0,0,63,0,0,0,63,0,0,0,63,3,248,0,63, + 31,254,0,63,63,255,128,63,127,255,192,63,255,255,224,63, + 248,31,224,63,224,7,240,63,192,3,240,63,128,3,248,63, + 0,1,248,63,0,1,252,62,0,1,252,0,0,0,252,0, + 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,0, + 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,254, + 0,1,252,254,0,1,248,254,0,1,248,255,0,3,248,127, + 0,3,240,127,128,7,224,127,192,15,224,63,240,63,192,31, + 255,255,128,15,255,255,0,7,255,254,0,1,255,248,0,0, + 31,224,0,31,51,204,38,3,255,0,7,248,0,0,63,255, + 0,0,255,255,192,1,255,255,224,3,255,255,240,7,252,15, + 240,15,248,7,248,31,224,3,248,31,192,1,252,63,192,1, + 252,63,128,0,252,63,0,0,252,127,0,0,252,127,0,0, + 0,127,0,0,0,126,0,0,0,126,0,0,0,126,0,0, + 0,126,0,0,0,126,0,0,0,126,7,252,0,126,31,255, + 0,126,63,255,192,126,127,255,224,126,255,255,240,127,252,15, + 248,127,240,3,248,255,192,1,252,255,192,1,252,255,128,0, + 254,255,128,0,254,255,0,0,126,255,0,0,126,255,0,0, + 126,255,0,0,126,255,0,0,126,255,0,0,126,255,0,0, + 126,127,0,0,126,127,0,0,126,127,128,0,254,63,128,0, + 252,63,128,1,252,31,192,1,252,31,224,3,248,15,248,15, + 240,7,255,255,224,3,255,255,192,1,255,255,128,0,127,254, + 0,0,15,248,0,30,49,196,38,4,0,255,255,255,252,255, + 255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,0, + 0,0,252,0,0,1,252,0,0,1,252,0,0,1,248,0, + 0,3,248,0,0,3,240,0,0,7,240,0,0,7,240,0, + 0,7,224,0,0,15,224,0,0,15,224,0,0,31,192,0, + 0,31,192,0,0,31,128,0,0,63,128,0,0,63,128,0, + 0,127,0,0,0,127,0,0,0,127,0,0,0,254,0,0, + 0,254,0,0,0,254,0,0,1,252,0,0,1,252,0,0, + 3,248,0,0,3,248,0,0,3,248,0,0,7,240,0,0, + 7,240,0,0,15,240,0,0,15,224,0,0,15,224,0,0, + 31,192,0,0,31,192,0,0,63,192,0,0,63,128,0,0, + 63,128,0,0,127,128,0,0,127,0,0,0,127,0,0,0, + 254,0,0,0,254,0,0,1,254,0,0,1,252,0,0,32, + 51,204,38,3,255,0,15,248,0,0,127,255,0,1,255,255, + 128,3,255,255,224,7,255,255,240,15,248,31,248,31,224,7, + 252,31,192,1,252,63,128,1,252,63,128,0,254,63,0,0, + 254,63,0,0,254,63,0,0,126,63,0,0,126,63,0,0, + 126,63,0,0,254,63,0,0,252,31,128,0,252,31,128,1, + 248,15,192,3,248,15,224,7,240,7,248,31,224,3,255,255, + 192,0,255,255,128,0,127,254,0,1,255,255,128,3,255,255, + 192,15,248,15,240,31,192,3,248,31,128,1,248,63,0,0, + 252,127,0,0,126,126,0,0,126,126,0,0,126,254,0,0, + 127,252,0,0,63,252,0,0,63,252,0,0,63,254,0,0, + 127,254,0,0,127,254,0,0,127,254,0,0,127,127,0,0, + 254,127,128,1,254,63,192,3,252,63,240,15,252,31,255,255, + 248,15,255,255,240,3,255,255,192,0,255,255,0,0,15,248, + 0,31,51,204,38,3,255,0,31,248,0,0,255,255,0,3, + 255,255,192,7,255,255,224,15,255,255,240,31,240,31,248,63, + 192,7,248,63,128,3,252,127,0,1,252,126,0,1,252,126, + 0,0,254,254,0,0,254,254,0,0,254,252,0,0,254,252, + 0,0,254,252,0,0,254,252,0,0,254,252,0,0,254,254, + 0,0,254,254,0,0,254,254,0,0,254,126,0,1,254,127, + 0,1,254,63,128,3,254,63,192,7,254,31,240,31,254,31, + 255,255,126,15,255,254,126,7,255,252,126,1,255,248,126,0, + 63,224,126,0,0,0,126,0,0,0,126,0,0,0,126,0, + 0,0,254,0,0,0,252,0,0,0,252,0,0,0,252,126, + 0,0,252,127,0,1,248,63,0,1,248,63,0,3,248,63, + 0,7,240,63,128,7,240,31,192,31,224,31,224,63,224,15, + 255,255,192,7,255,255,128,3,255,255,0,1,255,252,0,0, + 63,224,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=19 x= 2 y=11 dx=16 dy= 0 ascent=16 len=34 + Font Bounding box w=27 h=26 x=-9 y=-6 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb11[4313] U8G_SECTION(".progmem.u8g_font_gdb11") = { + 0,27,26,247,250,11,2,67,5,71,32,255,252,16,251,14, + 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, + 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, + 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, + 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, + 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, + 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, + 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, + 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, + 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, + 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, + 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, + 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, + 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, + 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, + 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, + 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, + 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, + 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, + 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, + 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, + 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, + 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, + 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, + 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, + 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, + 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, + 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, + 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, + 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, + 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, + 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, + 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, + 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, + 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, + 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, + 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, + 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, + 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, + 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, + 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, + 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, + 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, + 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, + 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, + 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, + 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, + 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, + 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, + 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, + 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, + 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, + 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, + 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, + 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, + 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, + 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, + 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, + 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, + 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, + 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, + 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, + 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, + 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, + 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, + 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, + 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, + 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, + 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, + 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, + 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, + 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, + 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, + 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, + 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, + 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, + 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, + 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, + 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, + 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, + 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, + 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, + 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, + 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, + 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, + 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, + 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, + 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, + 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, + 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, + 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, + 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, + 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, + 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, + 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, + 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, + 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, + 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, + 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, + 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, + 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, + 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, + 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, + 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, + 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, + 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, + 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, + 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, + 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, + 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, + 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, + 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, + 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, + 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, + 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, + 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, + 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, + 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, + 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, + 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,4,0,0,3,13,13,6,1,251,96,224,64, + 64,64,64,96,96,96,96,96,96,192,7,11,11,9,1,0, + 16,24,126,148,144,144,144,210,124,16,16,8,11,11,9,1, + 0,30,34,98,96,96,252,96,96,97,127,158,7,7,7,9, + 1,2,132,126,68,68,68,68,254,10,11,22,9,255,0,227, + 192,113,0,51,0,58,0,26,0,30,0,12,0,127,128,12, + 0,12,0,30,0,1,19,19,4,2,252,128,128,128,128,128, + 128,128,128,0,0,0,128,128,128,128,128,128,128,128,7,13, + 13,9,1,0,112,152,144,240,252,158,130,98,60,12,68,100, + 124,6,3,3,7,0,9,196,204,140,11,12,24,13,1,0, + 31,0,32,128,79,64,147,32,146,32,144,32,144,32,144,32, + 137,32,78,64,32,128,31,0,5,6,6,5,0,5,112,208, + 176,144,248,240,7,8,8,9,1,0,18,38,108,220,220,108, + 38,18,7,4,4,9,1,1,254,2,2,2,6,1,1,6, + 0,4,252,6,7,7,6,0,6,120,72,188,188,180,104,120, + 7,1,1,9,1,11,254,4,4,4,6,1,7,112,144,144, + 224,7,8,8,7,0,1,16,16,254,16,16,16,0,254,4, + 7,7,6,1,5,112,208,16,32,64,144,240,4,7,7,6, + 1,5,48,80,144,48,16,144,224,4,4,4,6,2,9,112, + 96,192,128,9,12,24,10,1,252,227,0,99,0,99,0,99, + 0,99,0,99,0,127,128,91,0,64,0,64,0,96,0,112, + 0,10,13,26,11,0,254,63,192,98,128,194,128,194,128,98, + 128,62,128,2,128,2,128,2,128,2,128,2,128,2,128,7, + 192,3,3,3,4,0,5,224,224,192,2,4,4,4,2,252, + 192,64,64,192,4,7,7,6,1,5,32,224,32,32,32,32, + 240,4,6,6,5,0,5,96,144,144,144,96,240,8,8,8, + 9,1,0,136,76,102,55,55,102,76,136,10,11,22,11,1, + 0,192,192,65,128,65,0,66,0,68,0,172,0,8,128,19, + 128,50,128,99,192,197,192,9,11,22,11,1,0,192,128,65, + 0,66,0,66,0,68,0,168,0,25,128,18,128,33,0,98, + 128,199,128,11,11,22,11,0,0,96,96,80,192,32,128,17, + 0,146,0,230,0,4,64,9,192,25,64,49,224,98,224,6, + 13,13,8,1,251,56,56,48,16,16,16,32,96,192,196,204, + 204,112,11,16,32,11,0,0,16,0,24,0,12,0,6,0, + 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, + 33,128,33,192,96,192,241,224,11,16,32,11,0,0,1,0, + 3,128,6,0,12,0,0,0,6,0,14,0,14,0,11,0, + 19,0,19,0,63,128,33,128,33,192,96,192,241,224,11,16, + 32,11,0,0,4,0,14,0,31,0,17,0,0,128,6,0, + 14,0,14,0,11,0,19,0,19,0,63,128,33,128,33,192, + 96,192,241,224,11,15,30,11,0,0,12,128,31,128,39,0, + 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, + 33,128,33,192,96,192,241,224,11,15,30,11,0,0,16,128, + 49,128,49,128,0,0,6,0,14,0,14,0,11,0,19,0, + 19,0,63,128,33,128,33,192,96,192,241,224,11,16,32,11, + 0,0,6,0,10,0,10,0,14,0,0,0,6,0,14,0, + 14,0,11,0,19,0,19,0,63,128,33,128,33,192,96,192, + 241,224,14,11,22,15,0,0,15,252,7,140,5,136,13,128, + 9,128,31,248,25,128,17,128,49,132,33,132,243,252,9,15, + 30,10,0,252,31,0,99,0,64,0,192,0,192,0,192,0, + 192,0,192,0,96,0,112,128,31,0,4,0,2,0,6,0, + 28,0,9,16,32,9,0,0,32,0,48,0,24,0,4,0, + 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, + 48,0,48,128,48,128,255,128,9,16,32,9,0,0,2,0, + 7,0,14,0,24,0,0,0,255,0,49,0,49,0,48,0, + 48,0,63,0,48,0,48,0,48,128,48,128,255,128,9,16, + 32,9,0,0,8,0,28,0,30,0,35,0,0,0,255,0, + 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, + 48,128,255,128,9,15,30,9,0,0,33,0,97,0,99,0, + 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, + 48,0,48,128,48,128,255,128,5,16,16,6,0,0,64,224, + 112,16,8,120,48,48,48,48,48,48,48,48,48,120,5,16, + 16,6,1,0,16,56,112,192,0,240,96,96,96,96,96,96, + 96,96,96,240,6,16,16,6,0,0,48,112,120,204,0,120, + 48,48,48,48,48,48,48,48,48,120,7,15,15,6,255,0, + 66,194,194,0,60,24,24,24,24,24,24,24,24,24,60,9, + 11,22,11,1,0,254,0,99,0,97,0,97,128,97,128,249, + 128,97,128,97,128,97,0,99,0,252,0,10,15,30,12,1, + 0,25,0,63,0,46,0,0,0,225,192,96,128,112,128,120, + 128,92,128,76,128,70,128,71,128,67,128,65,128,225,128,10, + 16,32,11,0,0,16,0,24,0,12,0,2,0,0,0,30, + 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, + 128,97,0,30,0,10,16,32,11,0,0,1,0,3,128,6, + 0,12,0,0,0,30,0,33,128,64,128,192,192,192,192,192, + 192,192,192,192,192,64,128,97,0,30,0,10,16,32,11,0, + 0,4,0,14,0,31,0,17,128,0,0,30,0,33,128,64, + 128,192,192,192,192,192,192,192,192,192,192,64,128,97,0,30, + 0,10,15,30,11,0,0,12,128,31,128,39,0,0,0,30, + 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, + 128,97,0,30,0,10,15,30,11,0,0,16,128,49,128,49, + 128,0,0,30,0,33,128,64,128,192,192,192,192,192,192,192, + 192,192,192,64,128,97,0,30,0,6,6,6,8,1,2,140, + 216,112,112,216,140,10,11,22,11,0,0,31,192,35,128,99, + 128,195,192,198,192,204,192,216,192,240,192,113,128,113,0,254, + 0,10,16,32,12,1,0,16,0,56,0,28,0,6,0,0, + 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, + 128,96,128,49,0,30,0,10,16,32,12,1,0,2,0,7, + 0,14,0,24,0,0,0,241,192,96,128,96,128,96,128,96, + 128,96,128,96,128,96,128,96,128,49,0,30,0,10,16,32, + 12,1,0,12,0,14,0,30,0,51,0,0,0,241,192,96, + 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,49, + 0,30,0,10,15,30,12,1,0,33,0,33,128,33,0,0, + 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, + 128,96,128,49,0,30,0,10,16,32,11,1,0,4,0,7, + 0,12,0,24,0,0,0,227,192,113,128,49,0,59,0,26, + 0,14,0,12,0,12,0,12,0,12,0,30,0,8,11,11, + 10,1,0,240,96,126,99,99,99,99,98,124,96,240,9,13, + 26,11,1,0,14,0,49,128,33,128,97,128,97,0,102,0, + 104,0,100,0,103,0,97,128,104,128,104,128,239,0,8,13, + 13,9,1,0,96,48,16,8,0,60,102,198,30,102,198,207, + 118,8,13,13,9,1,0,12,28,24,48,0,60,102,198,30, + 102,198,207,118,8,13,13,9,1,0,16,56,108,198,0,60, + 102,198,30,102,198,207,118,8,12,12,9,1,0,114,252,0, + 0,60,102,198,30,102,198,207,118,8,12,12,9,1,0,194, + 198,134,0,60,102,198,30,102,198,207,118,8,13,13,9,1, + 0,24,40,40,48,0,60,102,198,30,102,198,207,118,11,8, + 16,13,1,0,61,192,102,32,196,32,63,224,68,0,198,32, + 255,192,115,128,7,12,12,8,1,252,62,70,196,192,192,192, + 102,56,16,8,24,48,7,13,13,9,1,0,96,48,24,8, + 0,60,70,198,254,192,192,98,60,7,13,13,9,1,0,12, + 14,24,48,0,60,70,198,254,192,192,98,60,7,13,13,9, + 1,0,24,56,108,66,0,60,70,198,254,192,192,98,60,7, + 12,12,9,1,0,66,198,194,0,60,70,198,254,192,192,98, + 60,5,13,13,5,0,0,224,96,48,16,0,48,112,48,48, + 48,48,48,120,5,13,13,5,1,0,48,56,96,64,128,96, + 224,96,96,96,96,96,240,6,13,13,5,0,0,48,112,216, + 132,0,48,112,48,48,48,48,48,120,7,12,12,5,255,0, + 66,194,194,0,24,56,24,24,24,24,24,60,7,13,13,9, + 1,0,112,62,56,108,4,62,78,198,198,198,196,76,56,9, + 12,24,10,1,0,57,0,126,0,0,0,0,0,110,0,255, + 0,115,0,99,0,99,0,99,0,99,0,247,128,7,13,13, + 9,1,0,112,48,24,8,0,56,68,198,198,198,198,68,56, + 7,13,13,9,1,0,14,12,24,16,0,56,68,198,198,198, + 198,68,56,7,13,13,9,1,0,24,60,44,66,0,56,68, + 198,198,198,198,68,56,7,12,12,9,1,0,50,124,128,0, + 56,68,198,198,198,198,68,56,7,12,12,9,1,0,66,194, + 66,0,56,68,198,198,198,198,68,56,7,6,6,8,0,2, + 16,16,0,126,144,16,7,9,9,9,1,0,2,58,68,206, + 214,230,230,68,248,10,13,26,10,0,0,24,0,56,0,12, + 0,4,0,0,0,227,128,97,128,97,128,97,128,97,128,97, + 128,127,192,57,128,10,13,26,10,0,0,7,0,6,0,12, + 0,8,0,0,0,227,128,97,128,97,128,97,128,97,128,97, + 128,127,192,57,128,10,13,26,10,0,0,12,0,30,0,18, + 0,33,0,0,0,227,128,97,128,97,128,97,128,97,128,97, + 128,127,192,57,128,10,12,24,10,0,0,33,0,33,128,33, + 0,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, + 192,57,128,10,17,34,9,255,252,3,0,3,128,6,0,4, + 0,8,0,121,192,48,128,25,128,25,0,15,0,14,0,14, + 0,6,0,4,0,12,0,120,0,240,0,8,18,18,10,1, + 252,96,224,96,96,96,96,110,127,97,97,97,97,98,124,96, + 96,96,240,10,16,32,9,255,252,16,128,48,128,48,128,0, + 0,121,192,48,128,25,128,25,0,15,0,14,0,14,0,6, + 0,4,0,12,0,120,0,240,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 11 + Calculated Max Values w= 8 h=17 x= 1 y= 6 dx=10 dy= 0 ascent=14 len=17 + Font Bounding box w=27 h=26 x=-9 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb11n[263] U8G_SECTION(".progmem.u8g_font_gdb11n") = { + 0,27,26,247,250,11,0,0,0,0,42,57,0,14,253,11, + 0,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, + 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, + 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, + 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, + 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, + 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, + 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, + 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, + 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, + 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, + 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, + 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, + 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, + 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, + 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, + 198,198,126,4,12,24,224}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=19 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=32 + Font Bounding box w=27 h=26 x=-9 y=-6 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb11r[2001] U8G_SECTION(".progmem.u8g_font_gdb11r") = { + 0,27,26,247,250,11,2,67,5,71,32,127,252,15,252,14, + 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, + 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, + 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, + 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, + 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, + 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, + 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, + 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, + 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, + 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, + 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, + 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, + 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, + 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, + 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, + 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, + 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, + 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, + 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, + 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, + 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, + 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, + 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, + 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, + 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, + 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, + 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, + 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, + 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, + 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, + 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, + 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, + 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, + 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, + 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, + 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, + 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, + 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, + 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, + 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, + 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, + 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, + 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, + 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, + 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, + 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, + 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, + 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, + 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, + 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, + 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, + 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, + 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, + 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, + 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, + 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, + 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, + 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, + 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, + 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, + 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, + 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, + 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, + 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, + 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, + 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, + 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, + 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, + 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, + 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, + 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, + 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, + 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, + 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, + 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, + 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, + 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, + 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, + 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, + 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, + 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, + 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, + 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, + 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, + 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, + 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, + 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, + 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, + 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, + 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, + 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, + 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, + 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, + 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, + 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, + 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, + 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, + 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, + 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, + 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, + 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, + 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, + 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, + 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, + 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, + 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, + 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, + 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, + 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, + 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, + 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, + 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, + 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, + 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, + 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, + 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, + 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, + 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, + 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, + 255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 + Font Bounding box w=29 h=28 x=-10 y=-7 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =15 descent=-4 + Max Font ascent =17 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb12[4626] U8G_SECTION(".progmem.u8g_font_gdb12") = { + 0,29,28,246,249,12,2,113,5,210,32,255,252,17,251,15, + 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, + 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, + 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, + 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, + 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, + 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, + 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, + 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, + 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, + 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, + 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, + 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, + 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, + 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, + 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, + 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, + 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, + 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, + 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, + 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, + 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, + 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, + 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, + 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, + 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, + 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, + 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, + 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, + 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, + 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, + 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, + 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, + 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, + 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, + 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, + 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, + 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, + 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, + 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, + 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, + 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, + 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, + 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, + 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, + 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, + 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, + 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, + 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, + 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, + 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, + 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, + 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, + 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, + 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, + 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, + 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, + 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, + 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, + 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, + 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, + 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, + 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, + 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, + 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, + 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, + 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, + 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, + 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, + 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, + 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, + 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, + 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, + 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, + 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, + 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, + 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, + 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, + 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, + 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, + 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, + 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, + 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, + 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, + 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, + 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, + 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, + 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, + 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, + 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, + 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, + 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, + 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, + 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, + 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, + 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, + 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, + 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, + 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, + 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, + 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, + 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, + 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, + 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, + 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, + 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, + 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, + 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, + 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, + 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, + 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, + 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, + 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, + 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, + 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, + 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, + 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, + 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, + 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, + 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, + 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, + 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, + 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, + 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, + 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, + 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, + 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, + 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, + 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, + 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, + 4,8,9,0,4,48,0,125,128,79,0,134,0,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, + 0,5,0,0,3,14,14,6,1,251,96,224,64,0,96,96, + 96,96,96,96,96,96,96,64,7,12,12,10,2,0,16,16, + 62,86,144,144,144,144,86,124,16,16,9,11,22,10,0,0, + 15,128,49,128,49,0,112,0,112,0,254,0,112,0,112,0, + 96,128,123,128,255,0,8,7,7,10,1,2,255,66,66,66, + 66,102,255,10,11,22,10,0,0,227,192,113,0,51,0,26, + 0,26,0,12,0,127,128,12,0,12,0,12,0,30,0,1, + 20,20,4,2,252,128,128,128,128,128,128,128,128,128,0,0, + 128,128,128,128,128,128,128,128,128,8,13,13,10,1,0,120, + 152,136,240,190,135,193,113,62,14,34,50,62,6,3,3,7, + 0,10,236,252,220,12,13,26,14,1,0,15,0,48,192,64, + 32,143,32,145,16,145,16,144,16,144,16,144,16,136,160,79, + 32,32,64,31,128,5,7,7,5,0,5,112,208,112,144,248, + 0,240,8,9,9,10,1,0,17,34,102,204,220,204,102,34, + 17,8,4,4,10,1,2,255,1,1,1,6,1,1,7,0, + 4,252,7,7,7,7,0,7,56,68,186,170,178,108,56,8, + 2,2,9,1,11,255,254,5,5,5,7,1,7,112,136,136, + 136,112,8,9,9,8,0,1,8,8,8,127,8,8,8,0, + 255,4,7,7,7,2,6,112,208,16,32,64,144,240,5,7, + 7,6,0,6,56,104,8,24,8,136,112,4,4,4,6,2, + 10,48,96,192,128,10,13,26,11,1,252,99,0,227,0,99, + 0,99,0,99,0,99,0,103,0,127,128,91,64,64,0,64, + 0,96,0,112,0,9,14,28,11,1,254,63,128,101,0,197, + 0,197,0,197,0,101,0,61,0,5,0,5,0,5,0,5, + 0,5,0,5,0,15,128,3,3,3,4,0,5,224,224,192, + 3,4,4,4,1,252,64,96,96,192,5,7,7,7,1,6, + 32,224,32,32,32,32,248,4,7,7,5,0,5,96,144,144, + 144,96,0,240,8,9,9,10,1,0,136,76,102,55,51,55, + 102,76,136,11,11,22,12,1,0,64,64,192,128,65,0,67, + 0,70,0,228,0,8,192,25,64,50,64,35,224,192,224,10, + 11,22,12,1,0,64,64,192,128,65,0,65,0,66,0,228, + 192,9,64,26,128,16,128,33,64,99,192,11,11,22,11,0, + 0,96,32,208,64,32,128,145,128,227,0,2,0,4,192,13, + 64,25,64,19,224,96,224,7,14,14,9,1,251,56,56,48, + 0,16,16,16,32,96,192,194,198,196,120,12,16,32,12,0, + 0,24,0,28,0,3,0,0,0,6,0,14,0,15,0,11, + 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, + 240,12,16,32,12,0,0,1,0,7,128,12,0,0,0,6, + 0,14,0,15,0,11,0,27,0,19,128,17,128,63,128,33, + 192,32,192,96,224,241,240,12,16,32,12,0,0,6,0,15, + 0,16,128,0,0,6,0,14,0,15,0,11,0,27,0,19, + 128,17,128,63,128,33,192,32,192,96,224,241,240,12,16,32, + 12,0,0,12,192,31,128,35,0,0,0,6,0,14,0,15, + 0,11,0,27,0,19,128,17,128,63,128,33,192,32,192,96, + 224,241,240,12,16,32,12,0,0,27,0,27,128,27,0,0, + 0,6,0,14,0,15,0,11,0,27,0,19,128,17,128,63, + 128,33,192,32,192,96,224,241,240,12,17,34,12,0,0,6, + 0,9,0,17,0,14,0,0,0,6,0,14,0,15,0,11, + 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, + 240,15,12,24,15,0,0,31,252,5,132,5,132,13,128,9, + 128,31,248,17,144,17,128,49,128,33,130,97,132,243,252,9, + 16,32,11,1,252,31,0,99,128,65,0,192,0,192,0,192, + 0,192,0,192,0,192,0,96,128,59,128,30,0,8,0,6, + 0,14,0,28,0,10,16,32,10,0,0,48,0,56,0,6, + 0,0,0,255,128,48,128,48,128,48,0,48,0,63,0,50, + 0,48,0,48,0,48,64,48,128,255,128,10,16,32,10,0, + 0,3,0,7,0,24,0,0,0,255,128,48,128,48,128,48, + 0,48,0,63,0,50,0,48,0,48,0,48,64,48,128,255, + 128,10,16,32,10,0,0,12,0,30,0,33,0,0,0,255, + 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, + 0,48,64,48,128,255,128,10,16,32,10,0,0,51,0,63, + 0,54,0,0,0,255,128,48,128,48,128,48,0,48,0,63, + 0,50,0,48,0,48,0,48,64,48,128,255,128,5,16,16, + 6,0,0,192,224,24,0,120,48,48,48,48,48,48,48,48, + 48,48,120,5,16,16,6,1,0,24,56,192,0,240,96,96, + 96,96,96,96,96,96,96,96,240,6,16,16,6,0,0,48, + 120,132,0,120,48,48,48,48,48,48,48,48,48,48,120,6, + 16,16,6,0,0,204,252,216,0,120,48,48,48,48,48,48, + 48,48,48,48,120,10,12,24,12,1,0,254,0,99,128,97, + 128,96,192,96,192,248,192,96,192,96,192,96,192,97,128,99, + 0,254,0,11,16,32,13,1,0,28,128,63,0,39,0,0, + 0,224,224,112,64,112,64,120,64,92,64,78,64,78,64,71, + 64,67,192,65,192,65,192,224,192,10,16,32,12,1,0,48, + 0,56,0,6,0,0,0,30,0,33,128,65,128,64,192,192, + 192,192,192,192,192,192,192,192,128,96,128,97,0,30,0,10, + 16,32,12,1,0,2,0,15,0,24,0,0,0,30,0,33, + 128,65,128,64,192,192,192,192,192,192,192,192,192,192,128,96, + 128,97,0,30,0,10,16,32,12,1,0,12,0,30,0,33, + 0,0,0,30,0,33,128,65,128,64,192,192,192,192,192,192, + 192,192,192,192,128,96,128,97,0,30,0,10,16,32,12,1, + 0,25,128,63,0,70,0,0,0,30,0,33,128,65,128,64, + 192,192,192,192,192,192,192,192,192,192,128,96,128,97,0,30, + 0,10,16,32,12,1,0,55,0,55,0,54,0,0,0,30, + 0,33,128,65,128,64,192,192,192,192,192,192,192,192,192,192, + 128,96,128,97,0,30,0,6,6,6,8,1,2,132,72,48, + 48,72,132,10,12,24,12,1,0,30,192,33,128,97,128,67, + 192,198,192,196,192,200,192,216,192,240,128,97,128,97,0,222, + 0,11,16,32,13,1,0,16,0,60,0,6,0,0,0,240, + 224,96,64,96,64,96,64,96,64,96,64,96,64,96,64,96, + 64,96,128,48,128,31,0,11,16,32,13,1,0,3,0,7, + 128,12,0,0,0,240,224,96,64,96,64,96,64,96,64,96, + 64,96,64,96,64,96,64,96,128,48,128,31,0,11,16,32, + 13,1,0,12,0,30,0,49,0,0,128,240,224,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,96,64,96,128,48, + 128,31,0,11,16,32,13,1,0,27,0,63,0,51,0,0, + 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, + 64,96,64,96,128,48,128,31,0,11,16,32,12,0,0,1, + 0,7,128,12,0,0,0,241,224,48,192,24,128,29,128,13, + 0,15,0,6,0,6,0,6,0,6,0,6,0,15,0,9, + 12,24,11,1,0,248,0,96,0,126,0,99,0,97,128,97, + 128,97,128,97,128,113,0,110,0,96,0,248,0,9,14,28, + 12,1,0,14,0,51,0,33,128,97,128,97,128,103,0,108, + 0,108,0,102,0,99,0,97,128,104,128,104,128,239,0,8, + 14,14,9,1,0,112,48,24,8,0,60,102,198,14,126,198, + 198,207,118,8,14,14,9,1,0,14,12,24,48,0,60,102, + 198,14,126,198,198,207,118,8,14,14,9,1,0,24,60,108, + 66,0,60,102,198,14,126,198,198,207,118,8,13,13,9,1, + 0,114,126,140,0,60,102,198,14,126,198,198,207,118,8,13, + 13,9,1,0,108,110,108,0,60,102,198,14,126,198,198,207, + 118,8,14,14,9,1,0,56,68,72,56,0,60,102,198,14, + 126,198,198,207,118,12,9,18,14,1,0,29,192,111,32,198, + 48,166,48,63,240,70,0,199,16,251,224,113,192,8,13,13, + 9,1,252,62,70,196,192,192,192,194,127,60,16,12,28,48, + 7,14,14,9,1,0,112,48,24,8,0,60,100,198,198,254, + 192,226,124,56,7,14,14,9,1,0,14,12,24,16,0,60, + 100,198,198,254,192,226,124,56,7,14,14,9,1,0,24,60, + 100,66,0,60,100,198,198,254,192,226,124,56,7,13,13,9, + 1,0,110,126,108,0,60,100,198,198,254,192,226,124,56,5, + 14,14,6,0,0,224,96,48,16,0,48,112,48,48,48,48, + 48,48,120,5,14,14,6,1,0,56,48,96,64,0,96,224, + 96,96,96,96,96,96,240,6,14,14,6,0,0,48,120,200, + 132,0,48,112,48,48,48,48,48,48,120,6,13,13,6,0, + 0,220,220,216,0,48,112,48,48,48,48,48,48,120,8,14, + 14,10,1,0,48,255,28,102,6,63,71,195,195,195,195,194, + 102,60,9,13,26,11,1,0,57,0,63,0,78,0,0,0, + 102,0,255,0,115,0,99,0,99,0,99,0,99,0,99,0, + 247,128,8,14,14,10,1,0,48,112,24,12,0,60,70,195, + 195,195,195,194,98,60,8,14,14,10,1,0,6,12,24,16, + 0,60,70,195,195,195,195,194,98,60,8,14,14,10,1,0, + 24,60,38,66,0,60,70,195,195,195,195,194,98,60,8,13, + 13,10,1,0,57,126,76,0,60,70,195,195,195,195,194,98, + 60,8,13,13,10,1,0,118,126,108,0,60,70,195,195,195, + 195,194,98,60,8,7,7,8,0,2,8,8,0,127,128,8, + 8,8,9,9,10,1,0,63,102,71,203,219,211,226,102,252, + 10,14,28,11,0,0,24,0,60,0,12,0,6,0,0,0, + 227,128,97,128,97,128,97,128,97,128,97,128,99,128,127,192, + 57,128,10,14,28,11,0,0,3,0,7,0,4,0,8,0, + 0,0,227,128,97,128,97,128,97,128,97,128,97,128,99,128, + 127,192,57,128,10,14,28,11,0,0,12,0,14,0,27,0, + 33,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, + 99,128,127,192,57,128,10,13,26,11,0,0,27,0,63,0, + 51,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, + 99,128,127,192,57,128,11,18,36,10,255,252,3,128,3,0, + 6,0,4,0,0,0,121,224,56,128,24,128,25,128,13,0, + 13,0,14,0,6,0,6,0,4,0,12,0,120,0,240,0, + 9,18,36,11,1,252,96,0,224,0,96,0,96,0,96,0, + 103,0,111,0,113,128,97,128,97,128,97,128,97,0,127,0, + 110,0,96,0,96,0,96,0,248,0,11,17,34,10,255,252, + 25,128,31,128,27,0,0,0,121,224,56,128,24,128,25,128, + 13,0,13,0,14,0,6,0,6,0,4,0,12,0,120,0, + 240,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 12 + Calculated Max Values w= 9 h=18 x= 1 y= 7 dx=10 dy= 0 ascent=15 len=36 + Font Bounding box w=29 h=28 x=-10 y=-7 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent= 0 + X Font ascent =12 descent= 0 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb12n[286] U8G_SECTION(".progmem.u8g_font_gdb12n") = { + 0,29,28,246,249,12,0,0,0,0,42,57,0,15,252,12, + 0,7,7,7,8,1,7,48,180,222,48,222,148,48,7,7, + 7,8,1,2,16,16,16,254,16,16,16,3,6,6,5,1, + 252,96,224,96,96,64,128,6,1,1,7,0,4,252,3,3, + 3,5,1,0,224,224,192,9,18,36,9,0,253,1,128,3, + 0,3,0,3,0,6,0,6,0,4,0,12,0,12,0,24, + 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,192, + 0,8,11,11,10,1,0,60,102,66,195,195,195,195,195,66, + 98,60,7,12,12,10,1,0,8,120,152,24,24,24,24,24, + 24,24,24,254,7,11,11,9,1,0,60,102,230,6,4,8, + 16,34,66,126,254,7,11,11,9,1,0,60,102,230,6,8, + 28,6,6,6,140,120,8,12,12,9,0,0,6,14,14,22, + 22,38,102,70,255,6,6,31,7,11,11,10,1,0,126,124, + 64,64,124,134,6,6,6,134,124,8,12,12,10,1,0,14, + 56,112,96,192,254,195,195,195,195,98,60,8,11,11,10,1, + 0,255,254,130,6,4,12,8,24,24,48,96,8,11,11,10, + 1,0,60,102,102,102,124,62,71,195,195,195,60,8,11,11, + 10,1,0,60,70,195,195,195,195,63,2,6,12,112}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=36 + Font Bounding box w=29 h=28 x=-10 y=-7 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =15 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb12r[2190] U8G_SECTION(".progmem.u8g_font_gdb12r") = { + 0,29,28,246,249,12,2,113,5,210,32,127,252,16,252,15, + 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, + 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, + 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, + 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, + 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, + 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, + 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, + 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, + 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, + 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, + 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, + 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, + 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, + 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, + 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, + 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, + 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, + 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, + 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, + 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, + 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, + 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, + 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, + 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, + 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, + 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, + 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, + 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, + 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, + 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, + 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, + 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, + 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, + 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, + 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, + 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, + 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, + 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, + 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, + 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, + 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, + 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, + 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, + 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, + 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, + 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, + 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, + 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, + 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, + 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, + 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, + 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, + 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, + 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, + 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, + 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, + 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, + 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, + 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, + 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, + 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, + 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, + 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, + 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, + 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, + 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, + 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, + 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, + 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, + 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, + 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, + 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, + 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, + 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, + 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, + 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, + 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, + 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, + 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, + 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, + 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, + 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, + 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, + 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, + 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, + 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, + 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, + 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, + 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, + 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, + 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, + 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, + 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, + 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, + 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, + 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, + 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, + 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, + 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, + 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, + 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, + 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, + 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, + 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, + 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, + 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, + 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, + 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, + 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, + 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, + 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, + 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, + 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, + 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, + 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, + 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, + 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, + 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, + 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, + 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, + 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, + 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, + 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, + 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, + 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, + 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, + 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, + 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, + 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, + 4,8,9,0,4,48,0,125,128,79,0,134,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=19 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=60 + Font Bounding box w=36 h=33 x=-12 y=-8 + Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =20 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb14[6044] U8G_SECTION(".progmem.u8g_font_gdb14") = { + 0,36,33,244,248,14,3,134,7,177,32,255,251,20,250,18, + 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, + 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, + 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, + 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, + 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, + 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, + 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, + 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, + 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, + 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, + 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, + 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, + 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, + 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, + 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, + 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, + 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, + 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, + 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, + 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, + 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, + 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, + 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, + 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, + 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, + 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, + 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, + 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, + 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, + 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, + 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, + 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, + 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, + 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, + 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, + 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, + 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, + 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, + 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, + 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, + 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, + 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, + 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, + 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, + 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, + 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, + 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, + 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, + 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, + 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, + 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, + 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, + 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, + 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, + 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, + 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, + 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, + 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, + 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, + 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, + 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, + 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, + 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, + 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, + 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, + 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, + 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, + 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, + 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, + 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, + 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, + 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, + 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, + 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, + 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, + 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, + 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, + 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, + 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, + 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, + 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, + 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, + 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, + 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, + 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, + 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, + 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, + 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, + 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, + 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, + 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, + 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, + 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, + 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, + 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, + 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, + 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, + 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, + 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, + 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, + 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, + 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, + 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, + 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, + 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, + 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, + 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, + 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, + 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, + 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, + 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, + 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, + 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, + 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, + 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, + 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, + 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, + 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, + 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, + 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, + 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, + 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, + 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, + 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, + 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, + 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, + 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, + 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, + 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, + 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, + 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, + 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, + 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, + 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, + 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, + 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, + 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, + 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, + 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, + 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, + 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, + 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, + 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, + 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, + 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, + 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, + 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, + 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, + 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, + 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, + 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, + 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, + 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, + 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, + 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, + 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, + 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, + 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, + 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, + 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, + 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, + 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, + 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, + 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, + 5,48,64,124,128,159,0,135,0,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,0,0,0,6,0,0, + 4,16,16,7,1,250,112,240,96,0,32,32,32,112,112,112, + 112,112,112,112,112,96,10,14,28,12,1,0,12,0,12,0, + 31,128,125,192,108,128,204,0,204,0,204,0,204,0,236,192, + 127,128,63,0,12,0,12,0,11,14,28,12,0,0,7,192, + 12,224,24,64,24,64,56,0,56,0,56,0,127,0,184,0, + 56,0,56,32,48,32,127,224,255,224,10,9,18,12,1,2, + 128,64,94,128,51,0,97,128,97,128,97,128,51,128,94,128, + 128,64,12,14,28,12,0,0,241,240,120,192,56,192,29,128, + 29,128,13,0,15,0,6,0,63,192,6,0,6,0,6,0, + 6,0,31,128,2,24,24,5,2,251,192,192,192,192,192,192, + 192,192,192,192,128,0,0,64,192,192,192,192,192,192,192,192, + 192,192,9,16,32,11,1,0,62,0,99,0,99,0,112,0, + 60,0,127,0,199,128,195,128,225,128,121,128,63,0,31,0, + 71,0,67,0,99,0,126,0,7,3,3,9,1,12,198,238, + 198,15,15,30,17,1,0,7,192,24,48,48,24,99,204,108, + 236,200,70,216,6,216,6,216,6,216,6,108,44,103,204,48, + 24,24,48,7,192,6,7,7,6,0,7,120,216,24,248,216, + 252,248,9,10,20,12,1,0,8,128,17,128,51,0,103,0, + 238,0,238,0,103,0,51,0,17,128,8,128,10,5,10,12, + 1,2,255,192,0,192,0,192,0,192,0,192,7,1,1,8, + 1,5,254,8,8,8,8,0,8,60,66,157,149,153,153,86, + 60,9,2,4,11,1,13,255,128,255,128,6,5,5,8,1, + 9,56,76,204,200,112,8,10,10,9,1,2,24,24,24,24, + 255,24,24,24,0,255,6,8,8,8,1,7,120,204,140,24, + 16,32,68,252,6,8,8,8,1,7,56,204,140,56,12,12, + 140,120,6,5,5,7,2,12,56,60,112,96,192,12,15,30, + 13,1,251,96,192,225,192,96,192,96,192,96,192,96,192,96, + 192,113,192,127,240,110,192,96,0,96,0,112,0,112,0,96, + 0,14,17,34,14,0,253,31,252,113,176,225,176,225,176,225, + 176,225,176,113,176,31,176,1,176,1,176,1,176,1,176,1, + 176,1,176,1,176,1,176,7,252,4,3,3,5,0,6,96, + 240,224,4,5,5,5,1,251,32,96,48,48,224,6,8,8, + 8,1,7,48,240,48,48,48,48,48,252,5,7,7,6,0, + 7,112,216,216,216,216,112,248,10,10,20,12,1,0,196,0, + 102,0,99,0,51,128,57,192,61,192,49,128,99,0,102,0, + 196,0,12,14,28,14,1,0,48,16,240,48,48,96,48,192, + 48,128,49,128,255,0,6,96,4,224,13,224,25,96,19,240, + 48,96,96,240,12,14,28,14,1,0,48,48,240,96,48,192, + 48,192,49,128,51,0,254,0,6,240,13,48,26,48,16,96, + 48,192,97,144,195,240,14,14,28,15,0,0,56,8,76,24, + 40,48,60,96,12,64,140,192,121,128,3,24,2,56,6,88, + 12,88,8,252,24,24,48,60,9,16,32,11,1,250,28,0, + 30,0,12,0,0,0,12,0,12,0,12,0,24,0,56,0, + 112,0,96,0,224,0,227,128,227,128,231,0,126,0,14,20, + 40,14,0,0,8,0,28,0,15,0,3,128,0,0,0,0, + 1,0,7,128,7,128,5,128,13,192,12,192,8,224,24,224, + 31,224,16,112,48,112,48,48,32,56,248,124,14,20,40,14, + 0,0,0,128,0,224,3,192,7,0,0,0,0,0,1,0, + 7,128,7,128,5,128,13,192,12,192,8,224,24,224,31,224, + 16,112,48,112,48,48,32,56,248,124,14,20,40,14,0,0, + 3,0,7,128,15,192,12,96,16,0,0,0,1,0,7,128, + 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, + 48,112,48,48,32,56,248,124,14,19,38,14,0,0,4,32, + 15,240,27,192,0,0,0,0,1,0,7,128,7,128,5,128, + 13,192,12,192,8,224,24,224,31,224,16,112,48,112,48,48, + 32,56,248,124,14,19,38,14,0,0,8,64,28,224,24,224, + 0,0,0,0,1,0,7,128,7,128,5,128,13,192,12,192, + 8,224,24,224,31,224,16,112,48,112,48,48,32,56,248,124, + 14,20,40,14,0,0,1,128,6,192,6,192,7,128,0,0, + 0,0,1,0,7,128,7,128,5,128,13,192,12,192,8,224, + 24,224,31,224,16,112,48,112,48,48,32,56,248,124,18,14, + 42,19,0,0,7,255,128,1,225,128,3,96,128,3,96,128, + 6,96,0,6,96,0,7,255,0,12,98,0,12,96,0,24, + 96,0,24,96,0,48,96,64,48,96,192,249,255,128,11,19, + 38,13,1,251,15,192,49,192,96,128,64,0,192,0,192,0, + 192,0,192,0,192,0,192,0,96,0,112,96,63,192,31,128, + 4,0,6,0,3,0,3,0,12,0,12,20,40,12,0,0, + 16,0,56,0,30,0,7,0,0,0,0,0,255,224,56,96, + 56,96,56,64,56,0,56,0,63,192,56,128,56,0,56,0, + 56,0,56,48,56,32,255,224,12,20,40,12,0,0,1,0, + 1,192,7,128,14,0,0,0,0,0,255,224,56,96,56,96, + 56,64,56,0,56,0,63,192,56,128,56,0,56,0,56,0, + 56,48,56,32,255,224,12,20,40,12,0,0,6,0,15,0, + 31,128,48,192,0,0,0,0,255,224,56,96,56,96,56,64, + 56,0,56,0,63,192,56,128,56,0,56,0,56,0,56,48, + 56,32,255,224,12,19,38,12,0,0,16,128,49,192,49,192, + 0,0,0,0,255,224,56,96,56,96,56,64,56,0,56,0, + 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, + 7,20,20,8,0,0,64,224,112,24,4,0,126,24,24,24, + 24,24,24,24,24,24,24,24,24,126,7,20,20,8,1,0, + 8,30,60,96,128,0,252,48,48,48,48,48,48,48,48,48, + 48,48,48,252,7,20,20,8,0,0,16,56,124,198,0,0, + 126,24,24,24,24,24,24,24,24,24,24,24,24,126,8,19, + 19,8,255,0,65,99,227,0,0,63,12,12,12,12,12,12, + 12,12,12,12,12,12,63,14,14,28,15,0,0,127,192,240, + 240,48,56,48,24,48,28,48,28,254,28,48,28,48,28,48, + 28,48,24,48,56,48,240,255,192,15,19,38,15,0,0,2, + 32,15,240,11,224,16,0,0,0,248,126,56,24,60,24,62, + 24,54,24,55,24,51,152,49,152,49,216,48,248,48,120,48, + 56,48,56,252,24,12,20,40,14,1,0,16,0,60,0,30, + 0,3,0,0,0,0,0,15,128,48,192,96,96,64,96,192, + 48,192,48,192,48,192,48,192,48,192,48,96,96,96,64,48, + 128,31,0,12,20,40,14,1,0,1,0,1,192,7,128,14, + 0,0,0,0,0,15,128,48,192,96,96,64,96,192,48,192, + 48,192,48,192,48,192,48,192,48,96,96,96,64,48,128,31, + 0,12,20,40,14,1,0,6,0,15,0,15,128,24,192,32, + 0,0,0,15,128,48,192,96,96,64,96,192,48,192,48,192, + 48,192,48,192,48,192,48,96,96,96,64,48,128,31,0,12, + 19,38,14,1,0,8,64,31,224,55,128,0,0,0,0,15, + 128,48,192,96,96,64,96,192,48,192,48,192,48,192,48,192, + 48,192,48,96,96,96,64,48,128,31,0,12,19,38,14,1, + 0,16,128,57,192,49,192,0,0,0,0,15,128,48,192,96, + 96,64,96,192,48,192,48,192,48,192,48,192,48,192,48,96, + 96,96,64,48,128,31,0,8,7,7,10,1,3,195,102,60, + 24,60,102,195,12,15,30,14,1,255,15,176,16,224,32,224, + 96,224,193,240,195,112,195,48,198,48,204,48,232,32,120,96, + 112,64,112,128,223,0,128,0,15,20,40,15,0,0,4,0, + 14,0,7,0,1,192,0,0,0,0,252,126,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,24, + 24,48,24,32,7,192,15,20,40,15,0,0,0,64,0,240, + 1,224,3,0,0,0,0,0,252,126,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,24,24,48, + 24,32,7,192,15,20,40,15,0,0,1,128,3,128,7,192, + 12,96,0,16,0,0,252,126,48,24,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, + 7,192,15,19,38,15,0,0,4,32,12,112,12,96,0,0, + 0,0,252,126,48,24,48,24,48,24,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,24,48,24,32,7,192,13,20, + 40,14,0,0,0,128,0,224,3,192,7,0,0,0,0,0, + 240,120,56,48,28,96,28,96,14,192,6,128,7,128,3,0, + 3,0,3,0,3,0,3,0,3,0,15,192,12,14,28,13, + 0,0,252,0,48,0,48,0,63,192,48,96,48,48,48,48, + 48,48,48,48,48,96,55,192,48,0,48,0,252,0,11,17, + 34,14,1,0,15,128,16,192,32,96,32,96,96,96,96,96, + 97,192,99,0,99,0,99,0,99,192,97,192,96,224,104,96, + 104,96,108,64,239,128,10,17,34,11,1,0,48,0,120,0, + 24,0,12,0,6,0,0,0,0,0,62,0,99,0,227,0, + 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,17, + 34,11,1,0,7,0,7,0,14,0,12,0,24,0,0,0, + 0,0,62,0,99,0,227,0,3,0,63,0,99,0,195,0, + 195,0,255,192,123,0,10,17,34,11,1,0,12,0,30,0, + 62,0,115,0,65,128,0,0,0,0,62,0,99,0,227,0, + 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,16, + 32,11,1,0,56,128,124,128,127,0,198,0,0,0,0,0, + 62,0,99,0,227,0,3,0,63,0,99,0,195,0,195,0, + 255,192,123,0,10,15,30,11,1,0,99,0,99,128,99,0, + 0,0,0,0,62,0,99,0,227,0,3,0,63,0,99,0, + 195,0,195,0,255,192,123,0,10,16,32,11,1,0,14,0, + 27,0,26,0,28,0,0,0,0,0,62,0,99,0,227,0, + 3,0,63,0,99,0,195,0,195,0,255,192,123,0,15,10, + 20,17,1,0,30,120,119,140,227,6,131,6,31,252,99,0, + 195,0,199,132,253,252,112,240,9,15,30,10,1,251,31,0, + 99,128,65,0,192,0,192,0,192,0,192,0,225,0,126,0, + 60,0,16,0,28,0,12,0,12,0,48,0,9,17,34,11, + 1,0,56,0,56,0,28,0,12,0,6,0,0,0,0,0, + 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, + 127,0,62,0,9,17,34,11,1,0,7,0,7,128,14,0, + 12,0,24,0,0,0,0,0,30,0,99,0,65,128,193,128, + 255,128,192,0,192,0,225,128,127,0,62,0,9,17,34,11, + 1,0,12,0,30,0,63,0,51,0,96,128,0,0,0,0, + 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, + 127,0,62,0,9,15,30,11,1,0,97,128,99,128,99,0, + 0,0,0,0,30,0,99,0,65,128,193,128,255,128,192,0, + 192,0,225,128,127,0,62,0,6,17,17,7,0,0,224,112, + 48,24,8,0,0,56,120,24,24,24,24,24,24,24,124,6, + 17,17,7,1,0,28,60,56,96,64,0,0,112,240,48,48, + 48,48,48,48,48,248,7,17,17,7,0,0,56,56,124,198, + 130,0,0,56,120,24,24,24,24,24,24,24,124,8,15,15, + 7,255,0,99,227,195,0,0,28,60,12,12,12,12,12,12, + 12,62,10,17,34,12,1,0,24,0,125,192,15,128,31,0, + 51,128,3,128,1,192,31,192,97,192,64,192,192,192,192,192, + 192,192,192,128,225,128,113,0,30,0,12,16,32,13,1,0, + 28,64,62,64,63,128,99,0,0,0,0,0,51,128,247,192, + 56,192,48,192,48,192,48,192,48,192,48,192,48,192,249,240, + 10,17,34,12,1,0,56,0,56,0,28,0,6,0,2,0, + 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, + 192,192,96,128,113,0,30,0,10,17,34,12,1,0,3,128, + 7,0,6,0,12,0,8,0,0,0,0,0,30,0,33,128, + 65,128,192,192,192,192,192,192,192,192,96,128,113,0,30,0, + 10,17,34,12,1,0,12,0,30,0,31,0,49,128,96,128, + 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, + 192,192,96,128,113,0,30,0,10,16,32,12,1,0,24,64, + 60,128,127,128,71,0,0,0,0,0,30,0,33,128,65,128, + 192,192,192,192,192,192,192,192,96,128,113,0,30,0,10,15, + 30,12,1,0,49,128,115,128,97,128,0,0,0,0,30,0, + 33,128,65,128,192,192,192,192,192,192,192,192,96,128,113,0, + 30,0,8,8,8,10,1,2,24,24,16,255,0,24,24,24, + 10,12,24,12,1,255,0,64,30,192,51,128,99,192,199,192, + 196,192,200,192,248,192,113,128,113,0,94,0,128,0,12,17, + 34,13,1,0,56,0,28,0,12,0,6,0,2,0,0,0, + 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, + 97,192,127,240,60,192,12,17,34,13,1,0,3,128,7,128, + 6,0,12,0,8,0,0,0,0,0,97,192,224,192,96,192, + 96,192,96,192,96,192,96,192,97,192,127,240,60,192,12,17, + 34,13,1,0,14,0,14,0,31,0,49,128,32,128,0,0, + 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, + 97,192,127,240,60,192,12,15,30,13,1,0,49,128,113,128, + 97,128,0,0,0,0,97,192,224,192,96,192,96,192,96,192, + 96,192,96,192,97,192,127,240,60,192,13,22,44,12,255,251, + 0,192,1,224,1,128,3,0,6,0,0,0,0,0,124,120, + 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, + 3,0,3,0,6,0,70,0,124,0,248,0,11,22,44,13, + 1,251,48,0,240,0,48,0,48,0,48,0,48,0,48,0, + 51,128,63,192,56,224,48,96,48,96,48,96,48,96,48,192, + 63,128,55,0,48,0,48,0,48,0,48,0,252,0,13,20, + 40,12,255,251,24,96,28,224,24,192,0,0,0,0,124,120, + 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, + 3,0,3,0,6,0,70,0,124,0,248,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 14 + Calculated Max Values w=11 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 + Font Bounding box w=36 h=33 x=-12 y=-8 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent= 0 + X Font ascent =14 descent= 0 + Max Font ascent =18 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb14n[448] U8G_SECTION(".progmem.u8g_font_gdb14n") = { + 0,36,33,244,248,14,0,0,0,0,42,57,0,18,252,14, + 0,9,10,20,10,1,8,24,0,24,0,219,0,255,128,60, + 0,62,0,255,0,219,0,24,0,24,0,8,8,8,10,1, + 2,24,24,24,255,24,24,24,24,4,7,7,6,1,252,48, + 240,48,48,32,96,64,7,1,1,8,1,5,254,4,3,3, + 6,1,0,96,240,224,11,22,44,11,0,252,0,96,0,192, + 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, + 6,0,12,0,12,0,28,0,24,0,24,0,56,0,48,0, + 48,0,96,0,96,0,192,0,10,14,28,12,1,0,30,0, + 51,0,97,128,97,128,225,192,225,192,225,192,225,192,225,192, + 225,192,97,128,97,128,51,0,30,0,8,14,14,12,2,0, + 8,120,248,24,24,24,24,24,24,24,24,24,24,255,8,14, + 14,11,2,0,62,103,227,195,3,6,4,12,24,48,33,65, + 255,255,9,14,28,11,1,0,30,0,99,0,227,0,67,0, + 3,0,6,0,31,0,7,128,3,128,1,128,1,128,1,128, + 67,0,190,0,10,14,28,12,1,0,1,0,7,0,7,0, + 15,0,27,0,19,0,51,0,99,0,99,0,255,192,3,0, + 3,0,3,0,15,192,9,14,28,12,1,0,63,128,63,0, + 32,0,96,0,96,0,126,0,67,0,1,128,1,128,1,128, + 1,128,1,128,195,0,62,0,10,14,28,12,1,0,7,0, + 28,0,48,0,96,0,64,0,223,0,225,128,192,192,192,192, + 192,192,192,192,96,128,49,128,30,0,10,14,28,12,1,0, + 127,192,255,128,129,128,129,128,3,0,3,0,2,0,6,0, + 6,0,12,0,12,0,24,0,56,0,48,0,9,14,28,11, + 1,0,62,0,113,128,241,128,241,128,249,128,127,0,63,0, + 63,128,99,128,193,128,193,128,193,128,99,0,62,0,10,14, + 28,12,1,0,31,0,35,128,65,128,192,192,192,192,192,192, + 192,192,97,192,62,192,0,128,1,128,3,0,14,0,56,0 + }; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=19 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=60 + Font Bounding box w=36 h=33 x=-12 y=-8 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb14r[2842] U8G_SECTION(".progmem.u8g_font_gdb14r") = { + 0,36,33,244,248,14,3,134,7,177,32,127,251,19,251,18, + 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, + 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, + 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, + 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, + 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, + 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, + 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, + 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, + 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, + 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, + 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, + 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, + 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, + 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, + 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, + 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, + 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, + 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, + 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, + 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, + 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, + 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, + 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, + 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, + 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, + 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, + 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, + 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, + 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, + 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, + 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, + 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, + 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, + 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, + 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, + 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, + 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, + 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, + 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, + 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, + 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, + 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, + 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, + 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, + 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, + 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, + 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, + 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, + 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, + 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, + 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, + 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, + 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, + 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, + 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, + 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, + 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, + 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, + 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, + 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, + 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, + 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, + 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, + 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, + 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, + 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, + 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, + 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, + 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, + 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, + 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, + 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, + 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, + 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, + 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, + 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, + 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, + 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, + 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, + 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, + 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, + 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, + 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, + 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, + 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, + 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, + 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, + 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, + 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, + 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, + 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, + 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, + 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, + 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, + 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, + 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, + 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, + 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, + 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, + 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, + 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, + 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, + 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, + 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, + 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, + 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, + 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, + 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, + 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, + 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, + 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, + 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, + 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, + 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, + 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, + 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, + 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, + 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, + 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, + 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, + 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, + 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, + 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, + 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, + 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, + 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, + 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, + 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, + 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, + 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, + 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, + 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, + 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, + 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, + 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, + 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, + 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, + 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, + 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, + 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, + 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, + 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, + 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, + 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, + 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, + 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, + 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, + 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, + 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, + 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, + 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, + 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, + 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, + 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, + 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, + 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, + 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, + 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, + 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, + 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, + 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, + 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, + 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, + 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, + 5,48,64,124,128,159,0,135,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 17, '1' Height: 16 + Calculated Max Values w=23 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=69 + Font Bounding box w=42 h=39 x=-14 y=-10 + Calculated Min Values x=-4 y=-7 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =23 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb17[7600] U8G_SECTION(".progmem.u8g_font_gdb17") = { + 0,42,39,242,246,17,4,81,9,172,32,255,250,23,249,21, + 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, + 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, + 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, + 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, + 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, + 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, + 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, + 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, + 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, + 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, + 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, + 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, + 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, + 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, + 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, + 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, + 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, + 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, + 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, + 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, + 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, + 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, + 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, + 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, + 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, + 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, + 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, + 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, + 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, + 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, + 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, + 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, + 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, + 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, + 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, + 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, + 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, + 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, + 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, + 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, + 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, + 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, + 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, + 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, + 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, + 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, + 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, + 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, + 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, + 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, + 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, + 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, + 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, + 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, + 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, + 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, + 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, + 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, + 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, + 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, + 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, + 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, + 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, + 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, + 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, + 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, + 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, + 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, + 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, + 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, + 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, + 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, + 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, + 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, + 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, + 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, + 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, + 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, + 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, + 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, + 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, + 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, + 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, + 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, + 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, + 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, + 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, + 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, + 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, + 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, + 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, + 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, + 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, + 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, + 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, + 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, + 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, + 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, + 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, + 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, + 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, + 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, + 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, + 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, + 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, + 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, + 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, + 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, + 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, + 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, + 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, + 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, + 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, + 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, + 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, + 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, + 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, + 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, + 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, + 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, + 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, + 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, + 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, + 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, + 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, + 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, + 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, + 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, + 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, + 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, + 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, + 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, + 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, + 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, + 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, + 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, + 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, + 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, + 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, + 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, + 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, + 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, + 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, + 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, + 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, + 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, + 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, + 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, + 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, + 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, + 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, + 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, + 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, + 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, + 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, + 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, + 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, + 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, + 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, + 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, + 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, + 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, + 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, + 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, + 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, + 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, + 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, + 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, + 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, + 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, + 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, + 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, + 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, + 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, + 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, + 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, + 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, + 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, + 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, + 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, + 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, + 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, + 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, + 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, + 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, + 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, + 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, + 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, + 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, + 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, + 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, + 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, + 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,7,0,0,4,19,19,8,2,249, + 112,240,240,224,32,96,96,96,96,96,96,112,112,112,240,240, + 240,240,192,10,17,34,14,2,255,12,0,12,0,15,128,63, + 192,109,192,108,192,204,0,204,0,204,0,204,0,204,0,236, + 64,125,192,63,128,30,0,12,0,12,0,13,16,32,14,0, + 0,3,240,6,56,12,16,28,16,28,16,60,0,60,0,60, + 0,255,192,60,0,60,0,60,16,56,24,56,24,127,248,255, + 240,12,11,22,14,1,2,192,48,239,112,112,224,96,96,96, + 96,96,96,96,96,112,224,111,96,192,48,128,16,15,16,32, + 14,255,0,248,126,120,56,60,48,30,48,30,96,15,96,7, + 192,7,192,7,192,3,128,63,248,3,128,3,128,3,128,3, + 128,15,224,2,27,27,6,2,251,192,192,192,192,192,192,192, + 192,192,192,192,192,128,0,0,192,192,192,192,192,192,192,192, + 192,192,192,192,10,19,38,13,2,0,31,0,35,128,97,0, + 113,0,120,0,62,0,127,128,207,128,195,192,225,192,240,192, + 124,192,63,128,31,128,7,128,65,128,65,128,97,0,126,0, + 9,4,8,11,1,14,115,128,247,128,247,128,231,0,18,18, + 54,20,1,0,3,240,0,14,28,0,24,6,0,48,3,0, + 97,241,128,102,57,128,198,16,192,204,0,192,204,0,192,204, + 0,192,204,0,192,204,0,192,102,1,128,103,25,128,49,243, + 0,24,6,0,12,12,0,3,240,0,6,9,9,7,1,8, + 120,216,24,120,216,216,252,0,252,11,12,24,14,1,0,4, + 32,8,96,24,192,49,192,115,128,231,128,231,128,115,128,49, + 192,24,192,8,96,4,32,12,6,12,14,1,2,127,240,128, + 48,0,48,0,48,0,48,0,32,8,1,1,10,1,6,255, + 10,9,18,10,255,10,30,0,97,128,255,128,219,192,222,192, + 220,192,251,192,97,128,30,0,11,2,4,13,1,16,127,224, + 255,224,6,7,7,10,2,10,56,76,204,204,204,200,112,10, + 12,24,11,1,2,12,0,12,0,12,0,12,0,255,192,12, + 0,12,0,12,0,12,0,0,0,0,0,255,192,7,10,10, + 9,1,8,60,102,230,6,12,24,16,50,98,254,7,10,10, + 9,1,8,60,102,70,6,28,6,6,6,142,120,6,6,6, + 9,3,14,56,60,112,96,192,128,15,18,36,15,0,250,24, + 24,248,120,56,56,56,56,56,56,56,56,56,56,56,56,60, + 120,63,248,63,190,55,24,48,0,48,0,56,0,56,0,60, + 0,48,0,15,20,40,17,1,253,15,254,49,248,113,152,225, + 152,225,152,225,152,225,152,113,152,121,152,31,152,1,152,1, + 152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,7, + 254,4,4,4,6,1,7,112,240,240,224,5,6,6,6,1, + 250,32,96,120,56,112,224,7,10,10,9,1,8,24,248,24, + 24,24,24,24,24,24,126,7,9,9,8,0,8,56,76,198, + 198,198,228,120,0,254,11,12,24,14,2,0,132,0,198,0, + 99,0,115,128,57,192,61,224,61,224,57,192,115,128,99,0, + 198,0,132,0,15,16,32,17,1,0,48,6,240,12,48,24, + 48,48,48,48,48,96,48,192,253,128,1,140,3,28,6,44, + 12,44,12,76,24,254,48,12,96,62,15,16,32,17,1,0, + 48,6,240,12,48,24,48,24,48,48,48,96,48,192,252,192, + 1,188,3,102,6,70,6,12,12,8,24,16,48,34,112,126, + 15,16,32,17,1,0,56,6,204,12,12,24,56,48,12,48, + 12,96,140,192,121,128,1,140,3,28,6,60,12,44,12,76, + 24,254,48,12,96,62,10,19,38,12,1,249,14,0,30,0, + 30,0,28,0,0,0,6,0,6,0,6,0,14,0,12,0, + 24,0,56,0,112,0,224,0,224,192,225,192,225,192,243,128, + 62,0,17,23,69,17,0,0,6,0,0,15,0,0,7,128, + 0,1,192,0,0,96,0,0,0,0,0,192,0,1,192,0, + 3,192,0,3,224,0,2,224,0,6,240,0,6,112,0,6, + 112,0,12,120,0,12,56,0,15,248,0,24,28,0,24,28, + 0,16,28,0,48,14,0,48,14,0,252,63,128,17,23,69, + 17,0,0,0,48,0,0,120,0,1,224,0,3,128,0,2, + 0,0,0,0,0,0,192,0,1,192,0,3,192,0,3,224, + 0,2,224,0,6,240,0,6,112,0,6,112,0,12,120,0, + 12,56,0,15,248,0,24,28,0,24,28,0,16,28,0,48, + 14,0,48,14,0,252,63,128,17,23,69,17,0,0,1,192, + 0,3,224,0,7,240,0,14,48,0,8,24,0,0,0,0, + 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, + 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, + 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, + 252,63,128,17,22,66,17,0,0,7,140,0,15,248,0,15, + 240,0,16,96,0,0,0,0,0,192,0,1,192,0,3,192, + 0,3,224,0,2,224,0,6,240,0,6,112,0,6,112,0, + 12,120,0,12,56,0,15,248,0,24,28,0,24,28,0,16, + 28,0,48,14,0,48,14,0,252,63,128,17,22,66,17,0, + 0,7,56,0,15,120,0,15,120,0,6,48,0,0,0,0, + 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, + 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, + 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, + 252,63,128,17,23,69,17,0,0,3,224,0,6,96,0,6, + 96,0,7,96,0,3,128,0,0,0,0,0,192,0,1,192, + 0,3,192,0,3,224,0,2,224,0,6,240,0,6,112,0, + 6,112,0,12,120,0,12,56,0,15,248,0,24,28,0,24, + 28,0,16,28,0,48,14,0,48,14,0,252,63,128,21,17, + 51,22,0,0,7,255,240,1,248,48,1,248,48,3,184,48, + 3,184,48,3,56,0,7,56,0,6,56,0,7,255,224,12, + 56,64,12,56,0,28,56,0,24,56,0,24,56,8,48,56, + 24,48,56,24,248,255,248,14,23,46,15,1,250,7,240,24, + 120,48,48,112,0,96,0,96,0,224,0,224,0,224,0,224, + 0,224,0,240,0,112,0,120,8,60,60,63,240,15,192,1, + 0,3,128,3,192,1,192,3,128,6,0,13,23,46,14,1, + 0,24,0,60,0,94,0,7,0,1,128,0,0,255,240,120, + 48,120,48,120,32,120,32,120,0,120,0,120,0,127,192,120, + 128,120,0,120,0,120,0,120,16,120,24,120,48,255,240,13, + 23,46,14,1,0,1,192,3,224,7,128,14,0,24,0,0, + 0,255,240,120,48,120,48,120,32,120,32,120,0,120,0,120, + 0,127,192,120,128,120,0,120,0,120,0,120,16,120,24,120, + 48,255,240,13,23,46,14,1,0,7,0,15,0,31,128,56, + 192,32,96,0,0,255,240,120,48,120,48,120,32,120,32,120, + 0,120,0,120,0,127,192,120,128,120,0,120,0,120,0,120, + 16,120,24,120,48,255,240,13,22,44,14,1,0,28,224,61, + 224,61,224,24,192,0,0,255,240,120,48,120,48,120,32,120, + 32,120,0,120,0,120,0,127,192,120,128,120,0,120,0,120, + 0,120,16,120,24,120,48,255,240,8,23,23,9,0,0,96, + 240,120,28,6,0,127,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,127,8,23,23,9,1,0,6,31,60,112, + 64,0,254,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,254,9,23,46,9,0,0,28,0,62,0,126,0,227, + 0,129,128,0,0,127,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,127,0,9,22,44,9,0,0,115,128,247, + 128,247,128,99,0,0,0,127,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,127,0,16,17,34,17,0,0,63, + 224,248,120,56,60,56,30,56,30,56,15,56,15,56,15,255, + 143,56,15,56,15,56,15,56,30,56,30,56,60,56,120,255, + 224,18,22,66,18,0,0,3,204,0,7,248,0,15,248,0, + 8,112,0,0,0,0,248,15,192,124,3,0,60,3,0,62, + 3,0,63,3,0,55,131,0,51,195,0,51,195,0,49,227, + 0,48,243,0,48,123,0,48,123,0,48,63,0,48,31,0, + 48,15,0,48,7,0,252,3,0,15,23,46,17,1,0,12, + 0,30,0,15,0,3,128,0,64,0,0,7,192,24,112,48, + 56,48,28,96,28,96,14,224,14,224,14,224,14,224,14,224, + 14,224,12,112,28,112,24,56,24,28,32,7,192,15,23,46, + 17,1,0,0,96,0,240,3,224,7,0,4,0,0,0,7, + 192,24,112,48,56,48,28,96,28,96,14,224,14,224,14,224, + 14,224,14,224,14,224,12,112,28,112,24,56,24,28,32,7, + 192,15,23,46,17,1,0,3,128,7,192,15,224,28,96,16, + 48,0,0,7,192,24,112,48,56,48,28,96,28,96,14,224, + 14,224,14,224,14,224,14,224,14,224,12,112,28,112,24,56, + 24,28,32,7,192,15,22,44,17,1,0,15,24,31,240,31, + 224,48,192,0,0,7,192,24,112,48,56,48,28,96,28,96, + 14,224,14,224,14,224,14,224,14,224,14,224,12,112,28,112, + 24,56,24,28,32,7,192,15,22,44,17,1,0,14,112,30, + 240,30,240,12,96,0,0,7,192,24,112,48,56,48,28,96, + 28,96,14,224,14,224,14,224,14,224,14,224,14,224,12,112, + 28,112,24,56,24,28,32,7,192,9,9,18,11,1,3,193, + 128,227,128,119,0,62,0,28,0,62,0,119,0,227,128,193, + 128,15,18,36,17,1,255,7,238,8,124,56,56,48,60,112, + 124,96,254,224,238,225,206,227,142,227,14,231,14,254,12,124, + 28,124,24,56,48,124,32,239,192,128,0,17,23,69,18,0, + 0,3,0,0,7,128,0,3,192,0,0,224,0,0,48,0, + 0,0,0,254,31,128,56,6,0,56,6,0,56,6,0,56, + 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, + 0,56,6,0,56,6,0,56,6,0,56,4,0,28,12,0, + 14,24,0,3,224,0,17,23,69,18,0,0,0,56,0,0, + 124,0,0,240,0,1,192,0,3,0,0,0,0,0,254,31, + 128,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, + 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, + 6,0,56,6,0,56,4,0,28,12,0,14,24,0,3,224, + 0,17,23,69,18,0,0,0,224,0,1,224,0,3,240,0, + 7,24,0,4,12,0,0,0,0,254,31,128,56,6,0,56, + 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, + 0,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, + 56,4,0,28,12,0,14,24,0,3,224,0,17,22,66,18, + 0,0,3,156,0,7,188,0,7,188,0,3,24,0,0,0, + 0,254,31,128,56,6,0,56,6,0,56,6,0,56,6,0, + 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, + 6,0,56,6,0,56,6,0,56,4,0,28,12,0,14,24, + 0,3,224,0,16,23,46,17,0,0,0,48,0,248,1,224, + 3,128,2,0,0,0,248,31,60,14,28,12,14,24,15,24, + 7,48,7,48,3,224,3,224,1,192,1,192,1,192,1,192, + 1,192,1,192,1,192,7,240,14,17,34,15,0,0,254,0, + 56,0,56,0,63,192,56,112,56,56,56,28,56,28,56,28, + 56,28,56,56,56,112,59,224,56,0,56,0,56,0,254,0, + 15,20,40,17,0,0,1,240,6,60,12,28,24,14,24,14, + 56,14,56,28,56,56,56,96,56,192,56,192,56,224,56,120, + 56,60,56,30,56,14,57,6,57,134,57,132,249,248,12,20, + 40,13,1,0,56,0,60,0,28,0,14,0,6,0,3,0, + 0,0,0,0,31,128,113,192,241,192,129,192,3,192,63,192, + 113,192,225,192,225,192,227,240,253,224,121,128,12,20,40,13, + 1,0,3,192,3,192,7,128,7,0,14,0,12,0,0,0, + 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, + 225,192,225,192,227,240,253,224,121,128,12,20,40,13,1,0, + 6,0,15,0,31,0,59,128,48,192,96,64,0,0,0,0, + 31,128,113,192,241,192,129,192,3,192,63,192,113,192,225,192, + 225,192,227,240,253,224,121,128,12,19,38,13,1,0,0,32, + 28,96,63,192,71,192,67,128,0,0,0,0,31,128,113,192, + 241,192,129,192,3,192,63,192,113,192,225,192,225,192,227,240, + 253,224,121,128,12,18,36,13,1,0,57,192,61,224,57,192, + 57,192,0,0,0,0,31,128,113,192,241,192,129,192,3,192, + 63,192,113,192,225,192,225,192,227,240,253,224,121,128,12,19, + 38,13,1,0,15,0,27,0,25,128,27,0,30,0,0,0, + 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, + 225,192,225,192,227,240,253,224,121,128,18,12,36,20,1,0, + 7,158,0,31,227,0,56,225,128,112,193,128,64,193,128,15, + 255,0,56,192,0,96,192,0,224,224,128,227,241,192,254,127, + 0,124,62,0,11,18,36,12,1,250,15,224,48,192,112,192, + 96,64,224,0,224,0,224,0,224,0,240,64,120,192,63,128, + 31,0,4,0,14,0,15,0,7,0,14,0,24,0,11,20, + 40,13,1,0,60,0,60,0,30,0,14,0,7,0,1,0, + 0,0,0,0,15,0,49,192,112,192,96,224,224,224,255,192, + 224,0,224,0,240,64,120,224,63,192,31,0,11,20,40,13, + 1,0,1,192,3,192,3,128,7,0,6,0,12,0,0,0, + 0,0,15,0,49,192,112,192,96,224,224,224,255,192,224,0, + 224,0,240,64,120,224,63,192,31,0,11,20,40,13,1,0, + 6,0,15,0,31,128,29,128,48,192,32,96,0,0,0,0, + 15,0,49,192,112,192,96,224,224,224,255,192,224,0,224,0, + 240,64,120,224,63,192,31,0,11,18,36,13,1,0,24,192, + 61,224,61,224,57,192,0,0,0,0,15,0,49,192,112,192, + 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, + 31,0,8,20,20,8,0,0,240,240,120,24,12,4,0,0, + 28,124,28,28,28,28,28,28,28,28,28,127,7,20,20,8, + 1,0,14,30,28,56,48,96,0,0,56,248,56,56,56,56, + 56,56,56,56,56,254,9,20,40,8,0,0,24,0,60,0, + 126,0,118,0,195,0,129,128,0,0,0,0,28,0,124,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,127,0,9,18,36,8,0,0,115,128,247,128,247,128, + 231,0,0,0,0,0,28,0,124,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,127,0,12,19, + 38,14,1,0,12,0,126,112,15,224,15,128,61,192,0,224, + 0,224,15,224,49,240,96,240,96,112,224,112,224,112,224,112, + 224,96,224,96,112,192,56,128,31,0,15,19,38,16,1,0, + 0,16,14,48,31,224,51,224,33,192,0,0,0,0,24,240, + 251,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,254,254,12,20,40,14,1,0,28,0,60,0, + 14,0,6,0,3,0,1,128,0,0,0,0,15,128,49,192, + 112,224,96,112,224,112,224,112,224,112,224,112,224,96,112,96, + 56,192,31,0,12,20,40,14,1,0,1,192,3,224,3,128, + 7,0,6,0,12,0,0,0,0,0,15,128,49,192,112,224, + 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, + 31,0,12,20,40,14,1,0,7,0,15,0,15,128,29,192, + 56,192,32,96,0,0,0,0,15,128,49,192,112,224,96,112, + 224,112,224,112,224,112,224,112,224,96,112,96,56,192,31,0, + 12,19,38,14,1,0,0,48,30,32,63,224,39,192,65,128, + 0,0,0,0,15,128,49,192,112,224,96,112,224,112,224,112, + 224,112,224,112,224,96,112,96,56,192,31,0,12,18,36,14, + 1,0,28,224,61,224,61,224,24,192,0,0,0,0,15,128, + 49,192,112,224,96,112,224,112,224,112,224,112,224,112,224,96, + 112,96,56,192,31,0,10,10,20,11,1,2,12,0,12,0, + 12,0,0,0,255,192,0,0,0,0,12,0,12,0,12,0, + 12,14,28,14,1,255,0,16,15,176,49,224,112,224,97,240, + 227,112,230,112,230,112,236,112,248,96,112,224,120,192,95,0, + 128,0,15,20,40,15,0,0,14,0,15,0,7,0,3,128, + 1,128,0,192,0,0,0,0,56,56,248,248,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,250,63,190,30,56, + 15,20,40,15,0,0,0,224,0,240,1,192,1,128,3,0, + 2,0,0,0,0,0,56,56,248,248,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,250,63,190,30,56,15,20, + 40,15,0,0,3,128,3,192,7,192,14,224,28,112,24,16, + 0,0,0,0,56,56,248,248,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,250,63,190,30,56,15,18,36,15, + 0,0,14,112,14,112,30,240,14,112,0,0,0,0,56,56, + 248,248,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,250,63,190,30,56,15,26,52,14,255,250,0,112,0,240, + 0,224,1,192,1,128,3,0,0,0,0,0,126,62,60,24, + 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, + 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0, + 13,26,52,15,1,250,24,0,248,0,56,0,56,0,56,0, + 56,0,56,0,56,0,57,224,63,240,60,112,56,56,56,24, + 56,24,56,24,56,24,56,16,60,48,63,224,59,192,56,0, + 56,0,56,0,56,0,56,0,254,0,15,24,48,14,255,250, + 7,56,15,120,15,120,14,112,0,0,0,0,126,62,60,24, + 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, + 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0 + }; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 16 + Calculated Max Values w=12 h=25 x= 2 y= 9 dx=14 dy= 0 ascent=21 len=50 + Font Bounding box w=42 h=39 x=-14 y=-10 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =16 descent= 0 + X Font ascent =16 descent= 0 + Max Font ascent =21 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb17n[542] U8G_SECTION(".progmem.u8g_font_gdb17n") = { + 0,42,39,242,246,16,0,0,0,0,42,57,0,21,251,16, + 0,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, + 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, + 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, + 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, + 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, + 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, + 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, + 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, + 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, + 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, + 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, + 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, + 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, + 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, + 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, + 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, + 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, + 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, + 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, + 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, + 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, + 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, + 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, + 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, + 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, + 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, + 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, + 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, + 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, + 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, + 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, + 0,96,0,224,0,224,1,192,3,128,30,0,56,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 17, '1' Height: 16 + Calculated Max Values w=23 h=27 x= 3 y=14 dx=23 dy= 0 ascent=22 len=69 + Font Bounding box w=42 h=39 x=-14 y=-10 + Calculated Min Values x=-4 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =22 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb17r[3540] U8G_SECTION(".progmem.u8g_font_gdb17r") = { + 0,42,39,242,246,17,4,81,9,172,32,127,250,22,250,21, + 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, + 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, + 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, + 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, + 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, + 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, + 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, + 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, + 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, + 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, + 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, + 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, + 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, + 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, + 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, + 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, + 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, + 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, + 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, + 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, + 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, + 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, + 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, + 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, + 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, + 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, + 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, + 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, + 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, + 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, + 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, + 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, + 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, + 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, + 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, + 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, + 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, + 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, + 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, + 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, + 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, + 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, + 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, + 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, + 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, + 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, + 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, + 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, + 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, + 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, + 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, + 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, + 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, + 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, + 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, + 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, + 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, + 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, + 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, + 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, + 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, + 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, + 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, + 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, + 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, + 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, + 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, + 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, + 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, + 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, + 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, + 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, + 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, + 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, + 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, + 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, + 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, + 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, + 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, + 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, + 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, + 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, + 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, + 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, + 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, + 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, + 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, + 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, + 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, + 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, + 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, + 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, + 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, + 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, + 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, + 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, + 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, + 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, + 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, + 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, + 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, + 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, + 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, + 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, + 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, + 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, + 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, + 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, + 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, + 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, + 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, + 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, + 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, + 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, + 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, + 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, + 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, + 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, + 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, + 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, + 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, + 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, + 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, + 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, + 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, + 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, + 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, + 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, + 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, + 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, + 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, + 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, + 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, + 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, + 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, + 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, + 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, + 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, + 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, + 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, + 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, + 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, + 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, + 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, + 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, + 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, + 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, + 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, + 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, + 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, + 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, + 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, + 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, + 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, + 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, + 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, + 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, + 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, + 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, + 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, + 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, + 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, + 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, + 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, + 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, + 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, + 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, + 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, + 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, + 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, + 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, + 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, + 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, + 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, + 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, + 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, + 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, + 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, + 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, + 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, + 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, + 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, + 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, + 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, + 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, + 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, + 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, + 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, + 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, + 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, + 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, + 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, + 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, + 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, + 192,131,128,255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 20, '1' Height: 19 + Calculated Max Values w=27 h=32 x= 3 y=18 dx=28 dy= 0 ascent=28 len=112 + Font Bounding box w=49 h=47 x=-16 y=-12 + Calculated Min Values x=-5 y=-9 dx= 0 dy= 0 + Pure Font ascent =20 descent=-8 + X Font ascent =25 descent=-8 + Max Font ascent =28 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb20[10077] U8G_SECTION(".progmem.u8g_font_gdb20") = { + 0,49,47,240,244,20,5,86,12,137,32,255,248,28,247,25, + 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, + 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, + 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, + 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, + 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, + 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, + 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, + 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, + 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, + 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, + 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, + 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, + 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, + 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, + 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, + 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, + 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, + 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, + 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, + 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, + 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, + 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, + 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, + 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, + 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, + 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, + 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, + 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, + 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, + 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, + 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, + 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, + 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, + 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, + 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, + 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, + 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, + 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, + 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, + 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, + 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, + 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, + 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, + 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, + 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, + 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, + 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, + 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, + 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, + 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, + 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, + 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, + 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, + 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, + 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, + 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, + 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, + 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, + 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, + 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, + 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, + 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, + 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, + 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, + 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, + 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, + 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, + 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, + 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, + 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, + 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, + 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, + 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, + 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, + 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, + 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, + 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, + 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, + 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, + 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, + 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, + 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, + 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, + 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, + 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, + 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, + 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, + 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, + 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, + 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, + 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, + 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, + 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, + 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, + 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, + 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, + 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, + 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, + 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, + 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, + 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, + 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, + 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, + 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, + 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, + 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, + 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, + 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, + 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, + 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, + 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, + 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, + 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, + 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, + 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, + 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, + 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, + 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, + 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, + 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, + 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, + 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, + 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, + 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, + 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, + 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, + 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, + 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, + 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, + 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, + 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, + 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, + 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, + 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, + 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, + 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, + 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, + 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, + 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, + 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, + 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, + 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, + 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, + 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, + 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, + 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, + 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, + 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, + 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, + 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, + 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, + 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, + 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, + 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, + 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, + 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, + 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, + 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, + 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, + 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, + 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, + 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, + 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, + 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, + 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, + 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, + 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, + 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, + 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, + 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, + 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, + 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, + 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, + 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, + 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, + 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, + 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, + 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, + 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, + 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, + 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, + 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, + 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, + 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, + 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, + 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, + 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, + 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, + 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, + 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, + 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, + 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, + 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, + 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, + 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, + 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, + 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, + 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, + 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, + 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, + 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, + 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, + 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, + 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, + 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, + 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, + 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, + 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, + 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, + 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, + 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, + 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, + 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, + 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, + 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, + 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, + 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, + 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, + 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, + 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, + 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, + 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, + 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, + 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, + 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, + 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, + 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, + 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, + 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, + 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, + 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, + 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, + 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, + 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, + 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, + 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, + 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, + 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, + 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, + 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, + 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, + 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, + 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, + 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, + 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, + 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,8,0,0,5,24, + 24,10,2,247,112,248,248,248,112,0,0,48,48,48,48,112, + 112,112,112,120,120,120,120,120,120,120,120,96,13,20,40,16, + 2,255,3,0,3,0,3,0,15,248,31,248,59,56,115,16, + 227,0,227,0,227,0,227,0,227,0,227,0,115,24,123,48, + 63,224,31,192,3,0,3,0,3,0,14,19,38,16,1,0, + 1,252,6,60,14,28,28,12,28,8,60,0,60,0,60,0, + 60,0,255,224,60,0,60,0,60,0,60,4,56,4,56,12, + 127,252,255,252,128,48,12,13,26,16,2,3,192,48,239,112, + 112,224,48,192,96,96,96,96,96,96,96,96,112,224,57,192, + 111,96,192,48,128,16,18,19,57,16,255,0,248,31,192,252, + 15,128,62,6,0,30,14,0,31,12,0,15,156,0,7,152, + 0,7,248,0,3,240,0,3,240,0,3,240,0,1,224,0, + 63,255,0,1,224,0,1,224,0,1,224,0,1,224,0,3, + 240,0,7,248,0,2,32,32,7,3,250,64,192,192,192,192, + 192,192,192,192,192,192,192,192,192,128,0,0,64,192,192,192, + 192,192,192,192,192,192,192,192,192,192,128,12,22,44,16,2, + 0,15,192,49,224,112,224,112,64,124,0,126,0,63,128,127, + 192,99,224,225,240,224,240,240,112,252,112,127,112,63,224,31, + 192,7,224,65,224,64,224,224,224,240,192,127,0,11,5,10, + 13,1,17,112,224,241,224,241,224,241,224,225,192,21,21,63, + 23,1,0,1,252,0,7,7,0,12,1,128,24,0,192,48, + 126,96,96,199,48,97,134,48,195,2,24,199,0,24,199,0, + 24,199,0,24,199,0,24,199,0,24,199,128,24,99,199,48, + 97,252,48,48,248,96,16,0,64,8,1,128,6,3,0,1, + 252,0,7,11,11,9,1,9,60,204,140,60,108,204,206,252, + 0,0,254,14,15,30,16,1,0,2,8,6,28,12,56,28, + 112,56,112,120,224,241,224,243,192,241,224,120,224,56,112,28, + 112,12,56,6,24,2,12,13,7,14,16,2,3,255,248,255, + 248,0,24,0,24,0,24,0,24,0,16,10,2,4,11,1, + 7,255,192,255,128,12,11,22,11,0,11,31,128,48,192,126, + 96,219,48,219,48,222,48,219,48,217,48,100,224,48,192,31, + 128,14,3,6,16,1,18,127,248,127,252,255,248,7,8,8, + 11,2,12,60,126,70,198,198,204,252,120,12,15,30,13,1, + 2,6,0,6,0,6,0,6,0,6,0,127,240,255,224,6, + 0,6,0,6,0,6,0,4,0,0,0,255,240,255,224,8, + 11,11,11,2,10,62,115,227,3,6,6,12,24,49,97,255, + 9,11,22,11,1,10,62,0,231,0,231,0,7,0,28,0, + 63,0,7,128,3,128,3,128,199,0,126,0,8,8,8,10, + 3,16,28,30,63,60,120,112,224,192,18,23,69,19,1,248, + 28,6,0,252,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,62,62,0,63,255,128,63,223,192,51,142,0,48,0,0, + 48,0,0,56,0,0,56,0,0,56,0,0,60,0,0,62, + 0,0,48,0,0,17,24,72,19,1,252,15,255,128,60,127, + 0,120,102,0,112,102,0,240,102,0,240,102,0,240,102,0, + 240,102,0,120,102,0,120,102,0,60,102,0,15,230,0,0, + 102,0,0,102,0,0,102,0,0,102,0,0,102,0,0,102, + 0,0,102,0,0,102,0,0,102,0,0,102,0,0,255,0, + 1,255,128,5,5,5,7,1,8,112,248,248,248,112,7,7, + 7,7,0,249,24,48,60,62,30,60,240,8,11,11,11,2, + 10,8,248,24,24,24,24,24,24,24,24,255,7,11,11,9, + 1,9,56,76,198,198,198,198,198,108,56,0,254,13,15,30, + 16,2,0,129,0,195,128,97,128,112,192,56,224,60,112,30, + 120,30,120,30,120,60,112,56,224,112,192,97,192,193,128,131, + 0,17,19,57,20,2,0,48,3,128,240,3,0,48,6,0, + 48,12,0,48,28,0,48,24,0,48,48,0,48,96,0,120, + 224,0,132,193,0,1,135,0,3,15,0,7,11,0,6,19, + 0,12,51,0,24,63,128,56,67,0,48,3,0,224,15,128, + 17,19,57,20,2,0,48,1,128,240,3,0,48,7,0,48, + 6,0,48,12,0,48,24,0,48,56,0,48,48,0,120,96, + 0,132,192,0,1,207,0,1,153,128,3,49,128,7,1,0, + 14,3,0,12,6,0,24,12,0,56,24,128,112,63,128,18, + 19,57,20,1,0,60,1,192,102,1,128,70,3,0,12,6, + 0,28,14,0,6,12,0,6,24,0,134,48,0,124,112,0, + 0,96,128,0,195,128,1,135,128,3,133,128,3,9,128,6, + 25,128,12,31,192,28,33,128,24,1,128,112,7,192,13,23, + 46,15,1,248,7,0,15,128,15,128,15,128,7,0,0,0, + 0,0,3,0,3,0,3,0,7,0,6,0,14,0,28,0, + 60,0,120,0,112,0,240,24,240,120,240,120,240,120,120,240, + 63,192,20,28,84,20,0,0,3,0,0,7,128,0,7,192, + 0,15,224,0,1,224,0,0,112,0,0,24,0,0,0,0, + 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, + 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, + 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, + 24,3,128,56,3,192,56,3,192,254,15,240,20,28,84,20, + 0,0,0,8,0,0,30,0,0,62,0,0,124,0,0,240, + 0,1,224,0,1,128,0,0,0,0,0,32,0,0,240,0, + 0,240,0,1,248,0,1,248,0,1,248,0,3,188,0,3, + 60,0,3,60,0,7,30,0,6,30,0,14,31,0,15,255, + 0,12,7,0,28,7,128,24,7,128,24,3,128,56,3,192, + 56,3,192,254,15,240,20,27,81,20,0,0,0,224,0,0, + 240,0,1,248,0,3,252,0,7,14,0,4,6,0,0,0, + 0,0,32,0,0,240,0,0,240,0,1,248,0,1,248,0, + 1,248,0,3,188,0,3,60,0,3,60,0,7,30,0,6, + 30,0,14,31,0,15,255,0,12,7,0,28,7,128,24,7, + 128,24,3,128,56,3,192,56,3,192,254,15,240,20,26,78, + 20,0,0,3,195,0,7,254,0,7,254,0,12,124,0,8, + 0,0,0,0,0,0,32,0,0,240,0,0,240,0,1,248, + 0,1,248,0,1,248,0,3,188,0,3,60,0,3,60,0, + 7,30,0,6,30,0,14,31,0,15,255,0,12,7,0,28, + 7,128,24,7,128,24,3,128,56,3,192,56,3,192,254,15, + 240,20,26,78,20,0,0,6,12,0,15,30,0,15,30,0, + 15,30,0,14,28,0,0,0,0,0,32,0,0,240,0,0, + 240,0,1,248,0,1,248,0,1,248,0,3,188,0,3,60, + 0,3,60,0,7,30,0,6,30,0,14,31,0,15,255,0, + 12,7,0,28,7,128,24,7,128,24,3,128,56,3,192,56, + 3,192,254,15,240,20,27,81,20,0,0,0,112,0,1,152, + 0,1,152,0,1,144,0,0,224,0,0,0,0,0,0,0, + 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, + 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, + 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, + 24,3,128,56,3,192,56,3,192,254,15,240,25,20,80,26, + 0,0,3,255,255,0,0,255,3,0,0,255,3,0,0,239, + 3,0,0,239,3,0,1,207,0,0,1,207,0,0,3,143, + 0,0,3,143,0,0,3,255,254,0,7,15,4,0,6,15, + 0,0,14,15,0,0,14,15,0,0,12,15,0,0,28,15, + 0,0,24,15,0,128,24,15,1,128,56,31,1,128,254,63, + 255,128,16,27,54,18,1,249,1,254,6,31,28,14,56,4, + 56,0,112,0,112,0,240,0,240,0,240,0,240,0,240,0, + 240,0,248,0,120,0,124,1,126,7,63,254,31,252,15,240, + 0,192,1,192,1,240,0,240,0,240,1,224,3,128,15,28, + 56,17,1,0,8,0,28,0,62,0,31,0,7,128,1,192, + 0,64,0,0,255,252,124,12,60,12,60,12,60,12,60,0, + 60,0,60,0,60,0,63,240,60,32,60,0,60,0,60,0, + 60,0,60,0,60,2,60,6,124,14,255,254,15,28,56,17, + 1,0,0,96,0,240,1,248,1,240,3,192,7,0,12,0, + 0,0,255,252,124,12,60,12,60,12,60,12,60,0,60,0, + 60,0,60,0,63,240,60,32,60,0,60,0,60,0,60,0, + 60,0,60,2,60,6,124,14,255,254,15,27,54,17,1,0, + 3,128,7,192,15,192,31,224,28,112,48,24,0,0,255,252, + 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, + 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,2, + 60,6,124,14,255,254,15,26,52,17,1,0,56,112,56,112, + 120,240,120,240,48,96,0,0,255,252,124,12,60,12,60,12, + 60,12,60,0,60,0,60,0,60,0,63,240,60,32,60,0, + 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, + 9,28,56,10,0,0,32,0,240,0,248,0,124,0,30,0, + 15,0,3,0,0,0,127,128,63,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,63,0,127,128,10,28, + 56,10,1,0,2,0,7,128,15,192,31,0,62,0,120,0, + 96,0,0,0,255,0,126,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,126,0,255,0,10,27,54,10, + 0,0,12,0,30,0,63,0,127,128,225,192,192,64,0,0, + 127,128,63,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,63,0,127,128,11,26,52,10,255,0,112,224, + 241,224,241,224,241,224,96,192,0,0,63,192,31,128,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,31,128, + 63,192,18,20,60,20,1,0,63,240,0,252,60,0,60,14, + 0,60,15,0,60,7,128,60,7,128,60,3,192,60,3,192, + 60,3,192,255,195,192,60,3,192,60,3,192,60,3,192,60, + 3,128,60,7,128,60,7,128,60,15,0,60,14,0,124,28, + 0,255,240,0,19,26,78,21,1,0,3,195,0,7,254,0, + 15,252,0,12,120,0,24,0,0,0,0,0,248,7,224,124, + 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, + 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, + 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, + 7,128,120,7,128,252,1,128,18,28,84,20,1,0,2,0, + 0,15,0,0,15,128,0,7,192,0,3,224,0,0,240,0, + 0,48,0,0,0,0,3,240,0,12,28,0,28,14,0,56, + 7,0,56,7,128,112,7,128,112,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,248,3,128, + 120,7,128,120,7,0,60,15,0,30,30,0,15,248,0,3, + 224,0,18,28,84,20,1,0,0,16,0,0,60,0,0,124, + 0,0,248,0,1,224,0,3,192,0,3,0,0,0,0,0, + 3,240,0,12,28,0,28,14,0,56,7,0,56,7,128,112, + 7,128,112,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,248,3,128,120,7,128,120,7,0, + 60,15,0,30,30,0,15,248,0,3,224,0,18,27,81,20, + 1,0,0,192,0,1,224,0,3,240,0,7,248,0,14,28, + 0,8,12,0,0,0,0,3,240,0,12,28,0,28,14,0, + 56,7,0,56,7,128,112,7,128,112,3,192,240,3,192,240, + 3,192,240,3,192,240,3,192,240,3,192,240,3,192,248,3, + 128,120,7,128,120,7,0,60,15,0,30,30,0,15,248,0, + 3,224,0,18,26,78,20,1,0,3,198,0,15,252,0,15, + 252,0,24,120,0,16,0,0,0,0,0,3,240,0,12,28, + 0,28,14,0,56,7,0,56,7,128,112,7,128,112,3,192, + 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,248,3,128,120,7,128,120,7,0,60,15,0,30,30, + 0,15,248,0,3,224,0,18,26,78,20,1,0,14,28,0, + 30,60,0,30,60,0,30,60,0,28,56,0,0,0,0,3, + 240,0,12,28,0,28,14,0,56,7,0,56,7,128,112,7, + 128,112,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,192,248,3,128,120,7,128,120,7,0,60, + 15,0,30,30,0,15,248,0,3,224,0,11,10,20,13,1, + 4,96,96,240,224,57,192,31,128,15,0,15,0,31,128,57, + 192,112,224,224,96,18,21,63,20,1,255,3,241,192,12,31, + 128,28,15,0,56,15,0,56,31,128,112,63,128,112,63,192, + 240,123,192,240,243,192,240,227,192,241,195,192,241,195,192,243, + 131,192,247,3,128,126,7,128,126,7,0,60,7,0,62,14, + 0,127,248,0,227,224,0,128,0,0,19,28,84,21,1,0, + 3,0,0,7,128,0,15,192,0,7,192,0,1,224,0,0, + 112,0,0,24,0,0,0,0,255,7,224,126,3,192,60,1, + 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, + 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, + 1,128,60,1,128,60,3,0,30,3,0,15,6,0,7,252, + 0,3,240,0,19,28,84,21,1,0,0,8,0,0,30,0, + 0,62,0,0,124,0,0,240,0,1,192,0,1,128,0,0, + 0,0,255,7,224,126,3,192,60,1,128,60,1,128,60,1, + 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, + 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, + 3,0,30,3,0,15,6,0,7,252,0,3,240,0,19,27, + 81,21,1,0,0,224,0,0,240,0,1,248,0,3,252,0, + 7,14,0,12,6,0,0,0,0,255,7,224,126,3,192,60, + 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, + 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, + 60,1,128,60,1,128,60,3,0,30,3,0,15,6,0,7, + 252,0,3,240,0,19,26,78,21,1,0,6,12,0,15,30, + 0,15,30,0,15,30,0,14,28,0,0,0,0,255,7,224, + 126,3,192,60,1,128,60,1,128,60,1,128,60,1,128,60, + 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, + 128,60,1,128,60,1,128,60,1,128,60,3,0,30,3,0, + 15,6,0,7,252,0,3,240,0,19,28,84,20,0,0,0, + 8,0,0,30,0,0,62,0,0,124,0,0,240,0,1,192, + 0,1,128,0,0,0,0,252,7,224,60,3,192,30,3,128, + 15,3,0,15,7,0,7,134,0,3,142,0,3,204,0,1, + 220,0,1,248,0,0,248,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,1,248,0, + 3,252,0,16,20,40,18,1,0,255,128,126,0,60,0,60, + 0,63,240,60,60,60,30,60,15,60,15,60,15,60,15,60, + 14,60,30,60,60,63,240,60,0,60,0,60,0,126,0,255, + 128,18,24,72,21,1,0,0,248,0,3,254,0,15,31,0, + 14,15,128,28,7,128,28,7,128,60,7,128,60,7,128,60, + 15,0,60,60,0,60,112,0,60,224,0,60,224,0,60,240, + 0,60,252,0,60,127,0,60,63,128,60,15,192,60,7,192, + 61,3,192,60,129,192,60,193,128,124,225,128,252,254,0,14, + 24,48,16,1,0,28,0,62,0,30,0,15,0,7,0,3, + 128,1,128,0,192,0,0,31,192,112,224,240,240,192,240,0, + 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, + 252,126,248,56,96,14,24,48,16,1,0,0,224,1,240,1, + 224,3,192,3,128,3,0,7,0,6,0,0,0,31,192,112, + 224,240,240,192,240,0,240,3,240,31,240,63,240,120,240,240, + 240,240,240,240,240,251,252,126,248,56,96,14,23,46,16,1, + 0,3,128,7,128,15,192,31,224,28,224,56,48,32,16,0, + 0,31,192,112,224,240,240,192,240,0,240,3,240,31,240,63, + 240,120,240,240,240,240,240,240,240,251,252,126,248,56,96,14, + 22,44,16,1,0,14,8,31,24,63,240,99,240,64,224,0, + 0,0,0,31,192,112,224,240,240,192,240,0,240,3,240,31, + 240,63,240,120,240,240,240,240,240,240,240,251,252,126,248,56, + 96,14,22,44,16,1,0,56,112,120,240,120,240,120,240,48, + 96,0,0,0,0,31,192,112,224,240,240,192,240,0,240,3, + 240,31,240,63,240,120,240,240,240,240,240,240,240,251,252,126, + 248,56,96,14,22,44,16,1,0,3,128,4,192,12,192,12, + 192,7,128,0,0,0,0,31,192,112,224,240,240,192,240,0, + 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, + 252,126,248,56,96,22,15,45,23,1,0,3,227,224,31,252, + 112,60,252,56,120,120,60,112,120,60,128,120,60,7,255,248, + 28,120,0,120,120,0,112,120,0,240,124,8,249,254,28,255, + 191,248,127,31,240,60,7,192,14,22,44,15,1,249,3,248, + 12,120,56,48,112,16,112,0,240,0,240,0,240,0,240,0, + 240,0,248,8,124,28,63,248,31,240,15,192,3,0,3,192, + 3,224,5,224,1,224,3,192,14,0,13,24,48,15,1,0, + 14,0,30,0,31,0,15,0,7,128,3,128,1,192,0,192, + 0,0,7,192,24,224,56,112,112,120,112,120,240,120,255,240, + 240,0,240,0,240,0,248,8,124,56,127,240,63,224,15,128, + 13,24,48,15,1,0,0,224,0,240,1,240,1,224,3,192, + 3,128,7,0,6,0,0,0,7,192,24,224,56,112,112,120, + 112,120,240,120,255,240,240,0,240,0,240,0,248,8,124,56, + 127,240,63,224,15,128,13,23,46,15,1,0,3,128,7,192, + 15,192,15,224,28,112,56,48,48,24,0,0,7,192,24,224, + 56,112,112,120,112,120,240,120,255,240,240,0,240,0,240,0, + 248,8,124,56,127,240,63,224,15,128,13,22,44,15,1,0, + 56,112,56,112,120,240,120,240,48,96,0,0,0,0,7,192, + 24,224,56,112,112,120,112,120,240,120,255,240,240,0,240,0, + 240,0,248,8,124,56,127,240,63,224,15,128,9,24,48,10, + 0,0,112,0,248,0,120,0,60,0,28,0,14,0,6,0, + 2,0,0,0,14,0,126,0,62,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,63,0, + 127,128,9,24,48,10,1,0,7,0,15,128,15,0,30,0, + 28,0,56,0,48,0,32,0,0,0,28,0,252,0,124,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,126,0,255,0,10,23,46,10,0,0,28,0, + 30,0,63,0,127,0,115,128,193,192,128,64,0,0,14,0, + 126,0,62,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,63,0,127,128,11,22,44,10, + 255,0,112,224,241,224,241,224,241,224,225,192,0,0,0,0, + 7,0,63,0,31,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,31,128,63,192,14,23, + 46,16,1,0,14,0,63,28,95,248,3,224,15,224,60,224, + 0,112,0,56,15,248,24,248,56,124,112,60,112,60,240,60, + 240,60,240,60,240,60,240,56,240,56,120,112,120,112,60,96, + 15,128,17,22,66,19,1,0,7,6,0,15,204,0,31,252, + 0,17,248,0,48,112,0,0,0,0,0,0,0,12,60,0, + 252,252,0,127,254,0,63,30,0,62,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,126,63,0,255,127,128,15,24,48,17,1,0, + 14,0,31,0,15,0,7,0,3,128,1,128,0,192,0,192, + 0,0,7,224,24,112,56,56,112,60,112,30,240,30,240,30, + 240,30,240,30,240,30,240,28,120,28,56,56,28,48,15,192, + 15,24,48,17,1,0,0,240,0,248,0,240,1,224,1,192, + 3,128,3,0,6,0,0,0,7,224,24,112,56,56,112,60, + 112,30,240,30,240,30,240,30,240,30,240,30,240,28,120,28, + 56,56,28,48,15,192,15,23,46,17,1,0,3,128,3,192, + 7,224,15,224,30,112,24,56,48,24,0,0,7,224,24,112, + 56,56,112,60,112,30,240,30,240,30,240,30,240,30,240,30, + 240,28,120,28,56,56,28,48,15,192,15,22,44,17,1,0, + 14,12,31,136,31,248,49,240,32,224,0,0,0,0,7,224, + 24,112,56,56,112,60,112,30,240,30,240,30,240,30,240,30, + 240,30,240,28,120,28,56,56,28,48,15,192,15,22,44,17, + 1,0,24,48,60,120,60,120,56,112,56,112,0,0,0,0, + 7,224,24,112,56,56,112,60,112,30,240,30,240,30,240,30, + 240,30,240,30,240,28,120,28,56,56,28,48,15,192,12,12, + 24,13,1,3,6,0,14,0,14,0,12,0,0,0,255,240, + 255,224,0,0,6,0,14,0,14,0,12,0,15,16,32,17, + 1,255,7,238,24,124,56,60,112,124,112,254,240,254,241,222, + 243,158,243,158,247,30,254,28,124,28,124,56,124,48,111,192, + 128,0,17,24,72,18,0,0,7,0,0,15,128,0,7,128, + 0,3,192,0,1,192,0,0,224,0,0,96,0,0,48,0, + 0,0,0,28,14,0,252,126,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,126,0,63,255,128,31,223,0,15,12,0, + 17,24,72,18,0,0,0,56,0,0,124,0,0,120,0,0, + 240,0,0,224,0,0,192,0,1,128,0,1,128,0,0,0, + 0,28,14,0,252,126,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,126,0,63,255,128,31,223,0,15,12,0,17,23, + 69,18,0,0,0,192,0,1,224,0,3,240,0,7,248,0, + 7,56,0,14,12,0,8,4,0,0,0,0,28,14,0,252, + 126,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,126,0, + 63,255,128,31,223,0,15,12,0,17,22,66,18,0,0,14, + 28,0,30,60,0,30,60,0,30,60,0,12,24,0,0,0, + 0,0,0,0,28,14,0,252,126,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, + 0,17,32,96,16,255,248,0,56,0,0,62,0,0,124,0, + 0,120,0,0,240,0,0,224,0,0,192,0,1,128,0,0, + 0,0,127,15,128,62,7,0,30,6,0,30,6,0,15,14, + 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, + 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, + 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, + 0,254,0,0,120,0,0,16,32,64,18,1,248,12,0,252, + 0,124,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 120,61,252,63,254,62,62,60,31,60,15,60,15,60,15,60, + 15,60,15,60,14,63,30,63,252,61,248,60,240,60,0,60, + 0,60,0,60,0,60,0,60,0,127,0,255,128,17,30,90, + 16,255,248,6,12,0,15,30,0,15,30,0,14,28,0,14, + 28,0,0,0,0,0,0,0,127,15,128,62,7,0,30,6, + 0,30,6,0,15,14,0,15,12,0,7,140,0,7,152,0, + 7,152,0,3,248,0,3,240,0,1,240,0,1,240,0,1, + 224,0,0,224,0,0,192,0,0,192,0,1,192,0,1,128, + 0,39,128,0,127,0,0,254,0,0,120,0,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 19 + Calculated Max Values w=14 h=30 x= 2 y=11 dx=17 dy= 0 ascent=25 len=60 + Font Bounding box w=49 h=47 x=-16 y=-12 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =19 descent= 0 + X Font ascent =19 descent= 0 + Max Font ascent =25 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb20n[624] U8G_SECTION(".progmem.u8g_font_gdb20n") = { + 0,49,47,240,244,19,0,0,0,0,42,57,0,25,250,19, + 0,12,13,26,14,1,11,3,0,15,0,70,64,102,112,246, + 240,63,192,15,0,63,224,254,240,230,112,70,32,7,0,14, + 0,12,12,24,13,1,3,6,0,6,0,6,0,6,0,6, + 0,127,240,255,224,6,0,6,0,6,0,6,0,6,0,6, + 10,10,9,2,250,56,252,252,60,60,56,56,112,96,192,10, + 2,4,11,1,7,255,192,255,128,5,5,5,9,2,255,112, + 248,248,248,112,14,30,60,15,1,251,0,28,0,56,0,56, + 0,120,0,112,0,112,0,224,0,224,0,224,1,192,1,192, + 3,128,3,128,3,128,7,0,7,0,7,0,14,0,14,0, + 28,0,28,0,28,0,56,0,56,0,120,0,112,0,112,0, + 224,0,224,0,192,0,14,18,36,16,1,0,7,192,24,224, + 56,112,112,120,112,120,240,60,240,60,240,60,240,60,240,60, + 240,60,240,60,240,56,112,56,120,56,56,112,28,96,15,128, + 13,19,38,16,2,0,1,128,15,128,127,128,239,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,63,224,127,248,13,19,38,16, + 1,0,15,224,56,240,120,120,240,120,112,120,0,120,0,240, + 0,240,1,224,1,192,3,128,7,0,14,0,28,8,28,8, + 56,24,127,248,255,248,255,248,13,19,38,16,1,0,31,128, + 121,224,112,240,240,240,64,240,0,240,1,224,7,192,15,192, + 3,240,0,240,0,120,0,120,0,120,0,120,128,240,192,240, + 127,224,31,128,14,19,38,17,1,0,0,48,1,240,1,240, + 3,240,7,240,6,240,12,240,12,240,24,240,56,240,48,240, + 96,240,255,252,255,248,0,240,0,240,0,240,1,248,7,252, + 13,19,38,16,1,0,63,248,63,240,63,224,112,0,112,0, + 96,0,96,0,127,128,127,224,97,240,0,248,0,120,0,120, + 0,120,0,120,0,112,128,240,193,224,127,128,14,20,40,16, + 1,0,0,112,3,240,7,128,15,0,28,0,60,0,120,0, + 120,0,115,224,255,240,252,120,240,124,240,60,240,60,240,60, + 112,60,120,56,56,56,28,112,7,192,13,19,38,16,2,0, + 255,248,255,248,255,240,192,48,128,96,128,96,0,224,0,192, + 1,192,1,128,3,128,3,128,7,0,7,0,14,0,14,0, + 30,0,28,0,56,0,14,19,38,16,1,0,15,192,24,240, + 48,120,112,120,112,120,120,120,126,240,63,192,31,224,15,240, + 63,248,120,252,248,124,240,60,240,60,240,56,112,56,56,112, + 31,192,14,20,40,16,1,255,7,192,24,240,56,120,112,120, + 240,60,240,60,240,60,240,60,248,60,124,124,63,252,31,60, + 0,56,0,120,0,112,0,240,1,224,7,128,63,0,56,0 + }; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 20, '1' Height: 19 + Calculated Max Values w=27 h=32 x= 3 y=16 dx=28 dy= 0 ascent=26 len=112 + Font Bounding box w=49 h=47 x=-16 y=-12 + Calculated Min Values x=-5 y=-8 dx= 0 dy= 0 + Pure Font ascent =20 descent=-8 + X Font ascent =25 descent=-8 + Max Font ascent =26 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb20r[4680] U8G_SECTION(".progmem.u8g_font_gdb20r") = { + 0,49,47,240,244,20,5,86,12,137,32,127,248,26,248,25, + 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, + 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, + 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, + 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, + 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, + 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, + 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, + 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, + 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, + 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, + 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, + 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, + 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, + 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, + 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, + 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, + 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, + 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, + 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, + 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, + 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, + 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, + 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, + 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, + 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, + 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, + 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, + 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, + 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, + 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, + 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, + 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, + 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, + 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, + 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, + 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, + 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, + 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, + 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, + 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, + 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, + 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, + 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, + 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, + 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, + 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, + 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, + 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, + 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, + 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, + 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, + 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, + 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, + 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, + 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, + 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, + 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, + 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, + 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, + 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, + 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, + 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, + 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, + 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, + 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, + 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, + 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, + 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, + 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, + 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, + 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, + 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, + 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, + 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, + 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, + 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, + 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, + 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, + 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, + 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, + 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, + 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, + 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, + 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, + 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, + 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, + 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, + 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, + 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, + 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, + 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, + 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, + 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, + 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, + 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, + 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, + 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, + 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, + 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, + 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, + 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, + 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, + 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, + 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, + 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, + 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, + 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, + 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, + 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, + 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, + 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, + 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, + 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, + 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, + 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, + 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, + 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, + 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, + 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, + 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, + 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, + 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, + 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, + 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, + 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, + 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, + 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, + 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, + 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, + 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, + 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, + 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, + 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, + 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, + 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, + 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, + 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, + 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, + 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, + 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, + 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, + 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, + 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, + 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, + 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, + 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, + 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, + 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, + 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, + 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, + 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, + 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, + 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, + 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, + 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, + 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, + 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, + 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, + 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, + 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, + 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, + 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, + 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, + 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, + 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, + 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, + 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, + 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, + 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, + 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, + 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, + 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, + 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, + 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, + 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, + 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, + 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, + 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, + 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, + 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, + 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, + 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, + 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, + 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, + 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, + 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, + 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, + 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, + 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, + 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, + 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, + 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, + 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, + 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, + 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, + 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, + 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, + 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, + 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, + 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, + 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, + 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, + 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, + 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, + 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, + 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, + 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, + 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, + 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, + 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, + 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, + 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, + 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, + 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, + 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, + 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, + 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, + 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, + 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, + 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, + 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, + 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, + 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, + 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, + 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, + 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, + 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, + 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, + 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, + 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, + 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, + 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, + 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, + 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, + 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, + 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, + 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, + 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, + 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, + 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, + 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, + 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, + 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, + 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, + 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, + 136,71,240,131,240,128,224,255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=34 h=41 x= 4 y=23 dx=35 dy= 0 ascent=34 len=136 + Font Bounding box w=61 h=57 x=-20 y=-14 + Calculated Min Values x=-6 y=-11 dx= 0 dy= 0 + Pure Font ascent =25 descent=-9 + X Font ascent =31 descent=-9 + Max Font ascent =34 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb25[14643] U8G_SECTION(".progmem.u8g_font_gdb25") = { + 0,61,57,236,242,25,7,167,18,92,32,255,247,34,245,31, + 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, + 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, + 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, + 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, + 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, + 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, + 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, + 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, + 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, + 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, + 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, + 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, + 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, + 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, + 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, + 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, + 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, + 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, + 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, + 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, + 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, + 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, + 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, + 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, + 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, + 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, + 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, + 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, + 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, + 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, + 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, + 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, + 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, + 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, + 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, + 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, + 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, + 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, + 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, + 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, + 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, + 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, + 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, + 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, + 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, + 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, + 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, + 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, + 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, + 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, + 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, + 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, + 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, + 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, + 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, + 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, + 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, + 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, + 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, + 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, + 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, + 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, + 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, + 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, + 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, + 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, + 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, + 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, + 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, + 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, + 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, + 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, + 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, + 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, + 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, + 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, + 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, + 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, + 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, + 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, + 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, + 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, + 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, + 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, + 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, + 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, + 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, + 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, + 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, + 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, + 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, + 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, + 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, + 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, + 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, + 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, + 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, + 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, + 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, + 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, + 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, + 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, + 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, + 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, + 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, + 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, + 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, + 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, + 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, + 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, + 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, + 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, + 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, + 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, + 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, + 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, + 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, + 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, + 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, + 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, + 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, + 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, + 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, + 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, + 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, + 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, + 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, + 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, + 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, + 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, + 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, + 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, + 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, + 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, + 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, + 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, + 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, + 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, + 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, + 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, + 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, + 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, + 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, + 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, + 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, + 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, + 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, + 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, + 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, + 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, + 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, + 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, + 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, + 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, + 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, + 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, + 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, + 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, + 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, + 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, + 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, + 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, + 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, + 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, + 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, + 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, + 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, + 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, + 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, + 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, + 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, + 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, + 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, + 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, + 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, + 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, + 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, + 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, + 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, + 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, + 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, + 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, + 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, + 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, + 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, + 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, + 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, + 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, + 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, + 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, + 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, + 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, + 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, + 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, + 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, + 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, + 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, + 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, + 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, + 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, + 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, + 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, + 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, + 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, + 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, + 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, + 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, + 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, + 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, + 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, + 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, + 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, + 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, + 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, + 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, + 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, + 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, + 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, + 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, + 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, + 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, + 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, + 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, + 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, + 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, + 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, + 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, + 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, + 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, + 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, + 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, + 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, + 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, + 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, + 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, + 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, + 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, + 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, + 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, + 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, + 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, + 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, + 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, + 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, + 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, + 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, + 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, + 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, + 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, + 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, + 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, + 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, + 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, + 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, + 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, + 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, + 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, + 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, + 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, + 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, + 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, + 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, + 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, + 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, + 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, + 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, + 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, + 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, + 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, + 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, + 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, + 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, + 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, + 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, + 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, + 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, + 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, + 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, + 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, + 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, + 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, + 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, + 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, + 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, + 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, + 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, + 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, + 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, + 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, + 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, + 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, + 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, + 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, + 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, + 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, + 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, + 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, + 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, + 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, + 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, + 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, + 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, + 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, + 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, + 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, + 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, + 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, + 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, + 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, + 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, + 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, + 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, + 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, + 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, + 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, + 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, + 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, + 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, + 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, + 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, + 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, + 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, + 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, + 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, + 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, + 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, + 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, + 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, + 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, + 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, + 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, + 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, + 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, + 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, + 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, + 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, + 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, + 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, + 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, + 0,99,255,0,192,254,0,128,56,0,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,10,0, + 0,6,29,29,12,3,245,120,252,252,252,248,112,0,16,48, + 56,56,120,120,120,120,120,120,120,120,120,120,120,124,124,252, + 252,252,248,192,16,25,50,20,2,255,0,192,1,192,1,192, + 1,248,7,255,31,255,61,223,121,198,121,198,113,192,241,192, + 241,192,241,192,241,192,241,192,241,192,121,195,125,199,63,206, + 31,252,15,248,3,192,1,192,1,192,1,128,19,25,75,20, + 1,255,0,127,0,1,255,192,3,199,192,7,131,192,7,1, + 192,15,1,128,15,1,128,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,127,252,0,255,248,0,31,0,0,31, + 0,0,31,0,0,31,0,0,30,0,96,30,0,192,30,0, + 192,63,255,192,127,255,192,255,255,192,64,31,128,17,16,48, + 20,1,4,64,0,128,224,1,128,115,243,128,63,255,0,30, + 30,0,28,14,0,56,7,0,56,7,0,56,7,0,56,7, + 0,56,7,0,28,14,0,62,31,0,127,255,128,243,243,128, + 96,1,128,22,24,72,20,254,0,254,3,252,255,3,252,31, + 0,240,31,128,224,15,193,192,7,193,192,7,227,128,3,227, + 128,3,247,128,1,247,0,0,255,0,0,254,0,0,254,0, + 0,124,0,31,255,240,31,255,224,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, + 128,3,41,41,9,3,248,96,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,128,0,0,0,64,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192, + 16,28,56,20,2,0,7,224,31,252,60,124,120,56,120,24, + 124,24,127,0,63,192,63,240,127,248,243,252,240,254,240,63, + 240,31,248,15,126,15,127,15,63,206,15,254,3,252,0,254, + 48,126,48,62,48,30,56,30,60,60,63,248,15,224,14,6, + 12,16,1,21,112,56,120,60,248,124,248,124,240,120,112,56, + 27,26,104,30,1,0,0,63,128,0,1,255,240,0,7,192, + 124,0,15,0,30,0,30,0,15,0,60,31,135,128,56,127, + 227,128,112,225,193,192,113,193,193,192,225,192,193,224,227,128, + 128,224,227,128,0,224,227,128,0,224,227,128,0,224,227,128, + 0,224,227,128,0,224,225,192,1,224,113,224,33,192,112,240, + 113,192,56,127,227,128,60,31,7,128,30,0,15,0,15,0, + 30,0,7,192,124,0,1,255,240,0,0,63,128,0,9,14, + 28,11,1,11,30,0,62,0,103,0,231,0,7,0,63,0, + 103,0,231,0,231,0,255,128,119,0,0,0,255,128,255,128, + 17,18,54,21,1,0,0,128,128,1,129,128,3,3,0,7, + 7,0,14,14,0,30,30,0,60,60,0,124,124,0,248,248, + 0,252,248,0,124,124,0,60,60,0,30,30,0,14,14,0, + 7,7,0,3,3,0,1,129,128,0,128,128,17,9,27,20, + 2,3,255,255,128,255,255,128,0,3,128,0,3,128,0,3, + 128,0,3,128,0,3,128,0,3,128,0,3,0,12,2,4, + 14,1,9,127,240,255,240,13,15,30,14,1,14,15,128,31, + 192,48,96,96,48,95,16,137,136,137,136,143,136,139,8,137, + 8,73,144,124,240,48,96,31,192,15,128,16,3,6,20,2, + 23,255,255,255,255,255,254,10,10,20,14,2,15,15,0,63, + 128,115,192,97,192,225,192,225,192,225,128,243,128,127,0,60, + 0,15,18,36,16,1,3,1,128,3,128,3,128,3,128,3, + 128,3,128,127,254,255,252,3,128,3,128,3,128,3,128,3, + 128,3,0,0,0,0,0,127,254,255,252,11,15,30,13,1, + 12,7,192,31,224,56,224,120,224,112,224,0,192,1,192,3, + 128,3,0,6,0,12,0,24,32,48,96,127,224,255,224,11, + 15,30,13,0,12,7,128,31,224,56,224,56,224,32,224,1, + 192,3,128,7,192,0,224,0,224,0,224,128,224,225,192,127, + 192,31,0,9,10,20,13,4,20,14,0,31,128,31,128,63, + 0,62,0,60,0,120,0,112,0,224,0,64,0,22,27,81, + 23,1,247,14,0,96,254,7,224,254,3,224,62,3,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,62,3,224,63,7,224,63,143,224,63,255,228, + 63,251,252,59,241,248,57,225,224,56,0,0,56,0,0,60, + 0,0,60,0,0,60,0,0,62,0,0,63,0,0,62,0, + 0,48,0,0,22,30,90,24,1,251,3,255,252,31,255,252, + 63,29,240,124,28,224,124,28,224,248,28,224,248,28,224,248, + 28,224,248,28,224,248,28,224,124,28,224,126,28,224,63,28, + 224,31,252,224,3,252,224,0,28,224,0,28,224,0,28,224, + 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, + 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,127, + 248,0,255,252,6,6,6,8,1,11,56,124,252,252,252,120, + 8,9,9,9,1,247,24,56,60,63,127,31,30,252,224,10, + 15,30,14,2,12,6,0,62,0,254,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63, + 0,255,192,9,14,28,11,1,11,30,0,63,0,119,0,227, + 128,227,128,227,128,227,128,227,128,119,0,126,0,60,0,0, + 0,255,128,255,128,17,18,54,21,2,0,64,64,0,224,224, + 0,112,112,0,56,56,0,60,60,0,30,30,0,31,31,0, + 15,143,128,15,143,128,15,143,128,15,143,128,31,31,0,30, + 30,0,60,60,0,56,56,0,112,112,0,96,96,0,192,192, + 0,22,24,72,25,2,0,12,0,24,252,0,56,28,0,112, + 28,0,224,28,1,192,28,1,192,28,3,128,28,7,0,28, + 6,0,28,14,0,62,28,0,255,184,0,0,56,112,0,112, + 240,0,225,240,1,193,112,1,195,112,3,134,112,7,4,112, + 14,15,252,14,31,248,28,0,112,56,0,112,112,1,252,21, + 24,72,25,2,0,12,0,56,252,0,112,28,0,112,28,0, + 224,28,1,192,28,3,128,28,3,128,28,7,0,28,14,0, + 28,28,0,62,28,0,255,184,0,0,113,240,0,227,248,0, + 230,56,1,206,56,3,128,48,7,0,96,7,0,224,14,0, + 192,28,1,136,60,7,8,56,15,248,112,15,248,23,24,72, + 25,1,0,31,0,12,63,128,28,115,128,56,227,128,112,7, + 0,224,31,0,224,3,129,192,3,131,128,3,131,0,135,135, + 0,255,14,0,60,28,0,0,28,56,0,56,120,0,112,248, + 0,224,184,0,225,184,1,195,56,3,130,56,7,7,254,7, + 15,252,14,0,56,28,0,56,56,0,254,16,29,58,18,1, + 245,3,192,7,224,7,224,7,224,7,192,3,128,0,0,0, + 0,1,192,1,192,1,192,1,192,3,192,3,128,7,128,15, + 0,31,0,62,0,60,0,124,0,248,0,248,7,248,31,248, + 31,248,31,252,30,126,60,63,248,15,224,25,34,136,25,0, + 0,0,192,0,0,3,224,0,0,3,240,0,0,3,248,0, + 0,0,252,0,0,0,62,0,0,0,15,0,0,0,2,0, + 0,0,0,0,0,0,4,0,0,0,30,0,0,0,62,0, + 0,0,126,0,0,0,127,0,0,0,111,0,0,0,239,128, + 0,0,239,128,0,0,199,128,0,1,199,192,0,1,199,192, + 0,1,131,192,0,3,131,224,0,3,131,224,0,3,255,224, + 0,7,255,240,0,7,0,240,0,6,0,248,0,14,0,248, + 0,14,0,120,0,12,0,124,0,28,0,124,0,28,0,124, + 0,255,129,255,0,255,129,255,128,25,34,136,25,0,0,0, + 1,128,0,0,3,192,0,0,7,224,0,0,15,192,0,0, + 31,0,0,0,124,0,0,0,240,0,0,0,64,0,0,0, + 0,0,0,0,4,0,0,0,30,0,0,0,62,0,0,0, + 126,0,0,0,127,0,0,0,111,0,0,0,239,128,0,0, + 239,128,0,0,199,128,0,1,199,192,0,1,199,192,0,1, + 131,192,0,3,131,224,0,3,131,224,0,3,255,224,0,7, + 255,240,0,7,0,240,0,6,0,248,0,14,0,248,0,14, + 0,120,0,12,0,124,0,28,0,124,0,28,0,124,0,255, + 129,255,0,255,129,255,128,25,34,136,25,0,0,0,28,0, + 0,0,62,0,0,0,127,0,0,0,255,128,0,1,255,128, + 0,1,227,192,0,3,128,224,0,2,0,64,0,0,0,0, + 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, + 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, + 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, + 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, + 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, + 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, + 0,255,129,255,128,25,33,132,25,0,0,0,248,48,0,1, + 254,240,0,3,255,224,0,3,255,192,0,6,31,128,0,6, + 3,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, + 30,0,0,0,62,0,0,0,126,0,0,0,127,0,0,0, + 111,0,0,0,239,128,0,0,239,128,0,0,199,128,0,1, + 199,192,0,1,199,192,0,1,131,192,0,3,131,224,0,3, + 131,224,0,3,255,224,0,7,255,240,0,7,0,240,0,6, + 0,248,0,14,0,248,0,14,0,120,0,12,0,124,0,28, + 0,124,0,28,0,124,0,255,129,255,0,255,129,255,128,25, + 32,128,25,0,0,1,192,224,0,3,193,224,0,7,195,224, + 0,7,195,224,0,3,193,224,0,1,129,192,0,0,0,0, + 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, + 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, + 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, + 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, + 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, + 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, + 0,255,129,255,128,25,34,136,25,0,0,0,30,0,0,0, + 127,0,0,0,119,0,0,0,103,0,0,0,231,0,0,0, + 119,0,0,0,126,0,0,0,56,0,0,0,0,0,0,0, + 4,0,0,0,30,0,0,0,62,0,0,0,126,0,0,0, + 127,0,0,0,111,0,0,0,239,128,0,0,239,128,0,0, + 199,128,0,1,199,192,0,1,199,192,0,1,131,192,0,3, + 131,224,0,3,131,224,0,3,255,224,0,7,255,240,0,7, + 0,240,0,6,0,248,0,14,0,248,0,14,0,120,0,12, + 0,124,0,28,0,124,0,28,0,124,0,255,129,255,0,255, + 129,255,128,32,25,100,32,0,0,0,255,255,252,0,255,255, + 252,0,31,240,28,0,61,240,12,0,61,240,12,0,57,240, + 12,0,121,240,12,0,113,240,0,0,241,240,0,0,225,240, + 0,0,225,240,0,1,255,255,240,1,255,255,240,3,193,240, + 32,3,129,240,0,3,129,240,0,7,129,240,0,7,1,240, + 0,15,1,240,0,14,1,240,3,14,1,240,3,30,1,240, + 6,28,1,240,14,255,7,255,254,255,15,255,254,20,34,102, + 22,1,247,0,127,128,3,255,240,7,135,224,15,1,224,30, + 0,192,60,0,64,60,0,0,124,0,0,120,0,0,120,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,252,0,0,124,0,0,126,0,0,127, + 0,96,63,129,224,31,255,192,15,255,0,7,254,0,1,240, + 0,0,224,0,0,248,0,0,252,0,1,252,0,0,124,0, + 0,120,0,1,240,0,1,192,0,19,34,102,21,1,0,6, + 0,0,31,0,0,31,128,0,31,192,0,7,224,0,1,240, + 0,0,120,0,0,16,0,0,0,0,255,255,192,255,255,192, + 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, + 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, + 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, + 255,224,255,255,192,19,34,102,21,1,0,0,12,0,0,31, + 0,0,63,0,0,126,0,0,248,0,1,224,0,3,128,0, + 2,0,0,0,0,0,255,255,192,255,255,192,62,1,192,30, + 1,192,30,1,128,30,1,128,30,0,128,30,0,0,30,0, + 0,30,0,0,30,0,0,31,255,0,31,254,0,30,6,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,96,30,0,96,30,0,224,63,1,224,255,255,224,255,255, + 192,19,34,102,21,1,0,0,224,0,1,240,0,3,248,0, + 7,252,0,15,252,0,15,30,0,28,7,0,16,2,0,0, + 0,0,255,255,192,255,255,192,62,1,192,30,1,192,30,1, + 128,30,1,128,30,0,128,30,0,0,30,0,0,30,0,0, + 30,0,0,31,255,0,31,254,0,30,6,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,96,30,0, + 96,30,0,224,63,1,224,255,255,224,255,255,192,19,32,96, + 21,1,0,14,7,0,30,15,0,31,15,128,30,15,0,30, + 15,0,12,6,0,0,0,0,255,255,192,255,255,192,62,1, + 192,30,1,192,30,1,128,30,1,128,30,0,128,30,0,0, + 30,0,0,30,0,0,30,0,0,31,255,0,31,254,0,30, + 6,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,96,30,0,96,30,0,224,63,1,224,255,255,224, + 255,255,192,12,34,68,13,0,0,48,0,248,0,252,0,254, + 0,63,0,15,128,3,192,0,128,0,0,127,240,63,240,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,63,224,127,240,12,34,68, + 13,1,0,0,192,1,224,3,240,7,224,31,128,62,0,120, + 0,32,0,0,0,255,224,127,224,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,127,192,255,224,13,34,68,13,0,0,7,0,15, + 128,31,192,63,224,127,224,248,240,224,56,128,16,0,0,127, + 240,63,240,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,63,224,127, + 240,14,32,64,13,255,0,56,28,120,60,248,124,248,124,120, + 60,112,56,0,0,63,248,31,248,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, + 192,7,192,31,240,63,248,22,25,75,25,1,0,15,252,0, + 255,255,128,255,15,192,31,3,224,31,1,240,31,1,248,31, + 0,248,31,0,248,31,0,124,31,0,124,31,0,124,255,248, + 124,255,248,124,31,0,124,31,0,124,31,0,124,31,0,120, + 31,0,248,31,0,248,31,1,240,31,1,240,31,3,224,31, + 7,192,127,255,128,255,252,0,25,33,132,27,1,0,0,240, + 48,0,1,254,224,0,3,255,224,0,3,255,192,0,6,31, + 128,0,6,3,0,0,4,0,0,0,0,0,0,0,254,0, + 255,128,255,0,127,0,31,0,28,0,31,128,28,0,31,192, + 28,0,31,192,28,0,31,224,28,0,29,240,28,0,29,248, + 28,0,28,248,28,0,28,124,28,0,28,126,28,0,28,62, + 28,0,28,31,28,0,28,15,156,0,28,15,156,0,28,7, + 220,0,28,3,252,0,28,3,252,0,28,1,252,0,28,0, + 252,0,28,0,252,0,28,0,124,0,127,0,60,0,255,128, + 12,0,23,34,102,25,1,0,1,128,0,7,192,0,7,224, + 0,7,240,0,1,248,0,0,124,0,0,30,0,0,4,0, + 0,0,0,0,126,0,3,255,192,7,135,224,14,1,240,30, + 0,248,60,0,248,60,0,124,124,0,124,120,0,126,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,252,0,60,124,0,124,124,0,120,62,0,120,62, + 0,240,31,1,224,15,195,192,7,255,0,0,252,0,23,34, + 102,25,1,0,0,3,0,0,7,192,0,15,192,0,31,128, + 0,62,0,0,120,0,0,224,0,0,128,0,0,0,0,0, + 126,0,3,255,192,7,135,224,14,1,240,30,0,248,60,0, + 248,60,0,124,124,0,124,120,0,126,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,252, + 0,60,124,0,124,124,0,120,62,0,120,62,0,240,31,1, + 224,15,195,192,7,255,0,0,252,0,23,34,102,25,1,0, + 0,56,0,0,124,0,0,254,0,1,255,0,3,255,0,3, + 199,128,7,1,192,4,0,128,0,0,0,0,126,0,3,255, + 192,7,135,224,14,1,240,30,0,248,60,0,248,60,0,124, + 124,0,124,120,0,126,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,252,0,60,124,0, + 124,124,0,120,62,0,120,62,0,240,31,1,224,15,195,192, + 7,255,0,0,252,0,23,33,99,25,1,0,1,240,96,3, + 252,224,7,255,192,7,255,128,14,63,128,12,6,0,8,0, + 0,0,0,0,0,126,0,3,255,192,7,135,224,14,1,240, + 30,0,248,60,0,248,60,0,124,124,0,124,120,0,126,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,252,0,60,124,0,124,124,0,120,62,0,120, + 62,0,240,31,1,224,15,195,192,7,255,0,0,252,0,23, + 32,96,25,1,0,3,129,192,7,131,192,7,195,224,7,131, + 192,7,131,192,3,1,128,0,0,0,0,126,0,3,255,192, + 7,135,224,14,1,240,30,0,248,60,0,248,60,0,124,124, + 0,124,120,0,126,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,248,0,62,248,0,62,252,0,60,124,0,124, + 124,0,120,62,0,120,62,0,240,31,1,224,15,195,192,7, + 255,0,0,252,0,13,12,24,17,2,5,96,48,240,120,120, + 240,61,224,31,192,15,128,15,128,31,192,57,224,120,240,240, + 120,96,48,23,26,78,25,1,255,0,126,30,3,255,252,7, + 135,248,14,3,240,30,1,248,60,1,252,60,3,252,124,7, + 252,120,15,254,248,15,126,248,30,62,248,62,62,248,60,62, + 248,120,62,248,240,62,248,240,62,253,224,60,127,192,124,127, + 128,120,127,128,120,63,0,240,31,129,224,63,195,192,127,255, + 0,240,252,0,192,0,0,25,34,136,27,1,0,0,192,0, + 0,3,224,0,0,3,240,0,0,3,248,0,0,0,252,0, + 0,0,30,0,0,0,7,0,0,0,2,0,0,0,0,0, + 0,255,224,255,128,127,224,255,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,24,0,15,128,56, + 0,15,128,56,0,7,192,112,0,3,224,224,0,1,255,192, + 0,0,127,0,0,25,34,136,27,1,0,0,1,128,0,0, + 3,224,0,0,7,224,0,0,15,192,0,0,31,0,0,0, + 60,0,0,0,112,0,0,0,64,0,0,0,0,0,0,255, + 224,255,128,127,224,255,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,24,0,15,128,56,0,15, + 128,56,0,7,192,112,0,3,224,224,0,1,255,192,0,0, + 127,0,0,25,34,136,27,1,0,0,28,0,0,0,62,0, + 0,0,127,0,0,0,255,128,0,1,255,192,0,1,227,192, + 0,3,128,224,0,2,0,64,0,0,0,0,0,255,224,255, + 128,127,224,255,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,24,0,15,128,56,0,15,128,56, + 0,7,192,112,0,3,224,224,0,1,255,192,0,0,127,0, + 0,25,32,128,27,1,0,1,192,224,0,3,225,240,0,3, + 225,240,0,3,193,224,0,3,193,224,0,1,128,192,0,0, + 0,0,0,255,224,255,128,127,224,255,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, + 0,28,0,31,0,28,0,31,0,28,0,31,0,24,0,15, + 128,56,0,15,128,56,0,7,192,112,0,3,224,224,0,1, + 255,192,0,0,127,0,0,24,34,102,25,0,0,0,1,128, + 0,3,192,0,7,224,0,31,192,0,63,0,0,124,0,0, + 240,0,0,64,0,0,0,0,126,0,255,255,0,255,31,0, + 56,15,128,56,15,192,112,7,192,112,3,224,224,3,224,224, + 1,241,192,1,241,192,0,251,128,0,251,128,0,127,0,0, + 127,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,1,255,192, + 1,255,192,21,25,75,23,1,0,255,224,0,127,224,0,31, + 0,0,31,0,0,31,0,0,31,254,0,31,255,192,31,7, + 224,31,3,240,31,1,248,31,0,248,31,0,248,31,0,248, + 31,0,248,31,0,248,31,1,240,31,1,240,31,135,224,31, + 127,128,31,62,0,31,0,0,31,0,0,31,0,0,127,224, + 0,255,224,0,23,30,90,25,0,0,0,31,128,0,255,224, + 1,195,240,3,128,248,7,128,248,15,0,124,15,0,124,15, + 0,124,31,0,124,31,0,248,31,1,248,31,7,240,31,15, + 128,31,31,0,31,30,0,31,30,0,31,31,0,31,31,128, + 31,15,224,31,7,248,31,3,252,31,0,252,31,0,126,31, + 48,62,31,48,30,31,48,30,31,56,28,31,60,60,127,63, + 248,255,15,224,19,30,90,20,1,0,7,0,0,31,128,0, + 15,128,0,15,192,0,7,192,0,3,224,0,1,224,0,0, + 224,0,0,112,0,0,48,0,0,0,0,0,0,0,1,248, + 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, + 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, + 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, + 128,62,14,0,19,30,90,20,1,0,0,56,0,0,62,0, + 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,1, + 192,0,3,128,0,1,0,0,0,0,0,0,0,0,1,248, + 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, + 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, + 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, + 128,62,14,0,19,29,87,20,1,0,1,224,0,1,224,0, + 3,240,0,7,248,0,7,252,0,15,60,0,30,30,0,56, + 7,0,16,2,0,0,0,0,0,0,0,1,248,0,15,254, + 0,62,63,0,124,31,0,124,31,0,112,31,0,0,31,0, + 1,255,0,15,255,0,63,31,0,124,31,0,120,31,0,248, + 31,0,248,31,32,248,127,224,255,223,192,127,159,128,62,14, + 0,19,27,81,20,1,0,7,129,128,15,227,0,31,255,0, + 63,254,0,49,252,0,96,56,0,0,0,0,0,0,0,0, + 0,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, + 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, + 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, + 223,192,127,159,128,62,14,0,19,27,81,20,1,0,12,6, + 0,30,15,0,62,31,0,62,31,0,62,31,0,28,14,0, + 0,0,0,0,0,0,0,0,0,1,248,0,15,254,0,62, + 63,0,124,31,0,124,31,0,112,31,0,0,31,0,1,255, + 0,15,255,0,63,31,0,124,31,0,120,31,0,248,31,0, + 248,31,32,248,127,224,255,223,192,127,159,128,62,14,0,19, + 28,84,20,1,0,0,240,0,3,248,0,3,184,0,7,56, + 0,7,56,0,7,56,0,3,240,0,1,224,0,0,0,0, + 0,0,0,1,248,0,15,254,0,62,63,0,124,31,0,124, + 31,0,112,31,0,0,31,0,1,255,0,15,255,0,63,31, + 0,124,31,0,120,31,0,248,31,0,248,31,32,248,127,224, + 255,223,192,127,159,128,62,14,0,27,18,72,29,1,0,0, + 252,62,0,7,254,255,128,15,191,199,128,30,15,131,192,62, + 15,129,192,124,15,1,224,0,15,1,224,0,255,255,224,15, + 255,255,192,31,15,0,0,124,15,0,0,120,15,0,0,248, + 15,128,0,248,31,128,96,252,127,225,224,255,227,255,192,127, + 193,255,0,63,0,124,0,17,27,81,18,1,247,1,252,0, + 7,255,0,31,31,0,60,15,0,60,7,0,120,6,0,120, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,252,0,0,126,1,0,127,7,128,63,254,0,31,252,0, + 7,240,0,1,192,0,1,192,0,1,240,0,3,248,0,0, + 248,0,0,248,0,1,240,0,3,224,0,7,0,0,17,30, + 90,19,1,0,3,128,0,15,128,0,31,192,0,7,192,0, + 3,192,0,1,224,0,0,224,0,0,112,0,0,48,0,0, + 56,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, + 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, + 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, + 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,30, + 90,19,1,0,0,60,0,0,63,0,0,62,0,0,124,0, + 0,120,0,0,240,0,0,240,0,1,224,0,1,192,0,1, + 128,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, + 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, + 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, + 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, + 87,19,1,0,0,224,0,1,240,0,3,248,0,3,248,0, + 7,252,0,15,30,0,14,14,0,28,7,0,24,3,0,0, + 0,0,0,0,0,1,240,0,15,252,0,30,62,0,60,31, + 0,120,15,0,120,15,128,248,15,128,255,255,128,255,254,0, + 248,0,0,248,0,0,248,0,0,252,0,0,126,1,128,127, + 7,0,63,254,0,31,252,0,7,240,0,17,27,81,19,1, + 0,14,7,0,30,15,0,31,15,128,30,15,0,30,15,0, + 28,14,0,0,0,0,0,0,0,0,0,0,1,240,0,15, + 252,0,30,62,0,60,31,0,120,15,0,120,15,128,248,15, + 128,255,255,128,255,254,0,248,0,0,248,0,0,248,0,0, + 252,0,0,126,1,128,127,7,0,63,254,0,31,252,0,7, + 240,0,11,30,60,12,0,0,56,0,252,0,124,0,62,0, + 62,0,31,0,15,0,7,128,3,128,1,128,0,0,0,0, + 7,0,127,0,127,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 127,192,127,224,11,30,60,12,1,0,3,128,3,224,7,224, + 7,192,15,128,15,0,30,0,28,0,24,0,48,0,0,0, + 0,0,14,0,254,0,254,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,255,128,255,192,14,29,58,12,255,0,7,128,7,192, + 15,192,31,224,31,240,60,240,120,120,112,28,192,8,0,0, + 0,0,3,128,63,128,63,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,63,224,63,240,14,27,54,12,255,0,48,24,120,60, + 248,124,248,124,248,124,112,56,0,0,0,0,0,0,3,128, + 63,128,63,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,63,224, + 63,240,18,29,87,20,1,0,3,0,0,31,192,0,63,231, + 192,3,255,0,0,252,0,3,252,0,15,252,0,30,30,0, + 0,31,0,0,15,0,0,15,128,3,231,128,15,255,128,30, + 63,192,60,31,192,124,15,192,120,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,248,7,128,248,7,128,124,15,128, + 124,15,0,126,14,0,63,28,0,15,248,0,3,224,0,22, + 27,81,23,1,0,1,192,64,3,248,224,7,255,192,15,255, + 128,12,127,0,24,30,0,0,0,0,0,0,0,0,0,0, + 14,15,128,254,63,192,254,255,224,63,255,224,63,199,224,63, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, + 255,143,248,255,223,252,19,30,90,21,1,0,3,128,0,15, + 192,0,15,192,0,7,192,0,3,224,0,1,224,0,0,240, + 0,0,112,0,0,56,0,0,16,0,0,0,0,0,0,0, + 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, + 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, + 15,252,0,3,240,0,19,30,90,21,1,0,0,28,0,0, + 63,0,0,63,0,0,62,0,0,124,0,0,120,0,0,240, + 0,0,224,0,1,192,0,0,128,0,0,0,0,0,0,0, + 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, + 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, + 15,252,0,3,240,0,19,29,87,21,1,0,0,240,0,0, + 240,0,1,248,0,3,252,0,7,252,0,7,158,0,15,15, + 0,28,3,0,8,1,128,0,0,0,0,0,0,1,248,0, + 7,254,0,30,31,128,60,15,128,124,7,192,120,7,192,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 192,124,3,192,124,7,128,62,7,128,63,15,0,15,252,0, + 3,240,0,19,27,81,21,1,0,3,128,128,7,241,192,15, + 255,128,31,255,0,24,254,0,48,60,0,0,0,0,0,0, + 0,0,0,0,1,248,0,7,254,0,30,31,128,60,15,128, + 124,7,192,120,7,192,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,192,124,3,192,124,7,128,62,7, + 128,63,15,0,15,252,0,3,240,0,19,27,81,21,1,0, + 14,7,0,15,7,128,31,15,128,31,15,128,30,15,0,14, + 7,0,0,0,0,0,0,0,0,0,0,1,248,0,7,254, + 0,30,31,128,60,15,128,124,7,192,120,7,192,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,192,124, + 3,192,124,7,128,62,7,128,63,15,0,15,252,0,3,240, + 0,15,15,30,17,1,3,3,0,7,0,7,0,7,0,6, + 0,0,0,127,254,255,252,0,0,0,0,3,0,7,0,7, + 0,7,0,6,0,19,20,60,21,1,255,0,0,32,1,248, + 224,7,255,192,30,31,128,60,15,192,60,31,192,120,31,224, + 120,59,224,248,115,224,248,227,224,249,227,224,249,195,224,251, + 131,192,127,3,192,126,7,128,62,7,128,63,15,0,63,252, + 0,99,240,0,192,0,0,22,30,90,23,1,0,3,128,0, + 7,192,0,15,192,0,3,224,0,1,224,0,0,240,0,0, + 240,0,0,120,0,0,56,0,0,24,0,0,0,0,0,0, + 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, + 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, + 252,31,243,240,15,193,192,22,30,90,23,1,0,0,30,0, + 0,31,0,0,63,128,0,62,0,0,124,0,0,120,0,0, + 112,0,0,224,0,0,224,0,1,192,0,0,0,0,0,0, + 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, + 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, + 252,31,243,240,15,193,192,22,29,87,23,1,0,0,112,0, + 0,248,0,1,248,0,3,252,0,3,254,0,7,158,0,15, + 7,0,14,3,128,8,1,0,0,0,0,0,0,0,14,0, + 224,254,31,224,126,7,224,62,3,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, + 3,224,62,3,224,62,7,224,63,31,252,31,251,252,31,243, + 240,15,193,192,22,27,81,23,1,0,7,3,128,15,7,128, + 31,15,128,31,15,128,31,15,128,14,7,0,0,0,0,0, + 0,0,0,0,0,14,0,224,254,31,224,126,7,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,62,7,224,63, + 31,252,31,251,252,31,243,240,15,193,192,21,39,117,20,255, + 247,0,7,0,0,15,192,0,15,128,0,31,0,0,31,0, + 0,62,0,0,60,0,0,120,0,0,112,0,0,96,0,0, + 0,0,0,0,0,127,193,248,63,129,248,31,0,224,15,128, + 224,15,129,192,7,193,192,7,193,128,7,195,128,3,227,128, + 3,231,0,1,247,0,1,246,0,0,254,0,0,254,0,0, + 252,0,0,124,0,0,120,0,0,56,0,0,56,0,0,112, + 0,0,112,0,0,224,0,33,224,0,127,192,0,127,128,0, + 255,0,0,124,0,0,20,39,117,22,1,247,6,0,0,254, + 0,0,254,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,31,0,62,127,128,62,255,192,63,135,224,63,3,224,62, + 1,240,62,0,240,62,0,240,62,0,240,62,0,240,62,0, + 240,62,0,224,62,0,224,62,1,192,63,195,192,63,255,128, + 62,255,0,62,60,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,255,192,0,255,192, + 0,21,36,108,20,255,247,3,129,192,7,195,224,7,195,224, + 7,195,224,7,131,192,7,3,128,0,0,0,0,0,0,0, + 0,0,127,193,248,63,129,248,31,0,224,15,128,224,15,129, + 192,7,193,192,7,193,128,7,195,128,3,227,128,3,231,0, + 1,247,0,1,246,0,0,254,0,0,254,0,0,252,0,0, + 124,0,0,120,0,0,56,0,0,56,0,0,112,0,0,112, + 0,0,224,0,33,224,0,127,192,0,127,128,0,255,0,0, + 124,0,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=18 h=38 x= 3 y=14 dx=21 dy= 0 ascent=31 len=114 + Font Bounding box w=61 h=57 x=-20 y=-14 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =31 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb25n[960] U8G_SECTION(".progmem.u8g_font_gdb25n") = { + 0,61,57,236,242,24,0,0,0,0,42,57,0,31,249,24, + 0,16,16,32,18,1,14,0,192,3,192,3,192,99,140,123, + 158,125,191,127,252,15,224,7,224,63,252,253,190,249,158,51, + 142,3,192,3,192,3,0,15,14,28,17,1,4,1,128,3, + 128,3,128,3,128,3,128,3,128,127,254,255,252,3,128,3, + 128,3,128,3,128,3,128,3,0,8,12,12,11,2,249,30, + 127,255,127,31,31,30,30,60,56,112,96,12,2,4,14,1, + 9,127,240,255,240,6,6,6,11,3,255,56,124,252,252,252, + 120,17,38,114,19,1,249,0,1,128,0,7,128,0,7,128, + 0,15,0,0,15,0,0,15,0,0,30,0,0,30,0,0, + 28,0,0,60,0,0,60,0,0,120,0,0,120,0,0,120, + 0,0,240,0,0,240,0,0,224,0,1,224,0,1,224,0, + 3,192,0,3,192,0,3,192,0,7,128,0,7,128,0,7, + 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, + 0,60,0,0,60,0,0,56,0,0,120,0,0,120,0,0, + 240,0,0,240,0,0,192,0,0,18,24,72,20,1,0,3, + 240,0,7,252,0,30,62,0,28,31,0,60,15,0,120,15, + 128,120,15,128,120,7,128,248,7,192,248,7,192,248,7,192, + 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,120, + 7,128,124,7,128,124,15,128,60,15,0,62,14,0,31,30, + 0,15,248,0,3,224,0,16,24,48,20,2,0,0,96,3, + 224,31,224,255,224,99,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,7,240,127,255,127,255,16,24,48, + 20,2,0,3,248,15,252,60,62,124,63,120,31,248,31,112, + 31,0,31,0,62,0,60,0,124,0,120,0,240,1,224,3, + 224,3,192,7,128,15,1,30,3,60,3,120,3,127,255,255, + 255,255,255,16,24,48,20,2,0,7,240,31,248,60,124,120, + 62,248,62,248,62,64,62,0,60,0,124,0,240,7,240,7, + 252,0,254,0,62,0,63,0,31,0,31,0,31,0,31,0, + 30,192,62,240,124,127,248,15,192,17,24,72,20,1,0,0, + 12,0,0,124,0,0,124,0,0,252,0,1,252,0,1,252, + 0,3,188,0,7,188,0,7,60,0,14,60,0,14,60,0, + 28,60,0,56,60,0,56,60,0,112,60,0,255,255,128,255, + 255,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,3,255,128,3,255,128,17,24,72,20,1,0,31,255,0, + 31,255,128,31,254,0,31,252,0,24,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,63,240,0,63,252,0,48,126, + 0,96,31,0,0,31,0,0,15,128,0,15,128,0,15,128, + 0,15,128,0,15,128,0,31,0,96,31,0,248,126,0,63, + 252,0,7,224,0,17,24,72,20,2,0,0,14,0,0,126, + 0,1,240,0,7,192,0,15,128,0,30,0,0,62,0,0, + 60,0,0,124,0,0,121,248,0,127,254,0,254,63,0,252, + 31,0,248,15,128,248,15,128,248,15,128,248,15,128,248,15, + 128,124,15,128,124,15,0,60,31,0,31,30,0,15,252,0, + 3,240,0,17,24,72,20,2,0,127,255,128,127,255,0,255, + 255,0,255,255,0,224,6,0,192,14,0,128,12,0,0,28, + 0,0,28,0,0,56,0,0,56,0,0,112,0,0,112,0, + 0,240,0,0,224,0,1,224,0,1,192,0,3,192,0,3, + 192,0,7,128,0,7,128,0,15,128,0,31,0,0,28,0, + 0,17,24,72,21,2,0,3,240,0,15,252,0,28,62,0, + 24,31,0,56,31,0,56,31,0,56,31,0,60,62,0,63, + 60,0,31,248,0,15,240,0,7,252,0,14,254,0,62,63, + 0,124,31,128,120,31,128,248,15,128,248,15,128,248,15,128, + 248,15,0,124,31,0,126,62,0,63,252,0,7,224,0,17, + 25,75,20,2,255,3,240,0,15,252,0,30,62,0,60,30, + 0,120,31,0,120,31,0,248,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,124,31,128,126,63,128,63,255,128,15, + 207,0,0,15,0,0,31,0,0,30,0,0,62,0,0,124, + 0,0,248,0,1,240,0,15,192,0,63,0,0,56,0,0 + }; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=34 h=41 x= 3 y=20 dx=35 dy= 0 ascent=33 len=136 + Font Bounding box w=61 h=57 x=-20 y=-14 + Calculated Min Values x=-6 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-9 + X Font ascent =31 descent=-9 + Max Font ascent =33 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb25r[6779] U8G_SECTION(".progmem.u8g_font_gdb25r") = { + 0,61,57,236,242,25,7,167,18,92,32,127,247,33,247,31, + 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, + 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, + 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, + 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, + 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, + 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, + 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, + 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, + 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, + 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, + 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, + 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, + 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, + 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, + 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, + 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, + 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, + 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, + 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, + 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, + 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, + 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, + 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, + 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, + 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, + 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, + 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, + 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, + 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, + 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, + 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, + 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, + 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, + 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, + 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, + 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, + 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, + 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, + 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, + 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, + 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, + 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, + 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, + 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, + 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, + 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, + 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, + 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, + 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, + 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, + 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, + 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, + 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, + 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, + 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, + 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, + 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, + 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, + 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, + 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, + 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, + 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, + 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, + 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, + 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, + 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, + 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, + 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, + 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, + 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, + 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, + 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, + 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, + 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, + 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, + 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, + 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, + 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, + 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, + 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, + 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, + 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, + 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, + 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, + 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, + 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, + 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, + 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, + 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, + 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, + 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, + 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, + 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, + 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, + 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, + 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, + 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, + 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, + 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, + 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, + 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, + 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, + 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, + 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, + 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, + 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, + 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, + 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, + 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, + 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, + 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, + 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, + 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, + 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, + 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, + 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, + 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, + 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, + 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, + 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, + 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, + 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, + 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, + 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, + 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, + 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, + 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, + 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, + 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, + 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, + 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, + 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, + 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, + 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, + 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, + 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, + 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, + 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, + 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, + 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, + 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, + 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, + 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, + 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, + 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, + 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, + 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, + 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, + 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, + 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, + 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, + 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, + 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, + 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, + 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, + 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, + 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, + 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, + 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, + 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, + 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, + 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, + 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, + 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, + 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, + 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, + 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, + 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, + 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, + 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, + 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, + 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, + 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, + 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, + 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, + 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, + 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, + 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, + 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, + 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, + 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, + 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, + 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, + 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, + 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, + 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, + 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, + 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, + 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, + 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, + 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, + 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, + 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, + 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, + 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, + 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, + 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, + 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, + 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, + 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, + 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, + 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, + 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, + 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, + 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, + 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, + 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, + 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, + 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, + 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, + 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, + 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, + 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, + 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, + 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, + 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, + 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, + 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, + 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, + 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, + 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, + 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, + 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, + 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, + 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, + 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, + 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, + 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, + 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, + 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, + 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, + 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, + 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, + 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, + 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, + 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, + 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, + 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, + 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, + 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, + 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, + 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, + 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, + 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, + 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, + 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, + 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, + 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, + 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, + 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, + 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, + 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, + 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, + 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, + 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, + 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, + 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, + 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, + 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, + 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, + 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, + 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, + 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, + 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, + 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, + 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, + 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, + 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, + 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, + 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, + 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, + 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, + 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, + 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, + 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, + 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, + 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, + 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, + 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, + 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, + 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, + 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, + 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, + 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, + 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, + 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, + 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, + 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, + 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, + 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, + 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, + 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, + 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, + 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, + 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, + 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, + 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, + 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, + 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, + 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, + 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, + 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, + 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, + 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, + 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, + 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, + 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, + 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, + 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, + 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, + 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, + 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, + 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, + 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, + 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, + 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, + 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, + 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, + 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, + 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, + 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, + 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, + 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, + 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, + 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, + 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, + 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, + 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, + 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, + 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, + 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, + 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, + 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, + 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, + 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, + 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, + 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, + 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, + 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, + 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, + 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, + 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, + 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, + 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, + 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, + 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, + 0,99,255,0,192,254,0,128,56,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 30, '1' Height: 29 + Calculated Max Values w=41 h=49 x= 5 y=27 dx=42 dy= 0 ascent=42 len=210 + Font Bounding box w=74 h=69 x=-24 y=-17 + Calculated Min Values x=-7 y=-13 dx= 0 dy= 0 + Pure Font ascent =30 descent=-11 + X Font ascent =38 descent=-11 + Max Font ascent =42 descent=-13 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb30[19508] U8G_SECTION(".progmem.u8g_font_gdb30") = { + 0,74,69,232,239,30,10,50,24,78,32,255,245,42,243,38, + 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, + 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, + 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, + 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, + 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, + 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, + 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, + 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, + 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, + 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, + 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, + 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, + 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, + 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, + 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, + 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, + 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, + 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, + 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, + 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, + 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, + 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, + 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, + 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, + 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, + 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, + 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, + 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, + 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, + 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, + 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, + 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, + 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, + 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, + 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, + 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, + 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, + 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, + 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, + 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, + 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, + 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, + 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, + 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, + 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, + 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, + 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, + 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, + 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, + 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, + 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, + 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, + 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, + 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, + 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, + 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, + 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, + 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, + 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, + 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, + 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, + 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, + 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, + 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, + 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, + 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, + 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, + 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, + 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, + 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, + 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, + 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, + 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, + 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, + 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, + 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, + 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, + 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, + 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, + 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, + 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, + 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, + 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, + 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, + 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, + 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, + 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, + 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, + 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, + 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, + 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, + 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, + 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, + 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, + 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, + 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, + 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, + 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, + 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, + 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, + 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, + 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, + 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, + 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, + 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, + 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, + 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, + 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, + 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, + 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, + 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, + 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, + 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, + 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, + 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, + 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, + 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, + 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, + 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, + 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, + 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, + 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, + 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, + 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, + 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, + 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, + 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, + 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, + 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, + 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, + 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, + 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, + 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, + 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, + 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, + 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, + 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, + 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, + 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, + 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, + 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, + 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, + 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, + 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, + 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, + 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, + 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, + 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, + 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, + 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, + 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, + 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, + 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, + 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, + 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, + 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, + 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, + 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, + 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, + 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, + 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, + 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, + 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, + 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, + 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, + 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, + 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, + 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, + 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, + 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, + 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, + 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, + 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, + 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, + 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, + 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, + 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, + 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, + 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, + 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, + 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, + 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, + 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, + 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, + 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, + 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, + 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, + 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, + 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, + 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, + 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, + 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, + 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, + 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, + 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, + 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, + 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, + 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, + 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, + 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, + 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, + 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, + 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, + 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, + 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, + 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, + 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, + 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, + 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, + 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, + 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, + 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, + 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, + 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, + 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, + 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, + 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, + 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, + 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, + 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, + 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, + 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, + 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, + 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, + 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, + 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, + 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, + 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, + 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, + 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, + 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, + 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, + 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, + 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, + 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, + 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, + 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, + 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, + 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, + 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, + 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, + 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, + 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, + 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, + 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, + 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, + 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, + 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, + 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, + 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, + 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, + 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, + 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, + 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, + 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, + 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, + 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, + 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, + 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, + 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, + 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, + 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, + 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, + 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, + 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, + 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, + 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, + 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, + 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, + 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, + 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, + 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, + 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, + 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, + 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, + 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, + 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, + 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, + 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, + 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, + 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, + 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, + 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, + 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, + 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, + 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, + 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, + 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, + 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, + 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, + 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, + 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, + 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, + 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, + 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, + 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, + 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, + 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, + 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, + 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, + 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, + 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, + 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, + 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, + 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, + 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, + 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, + 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, + 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, + 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, + 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, + 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, + 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, + 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, + 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, + 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, + 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, + 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, + 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, + 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, + 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, + 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, + 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, + 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, + 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, + 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, + 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, + 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, + 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, + 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, + 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, + 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, + 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, + 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, + 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, + 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, + 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, + 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, + 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, + 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, + 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, + 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, + 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, + 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, + 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, + 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, + 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, + 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, + 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, + 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, + 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, + 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, + 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, + 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, + 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, + 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, + 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, + 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, + 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, + 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, + 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, + 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, + 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, + 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, + 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, + 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, + 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, + 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, + 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, + 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, + 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, + 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, + 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, + 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, + 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, + 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, + 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, + 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, + 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, + 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, + 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, + 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, + 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, + 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, + 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, + 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, + 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, + 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, + 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, + 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, + 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, + 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, + 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, + 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, + 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, + 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, + 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, + 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, + 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, + 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, + 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, + 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, + 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, + 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, + 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, + 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, + 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, + 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, + 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, + 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, + 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, + 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, + 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, + 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, + 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, + 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, + 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, + 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, + 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, + 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, + 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, + 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, + 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, + 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, + 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, + 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, + 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, + 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, + 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, + 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, + 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, + 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, + 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, + 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, + 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, + 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, + 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, + 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, + 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, + 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, + 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, + 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, + 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, + 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, + 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, + 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, + 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, + 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, + 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, + 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, + 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, + 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, + 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, + 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, + 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, + 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, + 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, + 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, + 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, + 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, + 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, + 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, + 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, + 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, + 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, + 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, + 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, + 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, + 192,64,31,128,192,15,0,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,12,0,0,8,35, + 35,15,3,243,62,127,255,255,255,254,124,0,0,12,28,28, + 28,60,60,60,60,60,62,62,62,62,62,62,62,62,126,126, + 126,126,126,127,126,120,96,21,30,90,24,2,255,0,24,0, + 0,56,0,0,56,0,0,56,0,0,127,192,3,255,240,7, + 255,248,31,187,240,62,56,240,60,56,96,124,56,32,120,56, + 0,248,56,0,248,56,0,248,56,0,248,56,0,248,56,0, + 248,56,0,252,56,0,124,56,16,126,56,56,63,56,240,31, + 251,224,15,255,192,7,255,128,1,252,0,0,56,0,0,56, + 0,0,56,0,0,48,0,22,29,87,24,1,0,0,31,192, + 0,255,248,1,225,248,3,192,248,7,192,120,7,128,112,15, + 128,48,15,128,48,15,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,255,255,0,255,255,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,16,31,0,12,31, + 0,24,30,0,56,62,0,120,63,255,248,127,255,248,255,255, + 248,128,15,240,20,20,60,24,2,4,64,0,32,224,0,96, + 113,248,240,63,255,192,31,15,128,30,7,128,28,3,128,56, + 1,192,56,1,192,56,1,192,56,1,192,56,1,192,60,3, + 192,30,7,128,31,15,128,31,255,128,57,249,192,112,0,224, + 224,0,112,64,0,32,27,28,112,24,254,0,127,0,127,224, + 255,128,127,224,127,192,15,0,15,224,30,0,15,224,30,0, + 7,240,60,0,3,240,60,0,3,248,56,0,1,252,120,0, + 0,252,112,0,0,254,240,0,0,126,224,0,0,127,224,0, + 0,63,192,0,0,63,192,0,0,31,192,0,0,31,128,0, + 15,255,255,0,15,255,254,0,0,31,128,0,0,31,128,0, + 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, + 0,63,192,0,1,255,248,0,1,255,248,0,4,49,49,11, + 4,246,48,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,224,0,0,0,0,0,112,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,192,18,34,102,23,3,0,3,252,0,15,255,0,30, + 31,0,60,15,0,124,7,0,124,6,0,126,2,0,127,128, + 0,63,224,0,63,240,0,63,252,0,127,254,0,123,255,0, + 240,255,128,240,63,128,240,31,192,240,7,192,248,7,192,124, + 3,192,127,3,192,63,195,192,31,243,128,15,255,128,7,255, + 0,1,255,0,0,127,128,96,63,128,96,31,128,112,15,128, + 112,15,128,120,15,0,126,30,0,127,252,0,15,240,0,17, + 7,21,19,1,26,56,7,0,124,15,128,252,31,128,252,31, + 128,252,31,128,248,31,0,112,14,0,31,31,124,35,2,0, + 0,31,224,0,0,127,252,0,1,240,31,0,7,192,7,128, + 15,0,1,224,30,0,0,224,28,3,240,112,56,31,254,56, + 56,60,124,56,112,120,60,28,112,240,28,28,240,240,24,28, + 224,224,0,14,225,224,0,14,225,224,0,14,225,224,0,14, + 225,224,0,14,225,224,0,14,225,240,0,14,240,240,0,30, + 112,248,6,28,112,126,30,28,56,127,252,56,56,31,240,56, + 28,7,192,112,14,0,0,224,15,0,1,224,7,192,7,128, + 1,240,31,0,0,127,252,0,0,31,240,0,12,16,32,13, + 1,14,15,0,63,128,99,192,227,192,131,192,7,192,63,192, + 123,192,243,192,243,192,247,224,255,240,115,128,0,0,255,224, + 255,224,20,22,66,25,2,0,0,192,32,1,192,112,1,192, + 224,3,129,224,7,131,192,15,7,192,31,15,128,62,15,128, + 126,31,0,252,63,0,252,126,0,252,126,0,252,63,0,126, + 31,0,62,15,128,31,15,128,15,7,192,7,131,192,3,129, + 224,1,192,224,0,192,112,0,192,32,21,11,33,24,2,4, + 127,255,248,255,255,248,255,255,248,0,0,120,0,0,120,0, + 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, + 96,15,3,6,17,1,11,127,254,127,252,255,252,17,17,51, + 17,0,17,3,224,0,15,248,0,60,30,0,48,6,0,103, + 227,0,99,51,0,195,49,128,195,49,128,195,225,128,195,65, + 128,195,97,128,99,35,0,99,51,0,55,158,0,60,30,0, + 15,248,0,3,224,0,20,4,12,24,2,27,127,255,240,255, + 255,240,255,255,224,255,255,224,11,13,26,17,3,17,15,0, + 31,192,63,192,123,224,113,224,241,224,241,224,241,224,241,192, + 251,192,127,128,127,0,30,0,18,22,66,20,1,3,0,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,127,255,192,255,255,192,255,255,128,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,192, + 0,0,0,0,0,0,0,127,255,192,127,255,192,255,255,128, + 13,17,34,17,2,15,7,224,31,240,120,248,120,120,248,120, + 0,120,0,240,0,224,1,224,3,192,7,128,15,0,30,8, + 60,8,120,24,255,248,255,248,13,18,36,17,1,14,7,224, + 31,240,60,248,120,120,124,120,0,120,0,240,1,224,7,240, + 5,240,0,120,0,120,0,120,0,120,128,120,224,240,127,224, + 31,128,11,11,22,15,5,24,15,0,15,192,31,224,31,128, + 63,0,62,0,124,0,120,0,240,0,224,0,64,0,27,33, + 132,28,1,245,3,0,6,0,255,128,254,0,255,128,126,0, + 63,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, + 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, + 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, + 31,192,254,0,31,227,254,0,31,255,254,64,31,255,127,224, + 30,254,127,192,30,124,63,128,30,56,28,0,30,0,0,0, + 30,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0, + 31,0,0,0,31,128,0,0,31,128,0,0,31,192,0,0, + 31,0,0,0,24,0,0,0,26,36,144,29,1,250,1,255, + 255,192,7,255,255,192,31,195,255,0,63,3,222,0,126,3, + 222,0,124,3,222,0,252,3,222,0,252,3,222,0,252,3, + 222,0,252,3,222,0,252,3,222,0,126,3,222,0,127,3, + 222,0,63,3,222,0,31,195,222,0,7,255,222,0,1,255, + 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, + 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, + 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, + 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, + 222,0,0,7,255,0,0,31,255,192,0,31,255,192,7,7, + 7,10,1,13,60,126,254,254,254,252,120,10,10,20,11,1, + 246,14,0,28,0,30,0,63,128,63,192,15,192,15,192,31, + 128,254,0,112,0,13,17,34,17,2,15,1,128,15,128,255, + 128,71,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,63,240,127,248,11,16,32, + 13,1,14,15,0,63,128,123,192,113,192,241,224,241,224,241, + 224,241,224,241,224,241,192,123,192,63,128,30,0,0,0,255, + 224,255,224,20,22,66,25,3,0,64,32,0,224,112,0,112, + 56,0,120,28,0,56,30,0,60,15,0,30,15,128,31,7, + 192,31,135,224,15,199,240,15,227,240,15,227,240,15,199,240, + 31,135,224,31,7,192,30,15,128,60,15,0,56,30,0,120, + 28,0,112,56,0,224,48,0,64,96,0,27,29,116,30,2, + 0,3,0,1,192,63,0,3,128,255,0,7,128,15,0,15, + 0,15,0,14,0,15,0,28,0,15,0,60,0,15,0,120, + 0,15,0,112,0,15,0,240,0,15,1,224,0,15,1,192, + 0,31,131,128,0,255,231,128,0,0,15,0,0,0,14,1, + 0,0,28,15,128,0,60,15,128,0,120,31,128,0,112,55, + 128,0,224,55,128,1,224,103,128,3,192,199,128,3,129,199, + 128,7,129,255,224,15,3,255,192,30,0,7,128,28,0,7, + 128,60,0,63,224,26,29,116,30,2,0,3,0,1,192,63, + 0,7,128,255,0,7,128,15,0,15,0,15,0,30,0,15, + 0,60,0,15,0,60,0,15,0,120,0,15,0,240,0,15, + 0,224,0,15,1,224,0,15,3,192,0,31,135,128,0,255, + 231,0,0,0,15,0,0,0,30,63,0,0,60,127,192,0, + 56,231,192,0,121,195,192,0,241,131,192,1,224,3,128,1, + 192,7,0,3,192,14,0,7,128,28,0,15,0,56,0,14, + 0,112,64,30,0,224,64,60,1,255,192,120,3,255,192,28, + 29,116,30,1,0,15,128,0,224,63,192,1,192,115,224,3, + 192,241,224,7,128,129,192,7,0,3,128,14,0,15,192,30, + 0,15,224,60,0,1,240,56,0,0,240,120,0,0,240,240, + 0,0,240,224,0,225,225,192,0,127,195,192,0,31,7,128, + 0,0,7,0,128,0,14,7,192,0,30,7,192,0,60,11, + 192,0,56,27,192,0,112,19,192,0,240,51,192,1,224,99, + 192,1,192,227,192,3,192,255,240,7,129,255,224,15,0,3, + 192,14,0,3,192,30,0,31,240,18,35,105,22,2,243,0, + 248,0,1,252,0,3,252,0,3,252,0,3,252,0,3,248, + 0,1,240,0,0,0,0,0,0,0,0,0,0,0,112,0, + 0,240,0,0,240,0,0,240,0,0,240,0,1,240,0,1, + 224,0,3,224,0,7,192,0,15,192,0,15,128,0,31,0, + 0,63,0,0,126,0,0,126,0,0,252,0,0,252,3,192, + 252,15,192,252,15,192,252,15,192,252,15,128,126,31,128,127, + 31,0,63,254,0,15,240,0,30,42,168,30,0,0,0,32, + 0,0,0,112,0,0,0,248,0,0,1,252,0,0,1,254, + 0,0,0,255,0,0,0,63,128,0,0,15,192,0,0,3, + 224,0,0,0,224,0,0,0,64,0,0,0,0,0,0,1, + 128,0,0,7,128,0,0,15,192,0,0,31,192,0,0,31, + 224,0,0,31,224,0,0,63,224,0,0,63,240,0,0,59, + 240,0,0,121,240,0,0,121,248,0,0,113,248,0,0,240, + 252,0,0,240,252,0,0,224,252,0,1,224,126,0,1,224, + 126,0,1,192,126,0,3,255,255,0,3,255,255,0,3,128, + 31,0,7,128,31,128,7,0,31,128,7,0,15,192,15,0, + 15,192,14,0,15,192,14,0,7,224,30,0,7,224,255,192, + 63,252,255,192,63,252,30,42,168,30,0,0,0,0,32,0, + 0,0,48,0,0,0,124,0,0,0,254,0,0,1,254,0, + 0,3,248,0,0,7,224,0,0,15,128,0,0,31,0,0, + 0,60,0,0,0,16,0,0,0,0,0,0,0,1,128,0, + 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, + 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, + 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, + 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, + 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, + 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, + 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, + 255,192,63,252,30,41,164,30,0,0,0,7,0,0,0,7, + 128,0,0,15,192,0,0,31,224,0,0,63,240,0,0,127, + 248,0,0,248,248,0,1,240,60,0,1,192,14,0,1,0, + 8,0,0,0,0,0,0,1,128,0,0,7,128,0,0,15, + 192,0,0,31,192,0,0,31,224,0,0,31,224,0,0,63, + 224,0,0,63,240,0,0,59,240,0,0,121,240,0,0,121, + 248,0,0,113,248,0,0,240,252,0,0,240,252,0,0,224, + 252,0,1,224,126,0,1,224,126,0,1,192,126,0,3,255, + 255,0,3,255,255,0,3,128,31,0,7,128,31,128,7,0, + 31,128,7,0,15,192,15,0,15,192,14,0,15,192,14,0, + 7,224,30,0,7,224,255,192,63,252,255,192,63,252,30,40, + 160,30,0,0,0,16,4,0,0,127,7,0,0,255,254,0, + 1,255,254,0,1,255,252,0,3,255,248,0,3,3,240,0, + 2,0,64,0,0,0,0,0,0,0,0,0,0,1,128,0, + 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, + 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, + 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, + 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, + 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, + 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, + 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, + 255,192,63,252,30,40,160,30,0,0,0,64,16,0,0,240, + 60,0,1,248,126,0,1,248,126,0,1,248,126,0,1,240, + 124,0,1,240,124,0,0,64,32,0,0,0,0,0,0,0, + 0,0,0,1,128,0,0,7,128,0,0,15,192,0,0,31, + 192,0,0,31,224,0,0,31,224,0,0,63,224,0,0,63, + 240,0,0,59,240,0,0,121,240,0,0,121,248,0,0,113, + 248,0,0,240,252,0,0,240,252,0,0,224,252,0,1,224, + 126,0,1,224,126,0,1,192,126,0,3,255,255,0,3,255, + 255,0,3,128,31,0,7,128,31,128,7,0,31,128,7,0, + 15,192,15,0,15,192,14,0,15,192,14,0,7,224,30,0, + 7,224,255,192,63,252,255,192,63,252,30,42,168,30,0,0, + 0,1,0,0,0,15,224,0,0,31,224,0,0,28,240,0, + 0,60,240,0,0,60,240,0,0,60,224,0,0,63,224,0, + 0,31,128,0,0,4,0,0,0,0,0,0,0,0,0,0, + 0,1,128,0,0,7,128,0,0,15,192,0,0,31,192,0, + 0,31,224,0,0,31,224,0,0,63,224,0,0,63,240,0, + 0,59,240,0,0,121,240,0,0,121,248,0,0,113,248,0, + 0,240,252,0,0,240,252,0,0,224,252,0,1,224,126,0, + 1,224,126,0,1,192,126,0,3,255,255,0,3,255,255,0, + 3,128,31,0,7,128,31,128,7,0,31,128,7,0,15,192, + 15,0,15,192,14,0,15,192,14,0,7,224,30,0,7,224, + 255,192,63,252,255,192,63,252,38,30,150,39,0,0,0,127, + 255,255,240,0,127,255,255,248,0,15,255,0,112,0,7,255, + 0,112,0,15,63,0,112,0,15,63,0,48,0,15,63,0, + 48,0,30,63,0,48,0,30,63,0,0,0,60,63,0,0, + 0,60,63,0,0,0,60,63,0,0,0,120,63,0,0,0, + 127,255,255,192,0,255,255,255,128,0,240,63,1,128,0,224, + 63,0,0,1,224,63,0,0,1,224,63,0,0,3,192,63, + 0,0,3,192,63,0,0,3,128,63,0,0,7,128,63,0, + 0,7,128,63,0,12,15,0,63,0,12,15,0,63,0,28, + 14,0,63,0,28,31,0,127,128,124,255,193,255,255,248,255, + 193,255,255,248,24,40,120,27,1,246,0,31,224,0,255,252, + 1,255,254,7,224,254,15,192,126,31,128,60,31,0,28,62, + 0,0,62,0,0,126,0,0,124,0,0,124,0,0,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,0,252,0,0,254,0,0,126,0,0,127,0,0,63, + 128,2,63,128,7,31,224,15,15,252,254,7,255,248,3,255, + 240,0,255,192,0,30,0,0,28,0,0,31,0,0,63,192, + 0,63,192,0,15,192,0,15,128,0,31,128,0,254,0,0, + 112,0,23,42,126,25,1,0,1,0,0,3,128,0,15,192, + 0,15,224,0,31,240,0,7,248,0,1,252,0,0,126,0, + 0,31,0,0,7,0,0,2,0,0,0,0,255,255,248,255, + 255,252,63,128,56,31,128,56,31,128,24,31,128,24,31,128, + 24,31,128,24,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,255,224,31,255,224,31,128,192,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,6,31,128,6,31,128,14,31,128,14,63,192,30, + 255,255,254,255,255,252,23,42,126,25,1,0,0,2,0,0, + 3,128,0,7,224,0,15,240,0,31,240,0,63,192,0,127, + 0,0,252,0,1,240,0,1,192,0,1,0,0,0,0,0, + 255,255,248,255,255,252,63,128,56,31,128,56,31,128,24,31, + 128,24,31,128,24,31,128,24,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,255,224,31,255,224,31,128,192, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,6,31,128,6,31,128,14,31,128, + 14,63,192,30,255,255,254,255,255,252,23,41,123,25,1,0, + 0,56,0,0,124,0,0,254,0,0,255,0,1,255,0,3, + 255,128,7,199,192,15,1,224,14,0,224,8,0,64,0,0, + 0,255,255,248,255,255,252,63,128,56,31,128,56,31,128,24, + 31,128,24,31,128,24,31,128,24,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,255,224,31,255,224,31,128, + 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,6,31,128,6,31,128,14,31, + 128,14,63,192,30,255,255,254,255,255,252,23,40,120,25,1, + 0,2,0,128,7,129,224,15,195,240,15,195,240,15,195,240, + 15,131,224,15,3,192,4,1,0,0,0,0,0,0,0,255, + 255,248,255,255,252,63,128,56,31,128,56,31,128,24,31,128, + 24,31,128,24,31,128,24,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,255,224,31,255,224,31,128,192,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,6,31,128,6,31,128,14,31,128,14, + 63,192,30,255,255,254,255,255,252,15,42,84,16,255,0,8, + 0,28,0,62,0,127,0,127,128,191,192,15,224,3,240,0, + 248,0,56,0,16,0,0,31,254,31,254,7,248,3,240,3, + 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, + 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, + 240,3,240,3,240,3,240,3,240,3,240,3,240,7,248,31, + 254,31,254,14,42,84,16,2,0,0,128,0,224,1,248,3, + 252,7,252,15,240,31,192,63,0,124,0,112,0,32,0,0, + 0,255,240,255,240,63,192,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,63,192,255,240,255,240,16,41,82, + 16,0,0,3,128,7,192,15,224,15,240,31,240,63,248,124, + 124,240,30,224,15,128,4,0,0,63,252,63,252,15,240,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,15, + 240,63,252,63,252,16,40,80,16,0,0,32,8,120,30,252, + 63,252,63,252,63,248,62,240,60,64,16,0,0,0,0,63, + 252,63,252,15,240,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, + 224,7,224,7,224,15,240,63,252,63,252,29,30,120,31,0, + 0,3,255,192,0,255,255,248,0,127,192,254,0,143,192,63, + 128,15,192,31,192,15,192,15,192,15,192,7,224,15,192,7, + 240,15,192,3,240,15,192,3,240,15,192,3,248,15,192,1, + 248,15,192,1,248,127,255,1,248,255,255,1,248,15,192,1, + 248,15,192,1,248,15,192,1,248,15,192,1,248,15,192,1, + 240,15,192,3,240,15,192,3,240,15,192,7,224,15,192,7, + 224,15,192,15,192,15,192,31,128,15,192,63,0,31,224,254, + 0,127,255,248,0,127,255,192,0,30,40,160,32,1,0,0, + 16,4,0,0,127,7,0,0,255,255,0,0,255,254,0,1, + 255,252,0,3,255,252,0,3,3,248,0,2,0,64,0,0, + 0,0,0,0,0,0,0,255,0,15,252,255,128,15,252,63, + 192,3,240,31,192,1,224,31,224,1,224,31,240,1,224,31, + 240,1,224,31,248,1,224,31,252,1,224,30,254,1,224,30, + 126,1,224,30,63,1,224,30,63,129,224,30,31,129,224,30, + 15,193,224,30,7,225,224,30,7,225,224,30,3,241,224,30, + 1,249,224,30,1,253,224,30,0,253,224,30,0,127,224,30, + 0,63,224,30,0,63,224,30,0,31,224,30,0,15,224,30, + 0,7,224,63,0,7,224,255,192,3,224,255,192,0,224,27, + 42,168,30,1,0,0,64,0,0,0,224,0,0,1,240,0, + 0,3,248,0,0,3,252,0,0,1,254,0,0,0,127,0, + 0,0,31,128,0,0,7,192,0,0,1,192,0,0,0,128, + 0,0,0,0,0,0,31,192,0,0,255,240,0,3,225,252, + 0,7,128,126,0,15,0,63,0,31,0,31,0,30,0,31, + 128,62,0,15,128,126,0,15,192,124,0,15,192,124,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,254,0,7,192,126,0,15,192,126,0,15,128,127,0,15, + 128,63,0,31,0,31,128,31,0,31,192,62,0,15,240,252, + 0,7,255,240,0,1,255,224,0,0,127,0,0,27,42,168, + 30,1,0,0,0,64,0,0,0,96,0,0,0,248,0,0, + 1,252,0,0,3,252,0,0,7,240,0,0,15,192,0,0, + 31,128,0,0,62,0,0,0,120,0,0,0,32,0,0,0, + 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, + 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, + 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, + 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, + 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, + 255,240,0,1,255,224,0,0,127,0,0,27,41,164,30,1, + 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, + 0,0,127,224,0,0,255,240,0,1,249,248,0,3,224,120, + 0,3,128,28,0,2,0,8,0,0,0,0,0,0,31,192, + 0,0,255,240,0,3,225,252,0,7,128,126,0,15,0,63, + 0,31,0,31,0,30,0,31,128,62,0,15,128,126,0,15, + 192,124,0,15,192,124,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,254,0,7,192,126,0,15, + 192,126,0,15,128,127,0,15,128,63,0,31,0,31,128,31, + 0,31,192,62,0,15,240,252,0,7,255,240,0,1,255,224, + 0,0,127,0,0,27,40,160,30,1,0,0,32,8,0,0, + 254,14,0,1,255,254,0,1,255,252,0,3,255,248,0,7, + 255,248,0,6,7,240,0,2,0,128,0,0,0,0,0,0, + 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, + 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, + 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, + 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, + 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, + 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, + 255,240,0,1,255,224,0,0,127,0,0,27,40,160,30,1, + 0,0,128,32,0,1,240,124,0,1,240,124,0,3,240,252, + 0,3,240,252,0,3,240,252,0,3,224,248,0,0,128,32, + 0,0,0,0,0,0,0,0,0,0,31,192,0,0,255,240, + 0,3,225,252,0,7,128,126,0,15,0,63,0,31,0,31, + 0,30,0,31,128,62,0,15,128,126,0,15,192,124,0,15, + 192,124,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, + 224,252,0,7,224,254,0,7,192,126,0,15,192,126,0,15, + 128,127,0,15,128,63,0,31,0,31,128,31,0,31,192,62, + 0,15,240,252,0,7,255,240,0,1,255,224,0,0,127,0, + 0,16,15,30,20,2,6,96,6,240,15,120,31,60,62,30, + 124,15,248,7,240,3,192,7,224,15,248,30,124,60,62,120, + 31,240,15,96,6,27,31,124,30,1,255,0,31,195,224,0, + 255,247,192,3,225,255,128,7,128,127,0,15,0,63,0,31, + 0,63,128,30,0,127,128,62,0,255,192,126,0,255,192,124, + 1,255,192,124,3,239,224,252,3,231,224,252,7,199,224,252, + 15,135,224,252,15,7,224,252,31,7,224,252,62,7,224,252, + 60,7,224,252,120,7,192,254,248,7,192,127,240,15,192,127, + 224,15,128,127,192,15,128,63,128,31,0,63,128,31,0,31, + 192,62,0,31,240,252,0,63,255,240,0,121,255,224,0,248, + 127,0,0,192,0,0,0,29,42,168,32,1,0,0,32,0, + 0,0,48,0,0,0,248,0,0,1,252,0,0,1,254,0, + 0,0,127,0,0,0,31,128,0,0,15,192,0,0,3,224, + 0,0,0,240,0,0,0,64,0,0,0,0,0,255,240,31, + 248,255,240,31,248,63,192,7,224,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,128,31,192,7,128,15,192,7,128,15,224,7, + 0,7,224,15,0,3,248,62,0,1,255,252,0,0,255,240, + 0,0,31,192,0,29,42,168,32,1,0,0,0,32,0,0, + 0,56,0,0,0,124,0,0,0,254,0,0,1,254,0,0, + 3,252,0,0,7,240,0,0,15,192,0,0,31,0,0,0, + 28,0,0,0,16,0,0,0,0,0,0,255,240,31,248,255, + 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, + 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, + 31,192,0,29,41,164,32,1,0,0,3,128,0,0,7,128, + 0,0,15,192,0,0,31,224,0,0,63,240,0,0,127,248, + 0,0,124,124,0,0,240,62,0,1,192,14,0,0,128,4, + 0,0,0,0,0,255,240,31,248,255,240,31,248,63,192,7, + 224,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, + 192,31,128,3,192,31,128,3,192,31,128,3,128,31,192,7, + 128,15,192,7,128,15,224,7,0,7,224,15,0,3,248,62, + 0,1,255,252,0,0,255,240,0,0,31,192,0,29,40,160, + 32,1,0,0,32,8,0,0,248,62,0,0,248,62,0,1, + 248,126,0,1,248,126,0,1,248,126,0,0,240,60,0,0, + 64,16,0,0,0,0,0,0,0,0,0,255,240,31,248,255, + 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, + 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, + 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, + 31,192,0,29,42,168,29,0,0,0,0,32,0,0,0,48, + 0,0,0,124,0,0,1,254,0,0,3,254,0,0,7,248, + 0,0,15,224,0,0,31,128,0,0,62,0,0,0,60,0, + 0,0,16,0,0,0,0,0,0,127,0,31,248,255,128,31, + 248,31,192,3,192,15,192,3,128,7,224,7,128,3,240,7, + 0,3,240,15,0,1,248,14,0,1,248,30,0,0,252,28, + 0,0,124,60,0,0,126,56,0,0,63,120,0,0,63,240, + 0,0,31,240,0,0,31,224,0,0,15,224,0,0,15,192, + 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, + 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, + 0,0,15,192,0,0,31,224,0,0,255,252,0,0,255,252, + 0,24,30,90,27,1,0,255,248,0,255,248,0,63,192,0, + 31,128,0,31,128,0,31,128,0,31,255,128,31,255,240,31, + 131,248,31,128,252,31,128,126,31,128,127,31,128,63,31,128, + 63,31,128,63,31,128,63,31,128,63,31,128,62,31,128,126, + 31,128,252,31,129,248,31,191,240,31,191,128,31,128,0,31, + 128,0,31,128,0,31,128,0,63,192,0,255,248,0,255,248, + 0,28,36,144,31,1,0,0,7,240,0,0,63,252,0,0, + 255,254,0,1,240,255,0,3,224,63,128,7,192,31,128,7, + 192,31,192,15,128,15,192,15,128,15,192,31,128,15,192,31, + 128,15,192,31,128,31,128,31,128,63,0,31,128,126,0,31, + 129,248,0,31,135,224,0,31,135,128,0,31,143,128,0,31, + 143,128,0,31,143,192,0,31,143,224,0,31,135,248,0,31, + 135,254,0,31,131,255,128,31,128,255,192,31,128,63,224,31, + 128,31,240,31,128,7,240,31,140,3,240,31,142,1,240,31, + 142,1,240,31,142,1,240,31,143,1,224,63,143,195,192,255, + 143,255,128,255,129,254,0,23,35,105,24,1,0,1,192,0, + 15,192,0,15,224,0,7,240,0,3,240,0,1,248,0,0, + 248,0,0,124,0,0,60,0,0,30,0,0,12,0,0,0, + 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, + 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, + 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, + 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, + 63,231,240,15,131,128,23,35,105,24,1,0,0,15,0,0, + 15,192,0,31,224,0,31,128,0,63,0,0,62,0,0,124, + 0,0,120,0,0,240,0,0,224,0,0,192,0,0,0,0, + 0,0,0,0,255,0,15,255,128,31,15,192,62,7,224,126, + 7,224,252,7,224,96,7,224,0,7,224,0,31,224,1,255, + 224,7,255,224,31,231,224,63,135,224,63,7,224,126,7,224, + 126,7,224,126,7,224,126,31,228,127,63,252,63,247,254,63, + 231,240,15,131,128,23,35,105,24,1,0,0,120,0,0,252, + 0,0,252,0,1,254,0,3,255,0,3,255,0,7,207,128, + 15,135,192,15,1,192,28,0,224,8,0,64,0,0,0,0, + 0,0,0,255,0,15,255,128,31,15,192,62,7,224,126,7, + 224,252,7,224,96,7,224,0,7,224,0,31,224,1,255,224, + 7,255,224,31,231,224,63,135,224,63,7,224,126,7,224,126, + 7,224,126,7,224,126,31,228,127,63,252,63,247,254,63,231, + 240,15,131,128,23,33,99,24,1,0,3,192,48,7,240,48, + 15,252,96,31,255,224,31,255,192,56,127,128,48,15,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,15,255, + 128,31,15,192,62,7,224,126,7,224,252,7,224,96,7,224, + 0,7,224,0,31,224,1,255,224,7,255,224,31,231,224,63, + 135,224,63,7,224,126,7,224,126,7,224,126,7,224,126,31, + 228,127,63,252,63,247,254,63,231,240,15,131,128,23,33,99, + 24,1,0,7,1,192,15,131,224,31,135,224,31,135,224,31, + 135,224,31,7,192,14,3,128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, + 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, + 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, + 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, + 63,231,240,15,131,128,23,34,102,24,1,0,0,60,0,0, + 254,0,1,239,0,3,207,0,3,207,0,3,207,0,3,238, + 0,1,252,0,0,248,0,0,0,0,0,0,0,0,0,0, + 0,255,0,15,255,128,31,15,192,62,7,224,126,7,224,252, + 7,224,96,7,224,0,7,224,0,31,224,1,255,224,7,255, + 224,31,231,224,63,135,224,63,7,224,126,7,224,126,7,224, + 126,7,224,126,31,228,127,63,252,63,247,254,63,231,240,15, + 131,128,33,22,110,35,1,0,0,63,3,224,0,1,255,159, + 248,0,7,255,252,62,0,15,135,248,30,0,31,3,240,31, + 0,63,3,240,15,0,127,3,224,15,128,120,3,224,15,128, + 0,3,224,15,128,0,127,255,255,128,3,255,255,254,0,15, + 195,224,0,0,63,3,224,0,0,126,3,224,0,0,124,3, + 240,0,0,252,3,240,1,0,252,7,248,7,0,254,31,252, + 31,0,255,252,255,254,0,127,248,127,252,0,127,224,63,240, + 0,31,128,15,192,0,20,32,96,22,2,246,0,127,128,1, + 255,240,7,135,224,15,3,224,30,1,224,62,0,192,124,0, + 192,124,0,0,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,0,252,0,0,254,0,0,126,0,0,127,0,96,127, + 129,224,63,255,192,31,255,128,15,254,0,3,252,0,0,240, + 0,0,224,0,0,252,0,1,254,0,0,254,0,0,126,0, + 0,124,0,0,252,0,3,240,0,1,128,0,19,35,105,23, + 2,0,3,128,0,15,192,0,31,224,0,7,224,0,3,240, + 0,1,240,0,0,248,0,0,120,0,0,60,0,0,28,0, + 0,8,0,0,0,0,0,0,0,0,252,0,7,255,0,15, + 31,128,30,15,128,62,15,192,124,7,192,124,7,224,124,7, + 224,252,7,224,255,255,224,255,255,128,252,0,0,252,0,0, + 252,0,0,254,0,0,126,0,64,127,0,224,63,131,192,63, + 255,128,31,255,0,15,254,0,3,248,0,19,35,105,23,2, + 0,0,14,0,0,31,192,0,31,192,0,63,128,0,63,0, + 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,0, + 192,0,0,0,0,0,0,0,0,252,0,7,255,0,15,31, + 128,30,15,128,62,15,192,124,7,192,124,7,224,124,7,224, + 252,7,224,255,255,224,255,255,128,252,0,0,252,0,0,252, + 0,0,254,0,0,126,0,64,127,0,224,63,131,192,63,255, + 128,31,255,0,15,254,0,3,248,0,19,35,105,23,2,0, + 0,120,0,0,248,0,1,252,0,1,254,0,3,254,0,7, + 255,0,15,223,128,15,7,128,30,3,192,60,1,224,24,0, + 64,0,0,0,0,0,0,0,252,0,7,255,0,15,31,128, + 30,15,128,62,15,192,124,7,192,124,7,224,124,7,224,252, + 7,224,255,255,224,255,255,128,252,0,0,252,0,0,252,0, + 0,254,0,0,126,0,64,127,0,224,63,131,192,63,255,128, + 31,255,0,15,254,0,3,248,0,19,33,99,23,2,0,15, + 3,192,31,7,192,31,135,224,31,135,224,31,7,192,31,7, + 192,14,3,128,0,0,0,0,0,0,0,0,0,0,0,0, + 0,252,0,7,255,0,15,31,128,30,15,128,62,15,192,124, + 7,192,124,7,224,124,7,224,252,7,224,255,255,224,255,255, + 128,252,0,0,252,0,0,252,0,0,254,0,0,126,0,64, + 127,0,224,63,131,192,63,255,128,31,255,0,15,254,0,3, + 248,0,13,35,70,14,0,0,28,0,126,0,254,0,127,0, + 31,0,15,128,7,128,3,192,1,192,0,224,0,64,0,0, + 0,0,1,192,63,192,127,192,63,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,31,224,127,248,127,248,14,35, + 70,14,1,0,0,224,1,252,1,252,3,248,3,240,7,224, + 7,192,15,128,15,0,30,0,8,0,0,0,0,0,3,128, + 127,128,255,128,127,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,63,192,255,240,255,240,16,35,70,14,255,0, + 3,192,3,224,7,240,15,240,15,248,31,252,62,124,60,30, + 120,15,240,7,64,3,0,0,0,0,0,224,31,224,63,224, + 31,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, + 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, + 15,240,63,252,63,252,16,33,66,14,255,0,56,14,124,31, + 124,31,252,63,252,63,124,31,120,30,0,0,0,0,0,0, + 0,0,0,224,31,224,63,224,31,224,7,224,7,224,7,224, + 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, + 7,224,7,224,7,224,7,224,15,240,63,252,63,252,21,34, + 102,25,2,0,1,192,0,15,224,0,63,240,248,31,255,248, + 0,255,192,0,126,0,1,255,0,7,239,128,31,143,128,2, + 7,192,0,3,224,0,3,224,1,251,240,7,253,240,15,255, + 240,31,15,248,62,7,248,62,3,248,124,3,248,124,1,248, + 252,1,248,252,1,248,252,1,248,252,1,248,252,1,240,252, + 1,240,252,1,240,126,3,224,126,3,224,63,3,192,63,7, + 128,31,143,0,7,254,0,1,248,0,26,33,132,28,1,0, + 0,240,12,0,1,252,12,0,3,255,28,0,3,255,248,0, + 7,255,240,0,14,31,224,0,12,3,192,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,3,1,240,0, + 127,135,252,0,255,159,252,0,63,191,254,0,31,248,254,0, + 31,224,126,0,31,192,126,0,31,128,126,0,31,128,126,0, + 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, + 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, + 31,128,126,0,31,128,126,0,63,192,255,0,255,243,255,192, + 255,243,255,192,21,35,105,25,2,0,1,192,0,15,224,0, + 15,224,0,7,240,0,3,240,0,1,248,0,0,248,0,0, + 124,0,0,60,0,0,30,0,0,12,0,0,0,0,0,0, + 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, + 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, + 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, + 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, + 1,248,0,21,35,105,25,2,0,0,15,0,0,15,192,0, + 31,224,0,31,128,0,63,0,0,62,0,0,124,0,0,120, + 0,0,240,0,0,224,0,0,192,0,0,0,0,0,0,0, + 0,252,0,3,255,0,15,15,192,30,7,224,62,7,224,62, + 3,240,124,3,240,124,1,248,252,1,248,252,1,248,252,1, + 248,252,1,248,252,1,248,252,1,248,252,1,240,126,1,240, + 126,3,224,62,3,224,63,3,192,31,135,128,7,254,0,1, + 248,0,21,35,105,25,2,0,0,120,0,0,252,0,0,252, + 0,1,254,0,3,255,0,3,255,0,7,207,128,15,135,192, + 15,1,192,28,0,224,8,0,64,0,0,0,0,0,0,0, + 252,0,3,255,0,15,15,192,30,7,224,62,7,224,62,3, + 240,124,3,240,124,1,248,252,1,248,252,1,248,252,1,248, + 252,1,248,252,1,248,252,1,248,252,1,240,126,1,240,126, + 3,224,62,3,224,63,3,192,31,135,128,7,254,0,1,248, + 0,21,33,99,25,2,0,3,192,48,7,240,48,15,252,96, + 31,255,224,31,255,192,56,127,128,48,15,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,252,0,3,255,0,15,15, + 192,30,7,224,62,7,224,62,3,240,124,3,240,124,1,248, + 252,1,248,252,1,248,252,1,248,252,1,248,252,1,248,252, + 1,248,252,1,240,126,1,240,126,3,224,62,3,224,63,3, + 192,31,135,128,7,254,0,1,248,0,21,33,99,25,2,0, + 7,1,192,15,131,224,31,135,224,31,135,224,31,135,224,31, + 7,192,14,3,128,0,0,0,0,0,0,0,0,0,0,0, + 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, + 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, + 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, + 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, + 1,248,0,18,18,54,20,1,4,0,192,0,1,224,0,1, + 224,0,1,224,0,1,224,0,0,192,0,0,0,0,127,255, + 192,127,255,192,255,255,128,0,0,0,0,0,0,0,192,0, + 1,224,0,1,224,0,1,224,0,1,224,0,0,192,0,21, + 24,72,25,2,255,0,0,24,0,252,56,3,255,240,15,15, + 224,30,7,224,62,3,240,60,7,240,124,15,240,124,31,248, + 252,29,248,252,57,248,252,121,248,252,241,248,252,225,248,253, + 193,248,255,193,240,127,129,240,127,1,224,62,3,224,63,3, + 192,63,135,128,127,254,0,113,248,0,192,0,0,26,35,140, + 27,1,0,0,224,0,0,3,240,0,0,7,240,0,0,1, + 248,0,0,0,248,0,0,0,124,0,0,0,62,0,0,0, + 30,0,0,0,15,0,0,0,7,0,0,0,2,0,0,0, + 0,0,0,0,0,0,0,3,128,28,0,255,135,252,0,255, + 135,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,129,252,0,31,199,252,128,31, + 255,255,128,15,254,255,192,7,248,126,0,3,224,112,0,26, + 35,140,27,1,0,0,3,128,0,0,7,240,0,0,7,240, + 0,0,15,224,0,0,15,192,0,0,31,128,0,0,31,0, + 0,0,62,0,0,0,60,0,0,0,120,0,0,0,48,0, + 0,0,0,0,0,0,0,0,0,3,128,28,0,255,135,252, + 0,255,135,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,128,252,0,31,129,252,0,31,199,252, + 128,31,255,255,128,15,254,255,192,7,248,126,0,3,224,112, + 0,26,35,140,27,1,0,0,30,0,0,0,62,0,0,0, + 127,0,0,0,255,128,0,0,255,128,0,1,255,192,0,3, + 247,224,0,3,193,224,0,7,128,240,0,15,0,112,0,6, + 0,48,0,0,0,0,0,0,0,0,0,3,128,28,0,255, + 135,252,0,255,135,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, + 128,252,0,31,128,252,0,31,128,252,0,31,129,252,0,31, + 199,252,128,31,255,255,128,15,254,255,192,7,248,126,0,3, + 224,112,0,26,33,132,27,1,0,3,192,240,0,7,193,240, + 0,7,225,248,0,7,225,248,0,7,193,240,0,7,193,240, + 0,7,129,224,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,128,28,0,255,135,252,0,255,135,252, + 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, + 0,31,128,252,0,31,129,252,0,31,199,252,128,31,255,255, + 128,15,254,255,192,7,248,126,0,3,224,112,0,25,46,184, + 24,255,245,0,1,224,0,0,3,248,0,0,3,248,0,0, + 3,240,0,0,7,224,0,0,7,192,0,0,15,128,0,0, + 15,0,0,0,30,0,0,0,28,0,0,0,56,0,0,0, + 0,0,0,0,0,0,0,127,240,127,128,127,240,127,128,31, + 192,30,0,15,192,28,0,15,192,28,0,7,224,60,0,7, + 224,56,0,3,240,56,0,3,240,112,0,1,240,112,0,1, + 248,240,0,1,248,224,0,0,252,224,0,0,253,224,0,0, + 125,192,0,0,127,192,0,0,127,128,0,0,63,128,0,0, + 63,128,0,0,31,0,0,0,31,0,0,0,14,0,0,0, + 14,0,0,0,30,0,0,0,28,0,0,0,60,0,0,0, + 120,0,0,32,248,0,0,63,240,0,0,127,224,0,0,255, + 192,0,0,255,128,0,0,126,0,0,0,24,47,141,27,1, + 245,3,0,0,63,128,0,255,128,0,255,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,131,224,31,143, + 248,31,191,252,31,255,252,31,240,254,31,192,126,31,128,63, + 31,128,63,31,128,31,31,128,31,31,128,31,31,128,31,31, + 128,31,31,128,30,31,128,30,31,128,62,31,192,60,31,240, + 124,31,255,248,31,255,240,31,159,224,31,135,128,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,63,192,0,255,248,0,255,248,0,25,44, + 176,24,255,245,0,224,56,0,1,240,124,0,3,240,252,0, + 3,240,252,0,3,240,252,0,3,224,248,0,1,192,112,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,240,127,128,127,240,127,128,31,192,30,0,15,192,28,0, + 15,192,28,0,7,224,60,0,7,224,56,0,3,240,56,0, + 3,240,112,0,1,240,112,0,1,248,240,0,1,248,224,0, + 0,252,224,0,0,253,224,0,0,125,192,0,0,127,192,0, + 0,127,128,0,0,63,128,0,0,63,128,0,0,31,0,0, + 0,31,0,0,0,14,0,0,0,14,0,0,0,30,0,0, + 0,28,0,0,0,60,0,0,0,120,0,0,32,248,0,0, + 63,240,0,0,127,224,0,0,255,192,0,0,255,128,0,0, + 126,0,0,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 29 + Calculated Max Values w=22 h=46 x= 3 y=17 dx=25 dy= 0 ascent=38 len=138 + Font Bounding box w=74 h=69 x=-24 y=-17 + Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 + Pure Font ascent =29 descent= 0 + X Font ascent =29 descent= 0 + Max Font ascent =38 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb30n[1275] U8G_SECTION(".progmem.u8g_font_gdb30n") = { + 0,74,69,232,239,29,0,0,0,0,42,57,0,38,247,29, + 0,19,20,60,21,1,17,0,48,0,1,240,0,1,240,0, + 32,240,0,112,225,128,120,227,192,126,231,224,127,255,224,31, + 255,0,3,248,0,3,248,0,31,255,0,127,255,192,254,231, + 192,124,227,192,48,225,192,0,240,128,0,240,0,1,240,0, + 0,192,0,18,18,54,20,1,4,0,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,127,255, + 192,255,255,192,255,255,128,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,192,0,10, + 15,30,13,1,247,7,0,63,128,255,192,127,192,63,192,15, + 192,15,192,15,128,15,128,15,0,31,0,30,0,60,0,120, + 0,48,0,15,3,6,17,1,11,127,254,127,252,255,252,8, + 7,7,13,3,255,62,127,255,255,255,254,124,21,46,138,23, + 1,248,0,0,56,0,0,248,0,0,240,0,1,240,0,1, + 240,0,1,224,0,3,224,0,3,224,0,3,192,0,7,192, + 0,7,128,0,15,128,0,15,128,0,15,0,0,31,0,0, + 31,0,0,30,0,0,62,0,0,60,0,0,124,0,0,124, + 0,0,120,0,0,248,0,0,248,0,0,240,0,1,240,0, + 1,224,0,3,224,0,3,224,0,3,192,0,7,192,0,7, + 192,0,7,128,0,15,128,0,15,0,0,31,0,0,31,0, + 0,30,0,0,62,0,0,62,0,0,60,0,0,124,0,0, + 120,0,0,248,0,0,248,0,0,192,0,0,22,29,87,24, + 1,0,0,252,0,3,255,0,7,143,192,15,7,224,30,3, + 224,62,1,240,62,1,240,124,1,248,124,1,248,124,0,248, + 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, + 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, + 248,126,0,248,62,1,240,62,1,240,31,1,224,31,3,192, + 15,135,128,3,255,0,0,252,0,19,29,87,24,3,0,0, + 16,0,0,248,0,7,248,0,63,248,0,255,248,0,225,248, + 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, + 0,1,248,0,1,248,0,1,248,0,1,248,0,15,255,0, + 127,255,224,127,255,224,20,29,87,24,1,0,0,255,0,7, + 255,192,15,143,224,63,7,224,62,3,240,126,3,240,126,3, + 240,120,3,240,0,3,240,0,7,224,0,7,224,0,15,192, + 0,15,128,0,31,128,0,31,0,0,62,0,0,124,0,0, + 248,0,0,248,0,1,240,0,3,224,32,7,192,48,15,128, + 48,15,0,48,30,0,112,63,255,240,127,255,240,255,255,240, + 127,255,240,20,29,87,24,1,0,1,254,0,7,255,128,31, + 31,192,63,15,192,62,7,224,126,7,224,60,7,224,0,7, + 224,0,7,192,0,15,192,0,31,128,0,127,0,1,254,0, + 1,255,128,2,63,192,0,15,224,0,7,224,0,3,240,0, + 3,240,0,3,240,0,3,240,0,3,240,0,3,240,64,7, + 224,96,15,224,252,31,192,63,255,128,31,254,0,3,248,0, + 21,29,87,25,2,0,0,1,128,0,15,128,0,31,128,0, + 63,128,0,63,128,0,127,128,0,255,128,0,239,128,1,239, + 128,3,207,128,3,143,128,7,143,128,7,15,128,14,15,128, + 30,15,128,28,15,128,56,15,128,56,15,128,127,255,248,255, + 255,240,255,255,224,0,15,128,0,15,128,0,15,128,0,15, + 128,0,15,128,0,31,192,1,255,240,1,255,240,20,29,87, + 24,2,0,0,0,32,31,255,240,31,255,192,31,255,192,31, + 255,128,28,0,0,28,0,0,28,0,0,60,0,0,60,0, + 0,56,0,0,59,252,0,63,255,0,63,255,128,120,31,192, + 32,15,224,0,7,224,0,7,240,0,3,240,0,3,240,0, + 3,240,0,3,240,0,3,240,0,7,224,64,7,224,224,15, + 192,252,31,128,63,254,0,7,248,0,20,29,87,24,2,0, + 0,1,128,0,31,192,0,127,0,1,252,0,3,240,0,7, + 192,0,15,128,0,31,128,0,63,0,0,62,0,0,126,0, + 0,124,126,0,125,255,128,255,255,192,255,15,224,254,7,224, + 252,7,240,252,3,240,252,3,240,252,3,240,252,3,240,124, + 3,240,126,3,224,126,3,224,62,3,192,31,7,192,15,143, + 128,7,255,0,1,248,0,21,28,84,24,2,0,127,255,240, + 127,255,248,127,255,240,127,255,224,112,1,224,224,1,224,192, + 1,192,64,3,192,0,3,128,0,7,128,0,7,0,0,15, + 0,0,15,0,0,30,0,0,30,0,0,60,0,0,60,0, + 0,124,0,0,120,0,0,248,0,0,240,0,1,240,0,1, + 240,0,3,224,0,3,224,0,7,224,0,15,192,0,6,0, + 0,20,29,87,24,2,0,0,252,0,7,255,128,15,31,192, + 30,15,192,28,7,224,60,7,224,60,7,224,60,7,224,62, + 15,192,63,143,128,31,255,0,31,254,0,15,252,0,3,255, + 0,7,255,128,15,255,192,31,31,224,62,15,240,126,7,240, + 252,3,240,252,3,240,252,3,240,252,3,240,252,3,224,126, + 3,224,126,7,192,63,15,128,31,254,0,3,248,0,20,29, + 87,24,2,255,1,252,0,7,255,0,15,31,128,30,15,192, + 62,7,224,124,7,224,124,7,224,252,3,240,252,3,240,252, + 3,240,252,3,240,252,3,240,254,3,240,126,7,240,127,15, + 240,63,255,240,31,251,224,7,227,224,0,7,224,0,7,192, + 0,7,192,0,15,128,0,31,0,0,62,0,0,252,0,3, + 248,0,15,224,0,63,128,0,56,0,0}; +/* + Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 30, '1' Height: 29 + Calculated Max Values w=41 h=49 x= 4 y=24 dx=42 dy= 0 ascent=39 len=210 + Font Bounding box w=74 h=69 x=-24 y=-17 + Calculated Min Values x=-7 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-11 + X Font ascent =38 descent=-11 + Max Font ascent =39 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdb30r[9112] U8G_SECTION(".progmem.u8g_font_gdb30r") = { + 0,74,69,232,239,30,10,50,24,78,32,127,245,39,245,38, + 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, + 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, + 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, + 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, + 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, + 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, + 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, + 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, + 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, + 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, + 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, + 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, + 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, + 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, + 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, + 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, + 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, + 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, + 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, + 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, + 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, + 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, + 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, + 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, + 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, + 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, + 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, + 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, + 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, + 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, + 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, + 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, + 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, + 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, + 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, + 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, + 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, + 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, + 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, + 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, + 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, + 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, + 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, + 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, + 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, + 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, + 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, + 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, + 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, + 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, + 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, + 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, + 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, + 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, + 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, + 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, + 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, + 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, + 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, + 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, + 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, + 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, + 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, + 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, + 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, + 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, + 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, + 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, + 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, + 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, + 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, + 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, + 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, + 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, + 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, + 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, + 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, + 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, + 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, + 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, + 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, + 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, + 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, + 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, + 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, + 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, + 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, + 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, + 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, + 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, + 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, + 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, + 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, + 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, + 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, + 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, + 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, + 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, + 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, + 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, + 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, + 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, + 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, + 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, + 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, + 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, + 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, + 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, + 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, + 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, + 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, + 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, + 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, + 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, + 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, + 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, + 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, + 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, + 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, + 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, + 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, + 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, + 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, + 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, + 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, + 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, + 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, + 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, + 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, + 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, + 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, + 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, + 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, + 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, + 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, + 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, + 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, + 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, + 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, + 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, + 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, + 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, + 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, + 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, + 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, + 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, + 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, + 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, + 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, + 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, + 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, + 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, + 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, + 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, + 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, + 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, + 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, + 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, + 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, + 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, + 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, + 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, + 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, + 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, + 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, + 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, + 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, + 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, + 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, + 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, + 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, + 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, + 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, + 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, + 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, + 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, + 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, + 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, + 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, + 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, + 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, + 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, + 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, + 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, + 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, + 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, + 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, + 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, + 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, + 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, + 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, + 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, + 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, + 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, + 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, + 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, + 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, + 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, + 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, + 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, + 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, + 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, + 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, + 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, + 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, + 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, + 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, + 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, + 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, + 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, + 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, + 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, + 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, + 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, + 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, + 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, + 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, + 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, + 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, + 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, + 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, + 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, + 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, + 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, + 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, + 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, + 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, + 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, + 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, + 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, + 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, + 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, + 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, + 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, + 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, + 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, + 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, + 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, + 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, + 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, + 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, + 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, + 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, + 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, + 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, + 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, + 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, + 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, + 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, + 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, + 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, + 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, + 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, + 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, + 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, + 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, + 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, + 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, + 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, + 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, + 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, + 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, + 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, + 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, + 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, + 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, + 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, + 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, + 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, + 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, + 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, + 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, + 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, + 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, + 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, + 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, + 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, + 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, + 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, + 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, + 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, + 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, + 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, + 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, + 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, + 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, + 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, + 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, + 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, + 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, + 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, + 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, + 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, + 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, + 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, + 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, + 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, + 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, + 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, + 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, + 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, + 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, + 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, + 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, + 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, + 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, + 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, + 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, + 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, + 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, + 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, + 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, + 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, + 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, + 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, + 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, + 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, + 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, + 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, + 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, + 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, + 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, + 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, + 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, + 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, + 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, + 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, + 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, + 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, + 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, + 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, + 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, + 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, + 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, + 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, + 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, + 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, + 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, + 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, + 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, + 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, + 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, + 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, + 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, + 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, + 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, + 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, + 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, + 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, + 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, + 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, + 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, + 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, + 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, + 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, + 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, + 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, + 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, + 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, + 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, + 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, + 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, + 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, + 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, + 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, + 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, + 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, + 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, + 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, + 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, + 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, + 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, + 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, + 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, + 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, + 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, + 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, + 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, + 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, + 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, + 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, + 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, + 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, + 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, + 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, + 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, + 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, + 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, + 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, + 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, + 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, + 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, + 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, + 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, + 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, + 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, + 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, + 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, + 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, + 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, + 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, + 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, + 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, + 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, + 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, + 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, + 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, + 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, + 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, + 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, + 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, + 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, + 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, + 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, + 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, + 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, + 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, + 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, + 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, + 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, + 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, + 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, + 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, + 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, + 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, + 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, + 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, + 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, + 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, + 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, + 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, + 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, + 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, + 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, + 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, + 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, + 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, + 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, + 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, + 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, + 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, + 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, + 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, + 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, + 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, + 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, + 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, + 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, + 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, + 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, + 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, + 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, + 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, + 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, + 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, + 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, + 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, + 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, + 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, + 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, + 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, + 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, + 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, + 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, + 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, + 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, + 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, + 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, + 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, + 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, + 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, + 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, + 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, + 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, + 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, + 192,64,31,128,192,15,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=15 len=30 + Font Bounding box w=25 h=24 x=-9 y=-6 + Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 + Pure Font ascent =10 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =15 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr10[3670] U8G_SECTION(".progmem.u8g_font_gdr10") = { + 0,25,24,247,250,10,2,30,4,177,32,255,252,15,251,13, + 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, + 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, + 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, + 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, + 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, + 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, + 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, + 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, + 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, + 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, + 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, + 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, + 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, + 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, + 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, + 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, + 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, + 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, + 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, + 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, + 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, + 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, + 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, + 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, + 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, + 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, + 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, + 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, + 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, + 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, + 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, + 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, + 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, + 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, + 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, + 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, + 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, + 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, + 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, + 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, + 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, + 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, + 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, + 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, + 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, + 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, + 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, + 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, + 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, + 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, + 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, + 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, + 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, + 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, + 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, + 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, + 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, + 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, + 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, + 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, + 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, + 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, + 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, + 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, + 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, + 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, + 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, + 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, + 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, + 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, + 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, + 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, + 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, + 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, + 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, + 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, + 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, + 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, + 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, + 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, + 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, + 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, + 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, + 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, + 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, + 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, + 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, + 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, + 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, + 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, + 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, + 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, + 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, + 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, + 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, + 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, + 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, + 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, + 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, + 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, + 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, + 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, + 32,192,8,2,2,8,0,4,57,206,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,4,0, + 0,2,13,13,5,1,251,64,64,0,0,64,64,64,64,64, + 64,64,192,192,6,10,10,8,1,0,16,28,116,144,144,144, + 144,116,56,16,7,11,11,8,1,255,60,68,68,64,64,240, + 64,64,66,134,252,4,6,6,8,2,2,144,240,144,144,240, + 144,9,10,20,8,255,0,231,128,34,0,22,0,20,0,8, + 0,62,0,8,0,8,0,8,0,28,0,1,17,17,4,2, + 253,128,128,128,128,128,128,128,128,0,128,128,128,128,128,128, + 128,128,6,12,12,8,1,0,112,152,128,96,184,140,196,100, + 24,136,200,112,5,2,2,7,1,9,136,136,10,10,20,12, + 1,0,30,0,127,128,114,128,160,64,160,64,160,64,176,64, + 94,128,97,128,30,0,4,6,6,4,0,5,96,160,96,160, + 240,240,6,8,8,8,1,0,36,72,72,144,144,72,72,36, + 7,3,3,8,0,2,254,2,2,4,1,1,6,1,4,240, + 6,6,6,6,0,6,120,132,180,180,180,120,6,1,1,8, + 1,9,252,4,4,4,6,1,6,112,144,144,224,6,8,8, + 7,1,1,32,32,32,252,32,32,64,248,4,7,7,6,1, + 5,112,144,16,32,64,144,240,4,7,7,5,0,5,112,144, + 16,48,16,144,224,3,3,3,5,2,9,96,64,128,9,12, + 24,9,0,252,195,0,65,0,65,0,65,0,65,0,65,0, + 99,0,125,128,64,0,64,0,96,0,96,0,8,12,12,10, + 1,254,63,202,138,138,202,122,10,10,10,10,10,31,1,2, + 2,2,1,5,128,128,2,4,4,4,1,252,128,192,64,128, + 4,6,6,6,0,5,96,160,32,32,32,112,4,6,6,5, + 0,5,96,144,144,144,96,240,7,8,8,8,1,0,144,72, + 108,36,54,108,72,144,9,10,20,10,1,0,193,0,66,0, + 66,0,68,0,72,0,169,0,23,0,37,0,39,128,67,128, + 8,10,10,10,1,0,193,66,68,68,72,171,21,34,37,79, + 10,11,22,10,0,0,112,0,80,128,33,0,18,0,18,0, + 228,0,8,128,11,128,18,128,19,192,33,192,6,13,13,8, + 1,251,32,32,0,32,32,32,64,64,128,128,132,136,112,10, + 15,30,10,0,0,32,0,24,0,12,0,0,0,0,0,4, + 0,12,0,20,0,18,0,18,0,30,0,33,0,33,0,65, + 128,227,192,10,15,30,10,0,0,2,0,7,0,12,0,16, + 0,0,0,4,0,12,0,20,0,18,0,18,0,30,0,33, + 0,33,0,65,128,227,192,10,15,30,10,0,0,12,0,12, + 0,18,0,33,0,0,0,4,0,12,0,20,0,18,0,18, + 0,30,0,33,0,33,0,65,128,227,192,10,14,28,10,0, + 0,10,0,25,0,38,0,0,0,4,0,12,0,20,0,18, + 0,18,0,30,0,33,0,33,0,65,128,227,192,10,13,26, + 10,0,0,34,0,34,0,0,0,4,0,12,0,20,0,18, + 0,18,0,30,0,33,0,33,0,65,128,227,192,10,15,30, + 10,0,0,12,0,20,0,28,0,0,0,0,0,4,0,12, + 0,20,0,18,0,18,0,30,0,33,0,33,0,65,128,227, + 192,12,10,20,13,1,0,31,224,10,32,10,0,18,0,31, + 224,50,0,34,0,34,0,66,16,231,240,7,14,14,9,1, + 252,62,66,128,128,128,128,128,128,66,102,24,24,8,16,7, + 15,15,8,1,0,64,224,16,8,0,252,68,64,64,124,64, + 64,64,66,254,7,15,15,8,1,0,8,28,48,0,0,252, + 68,64,64,124,64,64,64,66,254,7,15,15,8,1,0,16, + 56,72,4,0,252,68,64,64,124,64,64,64,66,254,7,13, + 13,8,1,0,136,136,0,252,68,64,64,124,64,64,64,66, + 254,4,15,15,5,0,0,128,192,32,16,0,112,32,32,32, + 32,32,32,32,32,112,4,15,15,5,1,0,32,48,64,128, + 0,224,64,64,64,64,64,64,64,64,224,5,15,15,5,0, + 0,32,112,136,0,0,112,32,32,32,32,32,32,32,32,112, + 5,13,13,5,0,0,136,136,0,112,32,32,32,32,32,32, + 32,32,112,8,10,10,10,1,0,252,70,65,65,241,65,65, + 66,66,252,9,14,28,11,1,0,18,0,58,0,4,0,0, + 0,195,128,97,0,97,0,81,0,73,0,77,0,69,0,67, + 0,67,0,225,0,8,15,15,10,1,0,32,112,8,4,0, + 60,66,129,129,129,129,129,130,66,60,8,15,15,10,1,0, + 4,14,24,0,0,60,66,129,129,129,129,129,130,66,60,8, + 15,15,10,1,0,8,28,36,66,0,60,66,129,129,129,129, + 129,130,66,60,8,14,14,10,1,0,18,50,76,0,60,66, + 129,129,129,129,129,130,66,60,8,13,13,10,1,0,68,68, + 0,60,66,129,129,129,129,129,130,66,60,5,5,5,7,1, + 2,136,80,32,80,136,8,10,10,10,1,0,29,98,131,133, + 137,145,161,194,66,188,9,15,30,11,1,0,32,0,48,0, + 12,0,0,0,0,0,227,128,65,0,65,0,65,0,65,0, + 65,0,65,0,65,0,34,0,60,0,9,15,30,11,1,0, + 2,0,6,0,8,0,16,0,0,0,227,128,65,0,65,0, + 65,0,65,0,65,0,65,0,65,0,34,0,60,0,9,15, + 30,11,1,0,8,0,28,0,34,0,0,0,0,0,227,128, + 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, + 60,0,9,13,26,11,1,0,34,0,34,0,0,0,227,128, + 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, + 60,0,9,15,30,10,1,0,4,0,14,0,24,0,0,0, + 0,0,195,128,97,0,50,0,22,0,28,0,8,0,8,0, + 8,0,8,0,28,0,7,10,10,9,1,0,224,64,124,70, + 66,66,66,124,64,224,8,13,13,10,1,0,28,38,66,66, + 68,72,80,88,78,67,81,81,206,7,12,12,8,1,0,64, + 32,16,0,28,100,4,28,100,132,140,118,7,12,12,8,1, + 0,8,16,32,0,28,100,4,28,100,132,140,118,7,12,12, + 8,1,0,48,72,136,4,28,100,4,28,100,132,140,118,7, + 11,11,8,1,0,100,152,0,28,100,4,28,100,132,140,118, + 7,11,11,8,1,0,136,136,0,28,100,4,28,100,132,140, + 118,7,12,12,8,1,0,48,80,112,0,28,100,4,28,100, + 132,140,118,10,8,16,12,1,0,59,128,204,64,136,64,63, + 192,72,0,136,0,156,192,231,0,6,12,12,7,1,252,60, + 72,128,128,128,128,196,120,32,48,16,32,6,12,12,8,1, + 0,96,32,16,0,56,68,132,252,128,128,68,120,6,12,12, + 8,1,0,12,24,32,0,56,68,132,252,128,128,68,120,6, + 12,12,8,1,0,48,72,132,0,56,68,132,252,128,128,68, + 120,6,11,11,8,1,0,132,136,0,56,68,132,252,128,128, + 68,120,4,12,12,5,0,0,192,64,32,0,32,96,32,32, + 32,32,32,112,4,12,12,5,1,0,48,96,64,0,64,192, + 64,64,64,64,64,224,5,12,12,5,0,0,32,80,136,0, + 32,96,32,32,32,32,32,112,5,11,11,5,0,0,136,136, + 0,32,96,32,32,32,32,32,112,6,12,12,8,1,0,104, + 28,120,8,52,204,132,132,132,132,72,112,8,11,11,9,1, + 0,54,76,0,78,210,98,66,66,66,66,231,7,12,12,9, + 1,0,96,32,16,0,56,68,130,130,130,130,68,56,7,12, + 12,9,1,0,12,8,16,0,56,68,130,130,130,130,68,56, + 7,12,12,9,1,0,16,40,68,0,56,68,130,130,130,130, + 68,56,7,11,11,9,1,0,52,216,0,56,68,130,130,130, + 130,68,56,7,11,11,9,1,0,132,132,0,56,68,130,130, + 130,130,68,56,5,6,6,7,1,2,32,32,0,248,32,32, + 7,8,8,9,1,0,62,68,142,146,146,226,68,248,9,12, + 24,9,0,0,48,0,24,0,8,0,0,0,195,0,65,0, + 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,9, + 0,0,6,0,4,0,8,0,0,0,195,0,65,0,65,0, + 65,0,65,0,65,0,67,0,61,128,9,12,24,9,0,0, + 8,0,20,0,34,0,0,0,195,0,65,0,65,0,65,0, + 65,0,65,0,67,0,61,128,9,11,22,9,0,0,34,0, + 66,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, + 67,0,61,128,8,16,16,8,0,252,6,12,8,0,231,98, + 34,36,52,20,24,8,8,16,160,192,7,17,17,9,1,252, + 64,192,64,64,64,92,102,66,66,66,66,100,120,64,64,64, + 224,8,15,15,8,0,252,66,66,0,231,98,34,36,52,20, + 24,8,8,16,160,192}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 10 + Calculated Max Values w= 8 h=16 x= 2 y= 6 dx= 8 dy= 0 ascent=13 len=16 + Font Bounding box w=25 h=24 x=-9 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =13 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr10n[249] U8G_SECTION(".progmem.u8g_font_gdr10n") = { + 0,25,24,247,250,10,0,0,0,0,42,57,0,13,253,10, + 0,6,7,7,8,1,6,32,168,236,48,252,164,32,6,6, + 6,7,1,2,32,32,32,252,32,32,2,4,4,4,1,253, + 192,64,64,128,4,1,1,6,1,4,240,1,2,2,4,2, + 0,128,128,8,16,16,8,0,253,3,2,6,4,4,12,8, + 8,16,16,48,32,32,96,64,192,6,10,10,8,1,0,56, + 72,132,132,132,132,132,132,72,112,5,10,10,8,2,0,32, + 224,32,32,32,32,32,32,32,248,5,10,10,8,2,0,56, + 200,136,8,16,32,32,64,136,248,6,10,10,8,1,0,112, + 136,136,16,48,8,4,4,140,120,6,10,10,8,1,0,8, + 24,40,40,72,136,252,8,8,60,6,10,10,8,1,0,124, + 64,64,120,140,4,4,4,132,120,6,10,10,8,1,0,24, + 32,64,128,248,132,132,132,72,56,6,10,10,8,1,0,252, + 132,8,8,8,16,16,32,32,64,6,10,10,8,1,0,120, + 196,196,200,56,204,132,132,132,120,6,10,10,8,1,0,56, + 200,132,132,132,124,4,8,16,96}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 + Font Bounding box w=25 h=24 x=-9 y=-6 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =10 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr10r[1723] U8G_SECTION(".progmem.u8g_font_gdr10r") = { + 0,25,24,247,250,10,2,30,4,177,32,127,252,14,252,13, + 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, + 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, + 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, + 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, + 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, + 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, + 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, + 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, + 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, + 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, + 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, + 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, + 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, + 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, + 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, + 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, + 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, + 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, + 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, + 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, + 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, + 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, + 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, + 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, + 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, + 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, + 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, + 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, + 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, + 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, + 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, + 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, + 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, + 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, + 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, + 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, + 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, + 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, + 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, + 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, + 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, + 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, + 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, + 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, + 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, + 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, + 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, + 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, + 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, + 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, + 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, + 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, + 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, + 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, + 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, + 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, + 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, + 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, + 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, + 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, + 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, + 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, + 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, + 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, + 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, + 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, + 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, + 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, + 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, + 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, + 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, + 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, + 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, + 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, + 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, + 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, + 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, + 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, + 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, + 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, + 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, + 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, + 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, + 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, + 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, + 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, + 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, + 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, + 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, + 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, + 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, + 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, + 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, + 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, + 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, + 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, + 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, + 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, + 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, + 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, + 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, + 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, + 32,192,8,2,2,8,0,4,57,206,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=19 x= 2 y=10 dx=15 dy= 0 ascent=16 len=34 + Font Bounding box w=26 h=25 x=-9 y=-6 + Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr11[3977] U8G_SECTION(".progmem.u8g_font_gdr11") = { + 0,26,25,247,250,11,2,61,5,21,32,255,252,16,251,14, + 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, + 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, + 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, + 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, + 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, + 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, + 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, + 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, + 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, + 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, + 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, + 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, + 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, + 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, + 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, + 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, + 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, + 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, + 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, + 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, + 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, + 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, + 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, + 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, + 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, + 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, + 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, + 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, + 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, + 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, + 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, + 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, + 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, + 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, + 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, + 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, + 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, + 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, + 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, + 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, + 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, + 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, + 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, + 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, + 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, + 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, + 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, + 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, + 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, + 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, + 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, + 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, + 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, + 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, + 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, + 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, + 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, + 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, + 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, + 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, + 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, + 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, + 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, + 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, + 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, + 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, + 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, + 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, + 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, + 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, + 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, + 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, + 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, + 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, + 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, + 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, + 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, + 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, + 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, + 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, + 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, + 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, + 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, + 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, + 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, + 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, + 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, + 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, + 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, + 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, + 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, + 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, + 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, + 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, + 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, + 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, + 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, + 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, + 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, + 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, + 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, + 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, + 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, + 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, + 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, + 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, + 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, + 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, + 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, + 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, + 32,64,192,8,2,2,9,0,4,57,206,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,4, + 0,0,2,13,13,5,1,251,64,192,0,64,64,64,64,64, + 64,64,64,64,64,7,11,11,8,1,0,16,24,118,144,144, + 144,144,212,126,16,16,7,11,11,8,1,0,60,68,68,64, + 64,240,64,64,66,130,254,6,6,6,8,1,2,248,76,72, + 72,120,132,9,11,22,8,0,0,231,128,98,0,50,0,20, + 0,28,0,8,0,127,0,8,0,8,0,8,0,28,0,1, + 19,19,4,2,252,128,128,128,128,128,128,128,128,0,0,0, + 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, + 128,224,248,142,130,66,60,12,132,196,120,5,2,2,7,1, + 10,136,136,11,11,22,13,1,0,31,0,32,128,94,64,162, + 32,160,32,160,32,160,32,177,32,94,64,32,128,31,0,5, + 6,6,5,0,5,48,80,112,144,248,240,7,8,8,9,1, + 0,38,36,72,152,152,72,36,38,7,3,3,8,1,2,254, + 2,2,5,1,1,6,1,4,248,6,7,7,6,0,6,120, + 72,188,188,180,104,120,6,1,1,9,1,10,252,4,4,4, + 6,1,7,112,144,144,224,7,8,8,7,0,1,16,16,254, + 16,16,16,0,126,4,7,7,6,1,5,112,144,16,32,64, + 144,240,5,7,7,6,0,5,56,72,8,24,8,136,112,3, + 4,4,6,2,9,32,96,64,128,8,12,12,10,1,252,198, + 66,66,66,66,66,102,123,64,64,64,96,8,13,13,10,1, + 254,63,202,138,138,138,202,122,10,10,10,10,10,31,1,2, + 2,3,1,5,128,128,2,4,4,4,1,252,192,64,192,128, + 4,7,7,6,1,5,32,224,32,32,32,32,240,4,6,6, + 5,0,5,96,144,144,144,96,240,7,8,8,9,1,0,144, + 72,100,54,54,100,72,144,10,11,22,11,1,0,192,128,65, + 0,65,0,66,0,70,0,164,0,8,128,27,128,18,128,35, + 192,101,192,9,11,22,11,1,0,193,0,65,0,66,0,68, + 0,68,0,168,0,11,128,20,128,33,0,34,128,71,128,10, + 11,22,10,0,0,96,128,144,128,33,0,17,0,18,0,228, + 0,4,128,11,128,18,128,19,192,37,192,6,13,13,8,1, + 251,16,48,0,16,16,16,32,64,128,132,132,136,112,11,15, + 30,11,0,0,16,0,56,0,4,0,2,0,4,0,12,0, + 14,0,18,0,18,0,19,0,31,0,33,0,33,128,32,128, + 241,224,11,15,30,11,0,0,1,0,7,0,12,0,0,0, + 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, + 33,128,32,128,241,224,11,15,30,11,0,0,4,0,14,0, + 17,0,32,0,4,0,12,0,14,0,18,0,18,0,19,0, + 31,0,33,0,33,128,32,128,241,224,11,15,30,11,0,0, + 9,0,29,0,34,0,0,0,4,0,12,0,14,0,18,0, + 18,0,19,0,31,0,33,0,33,128,32,128,241,224,11,14, + 28,11,0,0,33,0,33,0,0,0,4,0,12,0,14,0, + 18,0,18,0,19,0,31,0,33,0,33,128,32,128,241,224, + 11,16,32,11,0,0,4,0,10,0,18,0,12,0,0,0, + 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, + 33,128,32,128,241,224,13,11,22,14,0,0,15,248,5,8, + 5,0,9,0,15,240,17,0,17,0,17,0,33,8,33,8, + 243,248,9,15,30,10,1,252,62,0,66,0,128,0,128,0, + 128,0,128,0,128,0,128,0,192,0,97,128,62,0,8,0, + 12,0,4,0,8,0,7,15,15,9,1,0,64,224,24,0, + 254,66,64,64,124,64,64,64,66,66,254,7,15,15,9,1, + 0,4,12,48,0,254,66,64,64,124,64,64,64,66,66,254, + 7,15,15,9,1,0,16,40,68,0,254,66,64,64,124,64, + 64,64,66,66,254,7,14,14,9,1,0,68,68,0,254,66, + 64,64,124,64,64,64,66,66,254,4,15,15,5,0,0,128, + 192,48,0,112,32,32,32,32,32,32,32,32,32,112,5,15, + 15,5,1,0,16,56,192,0,224,64,64,64,64,64,64,64, + 64,64,224,5,15,15,5,0,0,32,80,136,0,112,32,32, + 32,32,32,32,32,32,32,112,5,14,14,5,0,0,136,136, + 0,112,32,32,32,32,32,32,32,32,32,112,9,11,22,11, + 1,0,252,0,67,0,65,0,64,128,64,128,240,128,64,128, + 64,128,65,0,67,0,252,0,10,15,30,12,1,0,25,0, + 57,0,38,0,0,0,193,192,96,128,112,128,80,128,72,128, + 76,128,70,128,66,128,65,128,65,128,224,128,9,15,30,11, + 1,0,32,0,112,0,12,0,0,0,30,0,99,0,129,0, + 128,128,128,128,128,128,128,128,128,128,65,0,98,0,60,0, + 9,15,30,11,1,0,2,0,6,0,24,0,0,0,30,0, + 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, + 98,0,60,0,9,15,30,11,1,0,8,0,20,0,34,0, + 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, + 128,128,65,0,98,0,60,0,9,15,30,11,1,0,18,0, + 58,0,68,0,0,0,30,0,99,0,129,0,128,128,128,128, + 128,128,128,128,128,128,65,0,98,0,60,0,9,14,28,11, + 1,0,34,0,34,0,0,0,30,0,99,0,129,0,128,128, + 128,128,128,128,128,128,128,128,65,0,98,0,60,0,6,6, + 6,7,1,2,140,88,48,48,88,140,9,11,22,11,1,0, + 30,128,35,0,67,0,134,128,132,128,136,128,144,128,176,128, + 97,0,98,0,188,0,10,15,30,12,1,0,32,0,24,0, + 4,0,2,0,225,192,64,128,64,128,64,128,64,128,64,128, + 64,128,64,128,64,128,33,0,30,0,10,15,30,12,1,0, + 2,0,7,0,8,0,16,0,225,192,64,128,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,15, + 30,12,1,0,12,0,30,0,34,0,1,0,225,192,64,128, + 64,128,64,128,64,128,64,128,64,128,64,128,64,128,33,0, + 30,0,10,14,28,12,1,0,34,0,34,0,0,0,225,192, + 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, + 33,0,30,0,10,15,30,11,0,0,1,0,7,0,12,0, + 0,0,225,192,48,128,17,0,25,0,10,0,14,0,4,0, + 4,0,4,0,4,0,14,0,7,11,11,9,1,0,240,64, + 124,70,66,66,66,68,124,64,240,8,14,14,10,1,0,28, + 38,66,66,66,76,80,80,76,71,65,81,81,222,7,13,13, + 8,1,0,64,96,48,16,0,60,68,132,28,100,132,140,118, + 7,13,13,8,1,0,12,8,16,32,0,60,68,132,28,100, + 132,140,118,7,13,13,8,1,0,48,56,72,132,0,60,68, + 132,28,100,132,140,118,7,12,12,8,1,0,116,152,0,0, + 60,68,132,28,100,132,140,118,7,12,12,8,1,0,132,132, + 0,0,60,68,132,28,100,132,140,118,7,13,13,8,1,0, + 48,72,72,48,0,60,68,132,28,100,132,140,118,11,8,16, + 12,1,0,29,192,102,32,68,32,159,224,100,0,132,0,142, + 32,115,192,7,12,12,8,1,252,60,68,128,128,128,128,194, + 124,16,24,8,16,6,13,13,8,1,0,96,32,16,16,0, + 56,68,132,252,128,128,68,120,6,13,13,8,1,0,12,8, + 16,16,0,56,68,132,252,128,128,68,120,6,13,13,8,1, + 0,16,56,108,68,0,56,68,132,252,128,128,68,120,6,12, + 12,8,1,0,68,68,0,0,56,68,132,252,128,128,68,120, + 4,13,13,5,0,0,192,64,32,32,16,32,96,32,32,32, + 32,32,112,4,13,13,5,1,0,48,32,64,64,0,64,192, + 64,64,64,64,64,224,5,13,13,5,0,0,32,112,216,136, + 0,32,96,32,32,32,32,32,112,5,12,12,5,0,0,136, + 136,0,0,32,96,32,32,32,32,32,112,7,13,13,9,1, + 0,96,30,56,68,4,62,198,130,130,130,132,68,56,8,12, + 12,10,1,0,50,76,0,0,78,210,98,66,66,66,66,231, + 7,13,13,9,1,0,96,32,16,8,0,56,196,130,130,130, + 130,68,56,7,13,13,9,1,0,4,12,24,16,0,56,196, + 130,130,130,130,68,56,7,13,13,9,1,0,16,56,36,68, + 0,56,196,130,130,130,130,68,56,7,12,12,9,1,0,50, + 92,0,0,56,196,130,130,130,130,68,56,7,12,12,9,1, + 0,68,68,0,0,56,196,130,130,130,130,68,56,6,6,6, + 7,1,2,32,32,0,252,32,32,7,9,9,9,1,0,2, + 62,68,138,146,162,226,68,248,8,13,13,10,1,0,96,48, + 16,8,0,198,66,66,66,66,66,70,59,8,13,13,10,1, + 0,4,12,8,16,0,198,66,66,66,66,66,70,59,8,13, + 13,10,1,0,24,56,36,66,0,198,66,66,66,66,66,70, + 59,8,12,12,10,1,0,68,68,0,0,198,66,66,66,66, + 66,70,59,9,17,34,9,0,252,2,0,4,0,12,0,8, + 0,0,0,243,128,97,0,34,0,50,0,20,0,20,0,28, + 0,8,0,8,0,16,0,176,0,224,0,8,18,18,10,1, + 252,64,192,64,64,64,64,78,115,65,65,65,65,98,124,64, + 64,64,240,9,16,32,9,0,252,34,0,34,0,0,0,0, + 0,243,128,97,0,34,0,50,0,20,0,20,0,28,0,8, + 0,8,0,16,0,176,0,224,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 11 + Calculated Max Values w= 8 h=17 x= 1 y= 6 dx= 9 dy= 0 ascent=14 len=17 + Font Bounding box w=26 h=25 x=-9 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent= 0 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr11n[262] U8G_SECTION(".progmem.u8g_font_gdr11n") = { + 0,26,25,247,250,11,0,0,0,0,42,57,0,14,253,11, + 0,6,8,8,8,1,6,48,16,164,120,120,164,16,48,7, + 6,6,7,0,2,16,16,16,254,16,16,2,5,5,4,1, + 253,64,192,64,64,128,5,1,1,6,1,4,248,2,2,2, + 4,1,0,192,128,8,17,17,8,0,253,1,2,2,6,4, + 4,12,8,8,16,16,48,32,32,96,64,192,6,11,11,8, + 1,0,48,72,132,132,132,132,132,132,132,72,48,6,11,11, + 8,1,0,16,240,16,16,16,16,16,16,16,16,124,6,11, + 11,8,1,0,28,100,68,4,8,8,16,32,68,68,252,6, + 11,11,7,0,0,56,68,68,4,24,12,4,4,4,140,120, + 7,11,11,8,0,0,4,12,12,20,36,36,68,254,4,4, + 30,6,11,11,8,1,0,124,64,64,64,120,132,4,4,4, + 132,120,6,11,11,8,1,0,12,48,64,192,184,196,132,132, + 132,72,56,7,11,11,8,1,0,254,132,4,8,8,8,16, + 16,32,32,96,7,11,11,9,1,0,120,196,196,196,120,60, + 194,130,130,130,124,6,11,11,8,1,0,56,200,132,132,132, + 132,124,4,8,16,224}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=19 x= 2 y= 9 dx=15 dy= 0 ascent=15 len=30 + Font Bounding box w=26 h=25 x=-9 y=-6 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr11r[1868] U8G_SECTION(".progmem.u8g_font_gdr11r") = { + 0,26,25,247,250,11,2,61,5,21,32,127,252,15,252,14, + 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, + 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, + 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, + 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, + 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, + 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, + 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, + 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, + 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, + 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, + 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, + 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, + 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, + 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, + 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, + 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, + 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, + 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, + 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, + 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, + 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, + 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, + 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, + 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, + 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, + 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, + 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, + 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, + 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, + 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, + 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, + 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, + 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, + 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, + 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, + 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, + 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, + 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, + 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, + 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, + 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, + 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, + 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, + 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, + 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, + 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, + 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, + 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, + 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, + 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, + 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, + 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, + 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, + 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, + 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, + 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, + 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, + 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, + 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, + 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, + 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, + 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, + 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, + 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, + 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, + 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, + 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, + 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, + 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, + 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, + 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, + 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, + 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, + 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, + 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, + 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, + 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, + 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, + 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, + 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, + 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, + 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, + 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, + 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, + 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, + 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, + 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, + 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, + 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, + 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, + 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, + 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, + 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, + 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, + 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, + 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, + 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, + 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, + 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, + 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, + 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, + 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, + 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, + 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, + 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, + 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, + 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, + 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, + 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, + 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, + 32,64,192,8,2,2,9,0,4,57,206,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 + Font Bounding box w=28 h=28 x=-10 y=-7 + Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =15 descent=-4 + Max Font ascent =17 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr12[4200] U8G_SECTION(".progmem.u8g_font_gdr12") = { + 0,28,28,246,249,12,2,80,5,85,32,255,252,17,251,15, + 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, + 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, + 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, + 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, + 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, + 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, + 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, + 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, + 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, + 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, + 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, + 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, + 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, + 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, + 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, + 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, + 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, + 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, + 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, + 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, + 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, + 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, + 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, + 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, + 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, + 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, + 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, + 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, + 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, + 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, + 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, + 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, + 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, + 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, + 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, + 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, + 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, + 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, + 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, + 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, + 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, + 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, + 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, + 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, + 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, + 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, + 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, + 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, + 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, + 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, + 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, + 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, + 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, + 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, + 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, + 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, + 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, + 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, + 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, + 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, + 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, + 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, + 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, + 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, + 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, + 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, + 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, + 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, + 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, + 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, + 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, + 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, + 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, + 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, + 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, + 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, + 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, + 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, + 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, + 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, + 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, + 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, + 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, + 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, + 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, + 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, + 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, + 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, + 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, + 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, + 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, + 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, + 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, + 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, + 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, + 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, + 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, + 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, + 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, + 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, + 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, + 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, + 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, + 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, + 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, + 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, + 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, + 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, + 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, + 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, + 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, + 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, + 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, + 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, + 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, + 0,125,128,79,0,134,0,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,4,0,0,2,14, + 14,5,2,251,64,192,64,128,128,128,128,128,128,128,128,128, + 128,128,7,12,12,9,1,0,16,16,62,212,144,144,144,144, + 210,124,16,16,7,12,12,9,1,0,60,70,68,64,64,64, + 240,64,64,66,66,254,7,6,6,9,1,3,132,126,68,68, + 68,254,9,11,22,9,0,0,231,128,99,0,50,0,20,0, + 28,0,8,0,127,0,8,0,8,0,8,0,62,0,1,20, + 20,4,2,252,128,128,128,128,128,128,128,128,128,0,0,128, + 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, + 128,224,184,134,130,98,60,12,132,196,120,5,2,2,7,1, + 10,136,136,12,12,24,14,1,0,15,0,48,192,94,32,146, + 32,160,16,160,16,160,16,160,16,144,160,79,32,32,64,31, + 128,5,7,7,5,0,5,48,208,112,208,176,72,240,7,8, + 8,9,1,0,34,36,76,216,216,76,36,34,8,4,4,9, + 0,2,255,1,1,1,5,1,1,6,1,4,248,7,6,6, + 7,0,7,56,238,170,178,238,56,6,1,1,9,2,11,252, + 5,5,5,7,1,7,112,136,136,136,112,7,9,9,8,0, + 1,16,16,16,254,16,16,16,0,126,4,7,7,6,1,6, + 112,144,16,32,64,144,240,5,8,8,6,0,5,56,72,8, + 16,8,8,136,112,4,4,4,6,2,10,48,96,64,128,8, + 13,13,10,1,252,194,70,66,66,66,66,102,126,91,64,64, + 64,96,8,14,14,10,1,254,63,70,134,134,134,70,62,6, + 6,6,6,6,6,15,1,2,2,3,1,5,128,128,2,4, + 4,4,2,252,192,192,64,128,5,7,7,6,1,6,32,224, + 32,32,32,32,248,4,7,7,5,0,5,96,144,144,144,144, + 96,240,7,8,8,9,1,0,136,72,36,50,50,36,72,136, + 10,11,22,11,1,0,192,128,65,0,65,0,66,0,68,0, + 228,0,9,128,18,128,18,128,39,192,65,192,9,11,22,11, + 1,0,192,128,65,0,66,0,66,0,68,0,239,128,12,128, + 17,0,49,0,34,128,71,128,10,12,24,11,1,0,96,0, + 144,128,33,0,18,0,146,0,228,0,8,0,9,128,18,128, + 50,128,39,192,65,192,6,14,14,8,1,251,16,48,16,16, + 16,16,32,32,64,128,132,132,136,112,11,16,32,11,0,0, + 16,0,60,0,2,0,0,0,4,0,6,0,14,0,10,0, + 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, + 11,16,32,11,0,0,1,0,7,128,8,0,0,0,4,0, + 6,0,14,0,10,0,11,0,17,0,17,0,31,128,33,128, + 32,128,32,192,241,224,11,16,32,11,0,0,4,0,10,0, + 17,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, + 17,0,31,128,33,128,32,128,32,192,241,224,11,15,30,11, + 0,0,29,128,39,0,0,0,4,0,6,0,14,0,10,0, + 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, + 11,15,30,11,0,0,33,0,33,0,0,0,4,0,6,0, + 14,0,10,0,11,0,17,0,17,0,31,128,33,128,32,128, + 32,192,241,224,11,17,34,11,0,0,14,0,18,0,18,0, + 12,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, + 17,0,31,128,33,128,32,128,32,192,241,224,14,12,24,15, + 0,0,31,248,5,8,5,0,9,0,9,0,31,240,17,32, + 17,0,33,0,33,8,97,12,243,248,9,16,32,10,1,252, + 30,0,99,0,128,0,128,0,128,0,128,0,128,0,128,0, + 128,0,65,0,97,128,62,0,8,0,12,0,4,0,8,0, + 8,16,16,9,1,0,64,48,8,0,254,66,64,64,64,124, + 72,64,64,66,67,254,8,16,16,9,1,0,4,14,48,0, + 254,66,64,64,64,124,72,64,64,66,67,254,8,16,16,9, + 1,0,24,44,68,2,254,66,64,64,64,124,72,64,64,66, + 67,254,8,15,15,9,1,0,132,132,0,254,66,64,64,64, + 124,72,64,64,66,67,254,4,16,16,6,0,0,128,96,16, + 0,112,32,32,32,32,32,32,32,32,32,32,112,5,16,16, + 6,1,0,24,48,192,0,224,64,64,64,64,64,64,64,64, + 64,64,224,6,16,16,6,0,0,48,88,132,0,112,32,32, + 32,32,32,32,32,32,32,32,112,6,15,15,6,0,0,132, + 136,0,112,32,32,32,32,32,32,32,32,32,32,112,10,12, + 24,11,0,0,126,0,33,128,32,128,32,64,32,64,124,64, + 160,64,32,64,32,64,32,128,33,0,126,0,10,15,30,12, + 1,0,25,0,38,0,0,0,193,192,96,128,112,128,80,128, + 88,128,76,128,68,128,70,128,67,128,65,128,65,128,224,128, + 9,16,32,11,1,0,32,0,24,0,4,0,0,0,30,0, + 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, + 65,0,98,0,60,0,9,16,32,11,1,0,3,0,6,0, + 24,0,0,0,30,0,99,0,129,0,128,128,128,128,128,128, + 128,128,128,128,128,128,65,0,98,0,60,0,9,16,32,11, + 1,0,12,0,22,0,34,0,1,0,30,0,99,0,129,0, + 128,128,128,128,128,128,128,128,128,128,128,128,65,0,98,0, + 60,0,9,15,30,11,1,0,25,0,110,0,0,0,30,0, + 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, + 65,0,98,0,60,0,9,15,30,11,1,0,66,0,66,0, + 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, + 128,128,128,128,65,0,98,0,60,0,6,6,6,8,1,2, + 132,72,48,48,72,132,9,12,24,11,1,0,30,128,35,0, + 67,0,131,128,132,128,136,128,136,128,144,128,225,0,97,0, + 98,0,188,0,10,16,32,12,1,0,48,0,24,0,6,0, + 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, + 64,128,64,128,64,128,33,0,30,0,10,16,32,12,1,0, + 1,0,6,0,8,0,0,0,225,192,64,128,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, + 10,16,32,12,1,0,12,0,26,0,33,0,0,0,225,192, + 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, + 64,128,33,0,30,0,10,15,30,12,1,0,33,0,33,0, + 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, + 64,128,64,128,64,128,33,0,30,0,11,16,32,11,0,0, + 1,0,3,128,12,0,0,0,225,224,48,128,49,128,25,0, + 10,0,14,0,4,0,4,0,4,0,4,0,4,0,31,0, + 8,12,12,10,1,0,240,64,124,66,65,65,65,65,98,92, + 64,240,9,14,28,11,1,0,30,0,35,0,65,0,65,0, + 65,0,70,0,72,0,72,0,70,0,67,128,64,128,72,128, + 72,128,207,0,7,14,14,9,1,0,96,32,16,16,8,60, + 68,132,4,60,196,132,140,118,7,14,14,9,1,0,12,8, + 16,16,0,60,68,132,4,60,196,132,140,118,7,14,14,9, + 1,0,16,56,76,132,0,60,68,132,4,60,196,132,140,118, + 7,13,13,9,1,0,34,116,152,0,60,68,132,4,60,196, + 132,140,118,7,12,12,9,1,0,132,132,0,60,68,132,4, + 60,196,132,140,118,7,14,14,9,1,0,56,72,72,48,0, + 60,68,132,4,60,196,132,140,118,11,9,18,13,1,0,57, + 192,70,64,196,32,4,32,31,224,100,0,132,0,142,32,115, + 192,7,13,13,8,1,252,60,68,128,128,128,128,128,98,60, + 16,24,8,16,7,14,14,9,1,0,96,32,16,8,0,60, + 68,130,130,254,128,128,66,60,7,14,14,9,1,0,4,14, + 8,16,0,60,68,130,130,254,128,128,66,60,7,14,14,9, + 1,0,24,56,36,66,0,60,68,130,130,254,128,128,66,60, + 7,12,12,9,1,0,130,132,0,60,68,130,130,254,128,128, + 66,60,4,14,14,5,0,0,192,64,32,16,0,32,96,32, + 32,32,32,32,32,112,4,14,14,5,1,0,16,48,96,64, + 0,64,192,64,64,64,64,64,64,224,6,14,14,5,0,0, + 32,112,200,132,0,32,96,32,32,32,32,32,32,112,6,12, + 12,5,255,0,132,132,0,16,48,16,16,16,16,16,16,56, + 7,13,13,9,1,0,96,30,56,68,60,70,130,130,130,130, + 132,68,56,8,13,13,10,1,0,51,58,76,0,76,210,98, + 66,66,66,66,66,231,8,14,14,10,1,0,96,48,16,8, + 0,60,66,129,129,129,129,130,66,60,8,14,14,10,1,0, + 6,12,8,16,0,60,66,129,129,129,129,130,66,60,8,14, + 14,10,1,0,24,56,36,66,0,60,66,129,129,129,129,130, + 66,60,8,13,13,10,1,0,50,122,76,0,60,66,129,129, + 129,129,130,66,60,8,12,12,10,1,0,130,130,0,60,66, + 129,129,129,129,130,66,60,6,6,6,8,1,2,32,32,252, + 0,32,32,8,9,9,10,1,0,29,102,135,137,153,145,226, + 98,252,8,14,14,10,1,0,96,48,16,8,0,198,66,66, + 66,66,66,66,70,59,8,14,14,10,1,0,6,12,8,16, + 0,198,66,66,66,66,66,66,70,59,8,14,14,10,1,0, + 24,28,36,66,0,198,66,66,66,66,66,66,70,59,8,12, + 12,10,1,0,130,130,0,198,66,66,66,66,66,66,70,59, + 9,18,36,9,0,252,3,0,6,0,4,0,8,0,0,0, + 243,128,97,0,33,0,50,0,18,0,20,0,28,0,12,0, + 8,0,8,0,16,0,176,0,224,0,8,18,18,10,1,252, + 64,192,64,64,64,78,114,65,65,65,65,66,98,124,64,64, + 64,240,9,16,32,9,0,252,65,0,65,0,0,0,243,128, + 97,0,33,0,50,0,18,0,20,0,28,0,12,0,8,0, + 8,0,16,0,176,0,224,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 12 + Calculated Max Values w= 8 h=18 x= 2 y= 7 dx= 9 dy= 0 ascent=15 len=18 + Font Bounding box w=28 h=28 x=-10 y=-7 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =12 descent= 0 + X Font ascent =12 descent= 0 + Max Font ascent =15 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr12n[270] U8G_SECTION(".progmem.u8g_font_gdr12n") = { + 0,28,28,246,249,12,0,0,0,0,42,57,0,15,253,12, + 0,7,7,7,8,1,7,16,148,222,48,252,146,16,7,7, + 7,8,0,2,16,16,16,254,16,16,16,2,5,5,4,1, + 253,64,192,64,64,128,5,1,1,6,1,4,248,2,3,3, + 4,1,255,192,192,128,8,18,18,9,0,253,1,1,3,2, + 6,4,4,12,8,8,24,16,48,32,32,96,64,192,7,11, + 11,9,1,0,56,68,130,130,130,130,130,130,132,68,56,6, + 12,12,9,1,0,16,112,144,16,16,16,16,16,16,16,16, + 252,6,12,12,8,1,0,60,68,196,4,4,8,16,16,32, + 68,132,252,7,12,12,8,0,0,28,38,98,2,4,28,2, + 2,2,2,134,124,7,12,12,9,1,0,4,12,12,20,20, + 36,68,68,254,4,4,30,6,11,11,9,2,0,124,64,64, + 64,120,132,4,4,4,132,120,7,12,12,9,1,0,12,48, + 64,64,128,252,198,130,130,130,68,56,7,11,11,9,1,0, + 254,130,4,4,8,8,24,16,48,32,96,7,12,12,9,1, + 0,120,196,196,196,232,60,78,130,130,130,194,124,7,11,11, + 9,1,0,56,68,130,130,130,198,122,2,4,8,112}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=30 + Font Bounding box w=28 h=28 x=-10 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =15 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr12r[1992] U8G_SECTION(".progmem.u8g_font_gdr12r") = { + 0,28,28,246,249,12,2,80,5,85,32,127,252,16,252,15, + 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, + 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, + 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, + 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, + 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, + 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, + 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, + 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, + 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, + 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, + 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, + 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, + 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, + 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, + 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, + 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, + 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, + 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, + 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, + 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, + 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, + 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, + 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, + 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, + 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, + 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, + 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, + 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, + 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, + 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, + 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, + 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, + 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, + 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, + 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, + 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, + 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, + 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, + 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, + 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, + 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, + 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, + 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, + 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, + 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, + 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, + 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, + 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, + 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, + 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, + 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, + 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, + 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, + 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, + 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, + 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, + 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, + 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, + 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, + 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, + 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, + 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, + 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, + 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, + 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, + 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, + 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, + 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, + 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, + 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, + 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, + 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, + 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, + 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, + 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, + 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, + 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, + 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, + 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, + 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, + 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, + 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, + 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, + 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, + 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, + 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, + 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, + 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, + 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, + 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, + 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, + 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, + 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, + 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, + 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, + 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, + 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, + 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, + 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, + 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, + 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, + 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, + 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, + 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, + 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, + 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, + 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, + 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, + 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, + 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, + 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, + 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, + 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, + 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, + 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, + 0,125,128,79,0,134,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=57 + Font Bounding box w=35 h=33 x=-12 y=-8 + Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =20 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr14[5942] U8G_SECTION(".progmem.u8g_font_gdr14") = { + 0,35,33,244,248,14,3,95,7,136,32,255,251,20,250,18, + 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, + 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, + 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, + 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, + 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, + 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, + 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, + 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, + 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, + 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, + 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, + 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, + 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, + 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, + 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, + 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, + 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, + 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, + 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, + 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, + 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, + 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, + 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, + 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, + 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, + 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, + 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, + 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, + 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, + 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, + 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, + 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, + 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, + 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, + 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, + 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, + 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, + 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, + 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, + 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, + 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, + 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, + 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, + 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, + 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, + 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, + 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, + 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, + 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, + 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, + 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, + 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, + 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, + 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, + 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, + 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, + 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, + 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, + 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, + 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, + 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, + 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, + 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, + 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, + 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, + 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, + 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, + 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, + 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, + 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, + 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, + 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, + 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, + 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, + 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, + 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, + 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, + 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, + 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, + 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, + 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, + 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, + 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, + 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, + 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, + 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, + 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, + 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, + 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, + 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, + 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, + 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, + 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, + 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, + 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, + 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, + 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, + 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, + 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, + 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, + 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, + 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, + 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, + 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, + 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, + 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, + 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, + 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, + 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, + 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, + 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, + 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, + 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, + 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, + 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, + 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, + 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, + 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, + 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, + 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, + 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, + 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, + 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, + 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, + 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, + 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, + 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, + 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, + 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, + 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, + 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, + 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, + 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, + 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, + 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, + 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, + 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, + 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, + 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, + 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, + 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, + 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, + 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, + 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, + 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, + 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, + 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, + 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, + 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, + 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, + 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, + 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, + 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, + 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, + 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, + 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, + 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, + 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, + 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, + 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, + 124,128,159,0,135,0,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,5,0,0,2,16,16, + 6,2,250,192,192,128,64,192,192,192,192,192,192,192,192,192, + 192,192,128,9,14,28,11,1,0,12,0,12,0,31,128,109, + 128,76,0,204,0,204,0,204,0,204,0,236,128,125,128,63, + 0,12,0,12,0,10,14,28,11,0,0,7,128,24,192,16, + 128,48,128,48,0,48,0,48,0,126,0,48,0,48,0,48, + 0,32,64,32,64,255,192,9,7,14,11,1,3,221,128,119, + 0,99,0,99,0,115,0,127,0,128,128,12,14,28,11,255, + 0,225,240,48,64,48,192,25,128,29,128,15,0,7,0,6, + 0,63,192,6,0,6,0,6,0,6,0,31,128,2,24,24, + 5,2,251,192,192,192,192,192,192,192,192,192,192,128,0,0, + 64,192,192,192,192,192,192,192,192,192,192,9,16,32,11,1, + 0,30,0,99,0,98,0,112,0,56,0,94,0,199,0,195, + 128,225,128,113,128,63,0,15,0,7,0,67,0,99,0,62, + 0,7,3,3,9,1,12,198,198,198,15,14,28,16,0,0, + 7,192,24,48,49,248,98,44,198,6,204,6,204,6,204,6, + 204,6,206,38,102,76,51,152,24,48,7,192,6,8,8,6, + 0,6,112,152,24,56,120,124,0,124,9,10,20,11,1,0, + 17,128,17,0,34,0,102,0,204,0,204,0,102,0,34,0, + 17,0,17,128,10,5,10,11,0,2,255,192,0,192,0,192, + 0,192,0,192,6,1,1,8,1,5,252,8,8,8,8,0, + 8,60,66,189,149,153,153,86,60,7,1,1,11,2,13,254, + 4,5,5,8,2,9,96,240,240,240,96,8,10,10,9,1, + 2,24,24,24,24,255,24,24,24,0,255,6,8,8,8,1, + 7,120,140,140,8,16,32,68,252,7,8,8,7,255,7,60, + 102,6,28,6,6,134,120,5,5,5,7,2,12,24,48,32, + 64,192,12,15,30,13,1,251,96,192,224,192,96,192,96,192, + 96,192,96,192,96,192,113,192,127,208,92,224,64,0,64,0, + 96,0,96,0,112,0,13,17,34,14,0,253,31,248,99,96, + 195,96,195,96,195,96,227,96,115,96,63,96,3,96,3,96, + 3,96,3,96,3,96,3,96,3,96,3,96,15,248,2,3, + 3,3,1,6,192,192,192,4,5,5,5,1,251,96,96,112, + 48,192,6,8,8,8,1,7,48,240,48,48,48,48,48,252, + 4,8,8,6,1,6,96,240,240,240,240,96,0,240,8,10, + 10,11,2,0,136,140,68,98,51,51,102,68,140,136,12,14, + 28,13,0,0,24,96,120,192,24,192,25,128,27,0,27,0, + 126,0,4,96,12,224,25,96,18,96,51,240,96,96,192,240, + 13,14,28,14,0,0,48,16,240,32,48,96,48,64,48,128, + 48,128,249,0,3,120,2,152,4,24,12,48,8,32,16,72, + 49,248,12,14,28,14,1,0,112,32,152,64,24,64,56,128, + 77,128,141,0,114,0,6,96,4,224,9,96,25,96,19,240, + 32,96,96,240,8,16,16,10,1,250,24,24,16,4,12,12, + 12,24,48,96,96,192,195,195,230,124,13,20,40,14,0,0, + 16,0,28,0,14,0,3,0,0,128,0,0,2,0,3,0, + 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, + 16,96,32,48,32,48,248,120,13,20,40,14,0,0,0,128, + 0,192,3,160,6,0,0,0,0,0,2,0,3,0,5,0, + 5,128,5,128,8,128,8,192,8,192,31,192,16,96,16,96, + 32,48,32,48,248,120,13,20,40,14,0,0,2,0,7,0, + 13,128,8,64,16,0,0,0,2,0,3,0,5,0,5,128, + 5,128,8,128,8,192,8,192,31,192,16,96,16,96,32,48, + 32,48,248,120,13,19,38,14,0,0,4,64,14,96,19,192, + 0,0,0,0,2,0,3,0,5,0,5,128,5,128,8,128, + 8,192,8,192,31,192,16,96,16,96,32,48,32,48,248,120, + 13,18,36,14,0,0,8,64,12,96,8,64,0,0,2,0, + 3,0,5,0,5,128,5,128,8,128,8,192,8,192,31,192, + 16,96,16,96,32,48,32,48,248,120,13,20,40,14,0,0, + 2,0,7,0,7,128,7,0,0,0,0,0,2,0,3,0, + 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, + 16,96,32,48,32,48,248,120,18,14,42,18,0,0,7,255, + 128,1,96,128,3,96,128,2,96,0,6,96,0,6,96,0, + 7,255,0,12,98,0,8,96,0,24,96,0,16,96,0,16, + 96,64,48,96,64,249,255,128,11,19,38,12,1,251,7,192, + 24,96,32,0,96,0,64,0,192,0,192,0,192,0,192,0, + 192,0,224,0,96,128,113,192,62,0,8,0,4,0,14,0, + 6,0,24,0,11,20,40,11,0,0,32,0,56,0,28,0, + 6,0,1,0,0,0,255,192,48,64,48,64,48,0,48,0, + 48,0,63,128,49,0,48,0,48,0,48,0,48,32,48,96, + 255,192,11,20,40,11,0,0,1,0,1,128,7,0,12,0, + 0,0,0,0,255,192,48,64,48,64,48,0,48,0,48,0, + 63,128,49,0,48,0,48,0,48,0,48,32,48,96,255,192, + 11,20,40,11,0,0,4,0,14,0,27,0,48,128,0,0, + 0,0,255,192,48,64,48,64,48,0,48,0,48,0,63,128, + 49,0,48,0,48,0,48,0,48,32,48,96,255,192,11,18, + 36,11,0,0,16,128,49,128,49,128,0,0,255,192,48,64, + 48,64,48,0,48,0,48,0,63,128,49,0,48,0,48,0, + 48,0,48,32,48,96,255,192,6,20,20,7,0,0,128,192, + 112,24,0,0,252,48,48,48,48,48,48,48,48,48,48,48, + 48,252,7,20,20,7,0,0,4,14,28,48,64,0,252,48, + 48,48,48,48,48,48,48,48,48,48,48,252,7,20,20,7, + 0,0,16,56,108,134,0,0,252,48,48,48,48,48,48,48, + 48,48,48,48,48,252,7,18,18,7,0,0,66,198,198,0, + 252,48,48,48,48,48,48,48,48,48,48,48,48,252,13,14, + 28,14,0,0,127,128,176,224,48,112,48,48,48,24,48,24, + 254,24,48,24,48,24,48,24,48,48,48,112,48,224,255,128, + 15,19,38,15,0,0,2,32,7,32,9,192,0,0,0,0, + 240,126,48,24,56,24,60,24,52,24,50,24,51,24,49,152, + 48,152,48,216,48,120,48,56,48,56,252,24,12,20,40,14, + 1,0,16,0,56,0,12,0,2,0,1,0,0,0,15,128, + 48,192,32,96,96,96,192,48,192,48,192,48,192,48,192,48, + 192,48,96,96,96,64,48,128,31,0,12,20,40,14,1,0, + 1,0,1,192,3,0,12,0,0,0,0,0,15,128,48,192, + 32,96,96,96,192,48,192,48,192,48,192,48,192,48,192,48, + 96,96,96,64,48,128,31,0,12,20,40,14,1,0,6,0, + 14,0,11,0,16,128,32,0,0,0,15,128,48,192,32,96, + 96,96,192,48,192,48,192,48,192,48,192,48,192,48,96,96, + 96,64,48,128,31,0,12,19,38,14,1,0,8,128,28,64, + 55,128,0,0,0,0,15,128,48,192,32,96,96,96,192,48, + 192,48,192,48,192,48,192,48,192,48,96,96,96,64,48,128, + 31,0,12,18,36,14,1,0,16,128,24,192,16,128,0,0, + 15,128,48,192,32,96,96,96,192,48,192,48,192,48,192,48, + 192,48,192,48,96,96,96,64,48,128,31,0,7,7,7,9, + 1,3,194,102,60,24,60,102,194,12,15,30,14,1,255,15, + 48,48,224,32,224,64,224,193,176,195,48,194,48,198,48,204, + 48,200,48,88,32,112,64,112,128,207,0,128,0,15,20,40, + 15,0,0,8,0,14,0,7,0,1,128,0,64,0,0,252, + 126,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,48,24,48,24,24,48,28,96,7,192,15,20,40,15,0, + 0,0,64,0,96,1,192,3,0,0,0,0,0,252,126,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,48,24,24,48,28,96,7,192,15,20,40,15,0,0,1, + 0,3,128,6,192,12,96,0,0,0,0,252,126,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,24,48,28,96,7,192,15,18,36,15,0,0,4,32,12, + 96,12,96,0,0,252,126,48,24,48,24,48,24,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,24,48,28,96,7, + 192,14,20,40,14,0,0,0,128,0,224,1,128,6,0,0, + 0,0,0,224,124,48,48,24,32,24,96,12,64,6,192,7, + 128,3,0,3,0,3,0,3,0,3,0,3,0,15,192,11, + 14,28,12,0,0,252,0,48,0,48,0,63,128,48,192,48, + 96,48,96,48,96,48,96,48,192,63,128,48,0,48,0,252, + 0,13,17,34,13,0,0,7,128,8,192,16,96,48,96,48, + 96,48,224,51,192,55,0,54,0,55,0,51,192,48,240,48, + 56,48,24,52,24,50,16,243,224,10,17,34,11,1,0,96, + 0,48,0,16,0,8,0,4,0,0,0,0,0,30,0,99, + 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, + 192,10,17,34,11,1,0,3,0,6,0,12,0,8,0,16, + 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, + 0,195,0,195,0,199,0,123,192,10,17,34,11,1,0,24, + 0,28,0,54,0,98,0,65,0,0,0,0,0,30,0,99, + 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, + 192,10,15,30,11,1,0,57,0,78,0,0,0,0,0,0, + 0,30,0,99,0,195,0,3,0,31,0,99,0,195,0,195, + 0,199,0,123,192,10,15,30,11,1,0,33,0,99,0,99, + 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, + 0,195,0,195,0,199,0,123,192,10,16,32,11,1,0,28, + 0,60,0,60,0,24,0,0,0,0,0,30,0,99,0,195, + 0,3,0,31,0,99,0,195,0,195,0,199,0,123,192,14, + 10,20,16,1,0,30,112,99,152,195,12,131,12,31,252,115, + 0,195,0,195,0,197,132,120,248,9,15,30,10,1,251,15, + 0,49,128,96,0,192,0,192,0,192,0,192,0,192,0,99, + 0,124,0,16,0,8,0,28,0,12,0,48,0,9,17,34, + 11,1,0,48,0,112,0,24,0,8,0,4,0,0,0,0, + 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, + 0,113,128,62,0,9,17,34,11,1,0,3,0,6,0,6, + 0,12,0,8,0,0,0,0,0,30,0,33,0,65,128,255, + 128,192,0,192,0,192,0,224,0,113,128,62,0,9,17,34, + 11,1,0,12,0,28,0,54,0,35,0,65,0,0,0,0, + 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, + 0,113,128,62,0,9,15,30,11,1,0,33,0,49,128,33, + 0,0,0,0,0,30,0,33,0,65,128,255,128,192,0,192, + 0,192,0,224,0,113,128,62,0,6,17,17,6,0,0,192, + 96,32,48,16,0,0,48,240,48,48,48,48,48,48,48,252, + 7,17,17,6,0,0,12,14,24,16,32,0,0,48,240,48, + 48,48,48,48,48,48,252,7,17,17,6,0,0,48,56,104, + 196,130,0,0,48,240,48,48,48,48,48,48,48,252,7,15, + 15,6,0,0,198,198,198,0,0,48,240,48,48,48,48,48, + 48,48,252,9,16,32,11,1,0,48,0,91,128,12,0,50, + 0,3,0,1,0,31,128,99,128,67,128,193,128,193,128,193, + 128,193,0,227,0,98,0,60,0,13,15,30,13,0,0,14, + 64,19,128,0,0,0,0,0,0,113,192,182,96,56,96,48, + 96,48,96,48,96,48,96,48,96,48,96,253,248,10,17,34, + 12,1,0,48,0,48,0,24,0,12,0,4,0,0,0,0, + 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, + 128,113,0,30,0,10,17,34,12,1,0,3,0,3,0,6, + 0,4,0,8,0,0,0,0,0,30,0,35,128,65,128,192, + 192,192,192,192,192,192,192,224,128,113,0,30,0,10,17,34, + 12,1,0,12,0,30,0,18,0,33,0,64,128,0,0,0, + 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, + 128,113,0,30,0,10,15,30,12,1,0,56,128,71,0,0, + 0,0,0,0,0,30,0,35,128,65,128,192,192,192,192,192, + 192,192,192,224,128,113,0,30,0,10,15,30,12,1,0,49, + 128,49,128,33,0,0,0,0,0,30,0,35,128,65,128,192, + 192,192,192,192,192,192,192,224,128,113,0,30,0,8,7,7, + 9,1,3,24,24,0,255,0,24,24,10,12,24,12,1,255, + 0,64,30,192,35,128,67,192,194,192,196,192,200,192,216,192, + 240,128,113,0,222,0,128,0,11,17,34,12,1,0,48,0, + 24,0,24,0,12,0,4,0,0,0,0,0,97,128,231,128, + 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, + 11,17,34,12,1,0,3,0,3,128,6,0,4,0,8,0, + 0,0,0,0,97,128,231,128,97,128,97,128,97,128,97,128, + 97,128,97,128,103,160,57,192,11,17,34,12,1,0,12,0, + 14,0,26,0,49,0,32,128,0,0,0,0,97,128,231,128, + 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, + 11,15,30,12,1,0,49,128,49,128,49,128,0,0,0,0, + 97,128,231,128,97,128,97,128,97,128,97,128,97,128,97,128, + 103,160,57,192,12,22,44,11,255,251,0,192,0,192,1,128, + 3,0,2,0,0,0,0,0,124,240,16,32,24,64,24,64, + 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, + 4,0,120,0,240,0,11,22,44,12,0,251,48,0,240,0, + 48,0,48,0,48,0,48,0,48,0,51,128,60,192,56,224, + 48,96,48,96,48,96,48,96,48,64,56,128,55,0,48,0, + 48,0,48,0,48,0,252,0,12,20,40,11,255,251,12,96, + 12,96,8,64,0,0,0,0,124,240,16,32,24,64,24,64, + 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, + 4,0,120,0,240,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 14 + Calculated Max Values w=10 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 + Font Bounding box w=35 h=33 x=-12 y=-8 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent= 0 + X Font ascent =14 descent= 0 + Max Font ascent =18 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr14n[445] U8G_SECTION(".progmem.u8g_font_gdr14n") = { + 0,35,33,244,248,14,0,0,0,0,42,57,0,18,252,14, + 0,9,10,20,10,1,8,24,0,24,0,137,0,235,128,60, + 0,60,0,235,0,137,0,24,0,24,0,8,8,8,9,1, + 2,24,24,24,255,24,24,24,24,4,6,6,5,0,253,112, + 240,48,48,32,64,6,1,1,8,1,5,252,2,3,3,5, + 2,0,192,192,192,9,22,44,11,1,252,0,128,1,128,1, + 0,3,0,3,0,2,0,6,0,6,0,12,0,12,0,8, + 0,24,0,24,0,16,0,48,0,48,0,96,0,96,0,64, + 0,192,0,192,0,128,0,9,14,28,11,1,0,28,0,39, + 0,99,0,67,128,193,128,193,128,193,128,193,128,193,128,193, + 128,193,0,97,0,98,0,28,0,8,14,14,11,2,0,24, + 120,152,24,24,24,24,24,24,24,24,24,24,255,8,14,14, + 11,1,0,60,103,195,131,3,6,6,12,24,24,48,97,193, + 255,9,14,28,12,1,0,30,0,103,0,195,0,3,0,2, + 0,4,0,30,0,3,0,1,128,1,128,1,128,1,128,195, + 0,60,0,10,14,28,11,0,0,3,0,7,0,7,0,11, + 0,27,0,19,0,35,0,99,0,67,0,255,192,3,0,3, + 0,3,0,15,192,9,14,28,11,0,0,0,128,63,0,32, + 0,32,0,96,0,126,0,67,0,1,128,1,128,1,128,1, + 128,1,0,195,0,60,0,9,14,28,11,1,0,3,0,12, + 0,48,0,32,0,96,0,222,0,227,0,193,128,193,128,193, + 128,193,128,97,0,99,0,30,0,9,13,26,11,1,0,127, + 128,129,0,129,0,3,0,2,0,6,0,4,0,12,0,8, + 0,24,0,24,0,48,0,32,0,9,14,28,11,1,0,62, + 0,71,0,195,0,195,0,195,0,118,0,30,0,39,0,99, + 128,193,128,193,128,193,128,99,0,60,0,9,14,28,11,1, + 0,30,0,99,0,67,0,193,128,193,128,193,128,193,128,99, + 128,61,128,1,0,3,0,6,0,8,0,112,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=57 + Font Bounding box w=35 h=33 x=-12 y=-8 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr14r[2791] U8G_SECTION(".progmem.u8g_font_gdr14r") = { + 0,35,33,244,248,14,3,95,7,136,32,127,251,19,251,18, + 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, + 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, + 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, + 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, + 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, + 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, + 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, + 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, + 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, + 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, + 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, + 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, + 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, + 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, + 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, + 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, + 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, + 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, + 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, + 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, + 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, + 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, + 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, + 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, + 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, + 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, + 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, + 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, + 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, + 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, + 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, + 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, + 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, + 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, + 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, + 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, + 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, + 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, + 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, + 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, + 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, + 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, + 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, + 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, + 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, + 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, + 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, + 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, + 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, + 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, + 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, + 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, + 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, + 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, + 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, + 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, + 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, + 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, + 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, + 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, + 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, + 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, + 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, + 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, + 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, + 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, + 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, + 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, + 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, + 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, + 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, + 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, + 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, + 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, + 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, + 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, + 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, + 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, + 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, + 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, + 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, + 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, + 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, + 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, + 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, + 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, + 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, + 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, + 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, + 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, + 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, + 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, + 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, + 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, + 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, + 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, + 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, + 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, + 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, + 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, + 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, + 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, + 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, + 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, + 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, + 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, + 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, + 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, + 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, + 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, + 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, + 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, + 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, + 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, + 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, + 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, + 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, + 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, + 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, + 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, + 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, + 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, + 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, + 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, + 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, + 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, + 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, + 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, + 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, + 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, + 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, + 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, + 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, + 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, + 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, + 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, + 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, + 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, + 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, + 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, + 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, + 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, + 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, + 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, + 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, + 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, + 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, + 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, + 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, + 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, + 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, + 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, + 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, + 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, + 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, + 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, + 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, + 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, + 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, + 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, + 124,128,159,0,135,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 17, '1' Height: 16 + Calculated Max Values w=22 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=66 + Font Bounding box w=40 h=38 x=-14 y=-9 + Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =23 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr17[7056] U8G_SECTION(".progmem.u8g_font_gdr17") = { + 0,40,38,242,247,17,4,64,9,46,32,255,250,23,249,21, + 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, + 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, + 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, + 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, + 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, + 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, + 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, + 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, + 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, + 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, + 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, + 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, + 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, + 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, + 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, + 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, + 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, + 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, + 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, + 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, + 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, + 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, + 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, + 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, + 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, + 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, + 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, + 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, + 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, + 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, + 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, + 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, + 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, + 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, + 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, + 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, + 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, + 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, + 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, + 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, + 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, + 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, + 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, + 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, + 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, + 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, + 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, + 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, + 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, + 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, + 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, + 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, + 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, + 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, + 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, + 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, + 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, + 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, + 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, + 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, + 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, + 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, + 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, + 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, + 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, + 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, + 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, + 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, + 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, + 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, + 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, + 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, + 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, + 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, + 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, + 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, + 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, + 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, + 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, + 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, + 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, + 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, + 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, + 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, + 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, + 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, + 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, + 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, + 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, + 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, + 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, + 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, + 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, + 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, + 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, + 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, + 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, + 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, + 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, + 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, + 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, + 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, + 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, + 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, + 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, + 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, + 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, + 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, + 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, + 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, + 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, + 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, + 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, + 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, + 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, + 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, + 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, + 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, + 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, + 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, + 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, + 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, + 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, + 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, + 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, + 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, + 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, + 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, + 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, + 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, + 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, + 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, + 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, + 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, + 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, + 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, + 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, + 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, + 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, + 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, + 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, + 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, + 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, + 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, + 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, + 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, + 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, + 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, + 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, + 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, + 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, + 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, + 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, + 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, + 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, + 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, + 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, + 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, + 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, + 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, + 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, + 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, + 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, + 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, + 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, + 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, + 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, + 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, + 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, + 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, + 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, + 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, + 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, + 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, + 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, + 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,6,0,0,3,19,19,7,2,249, + 96,224,224,192,64,64,64,64,64,96,96,96,96,224,224,224, + 224,224,192,11,17,34,13,1,255,6,0,6,0,7,128,31, + 224,38,64,102,0,198,0,198,0,198,0,198,0,198,0,230, + 32,118,64,63,128,15,0,6,0,6,0,11,16,32,13,1, + 0,7,192,24,224,16,64,48,64,48,0,48,0,48,0,48, + 0,255,0,48,0,48,0,48,0,48,32,32,32,96,96,255, + 224,9,8,16,13,2,4,128,128,93,0,119,0,99,0,99, + 0,119,0,93,0,128,128,14,16,32,13,255,0,240,124,48, + 48,24,96,28,96,12,192,14,192,7,128,3,128,3,0,63, + 240,3,0,3,0,3,0,3,0,3,0,15,192,2,27,27, + 6,2,251,192,192,192,192,192,192,192,192,192,192,192,192,128, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,10,19, + 38,13,1,0,31,0,35,128,97,0,96,0,112,0,60,0, + 127,0,199,128,195,192,193,192,224,192,120,192,63,128,15,0, + 3,128,65,128,65,128,97,0,62,0,9,3,6,11,1,15, + 193,128,193,128,193,128,17,17,51,19,1,0,3,224,0,12, + 24,0,48,6,0,48,246,0,99,27,0,102,1,0,204,1, + 128,204,1,128,204,1,128,204,1,128,204,1,128,70,19,0, + 103,19,0,49,230,0,48,6,0,12,24,0,3,224,0,7, + 8,8,7,0,8,56,76,140,60,108,108,126,126,10,12,24, + 13,1,0,8,64,24,192,16,128,49,128,99,0,230,0,231, + 0,99,0,49,128,16,128,8,192,8,64,11,6,12,13,1, + 2,255,224,0,96,0,96,0,96,0,96,0,96,7,1,1, + 9,1,6,254,9,9,18,10,0,10,62,0,99,0,255,128, + 146,128,156,128,152,128,213,128,107,0,62,0,9,1,2,13, + 2,16,255,128,6,6,6,10,2,10,56,76,204,204,200,112, + 10,12,24,11,1,2,12,0,12,0,12,0,12,0,255,192, + 12,0,12,0,12,0,12,0,0,0,0,0,255,128,7,10, + 10,9,1,8,60,70,198,6,12,24,16,32,66,254,8,10, + 10,9,255,8,30,35,67,2,14,3,3,3,198,60,5,6, + 6,9,3,14,24,56,48,96,192,128,14,18,36,14,0,250, + 48,48,240,112,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,56,240,63,188,55,56,48,0,48,0,48,0,48,0, + 56,0,48,0,13,20,40,15,1,253,31,248,49,224,97,224, + 193,224,193,224,193,224,193,224,97,224,113,224,31,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, + 7,248,2,3,3,4,1,8,192,192,192,5,6,6,6,0, + 250,48,32,56,88,16,224,7,10,10,9,1,8,24,248,24, + 24,24,24,24,24,24,126,6,8,8,8,1,8,56,76,204, + 204,204,200,112,252,10,12,24,13,2,0,132,0,198,0,98, + 0,35,0,49,128,24,192,25,192,49,128,35,0,98,0,198, + 0,132,0,14,16,32,16,1,0,48,24,240,56,48,48,48, + 96,48,192,48,192,49,128,255,0,3,24,6,56,12,88,12, + 88,24,152,17,252,48,24,96,60,13,16,32,15,1,0,48, + 8,240,16,48,48,48,32,48,96,48,192,48,128,253,128,3, + 112,2,152,7,24,4,16,8,48,24,96,16,200,49,248,14, + 16,32,16,1,0,56,24,204,16,12,48,56,32,12,64,12, + 192,140,128,113,128,3,24,2,56,6,88,12,88,8,152,25, + 252,16,24,48,60,10,19,38,12,1,249,6,0,14,0,14, + 0,12,0,2,0,6,0,6,0,6,0,12,0,28,0,56, + 0,112,0,96,0,192,0,192,192,192,192,192,192,97,128,62, + 0,16,23,46,16,0,0,12,0,30,0,7,0,1,128,0, + 64,0,0,0,128,1,128,3,128,3,192,2,192,6,192,6, + 96,4,96,12,112,12,48,15,240,24,24,24,24,16,24,48, + 12,48,12,248,63,16,23,46,16,0,0,0,48,0,112,1, + 192,3,128,2,0,0,0,0,128,1,128,3,128,3,192,2, + 192,6,192,6,96,4,96,12,112,12,48,15,240,24,24,24, + 24,16,24,48,12,48,12,248,63,16,22,44,16,0,0,3, + 128,6,192,12,32,8,16,0,0,0,128,1,128,3,128,3, + 192,2,192,6,192,6,96,4,96,12,112,12,48,15,240,24, + 24,24,24,16,24,48,12,48,12,248,63,16,22,44,16,0, + 0,0,16,7,176,9,224,16,192,0,0,0,128,1,128,3, + 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, + 240,24,24,24,24,16,24,48,12,48,12,248,63,16,21,42, + 16,0,0,12,48,12,48,8,32,0,0,0,128,1,128,3, + 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, + 240,24,24,24,24,16,24,48,12,48,12,248,63,16,23,46, + 16,0,0,1,192,3,96,3,96,3,192,1,128,0,0,0, + 128,1,128,3,128,3,192,2,192,6,192,6,96,4,96,12, + 112,12,48,15,240,24,24,24,24,16,24,48,12,48,12,248, + 63,20,17,51,21,0,0,7,255,224,1,176,32,1,176,32, + 1,48,0,3,48,0,3,48,0,6,48,0,7,255,192,4, + 48,128,12,48,0,12,48,0,24,48,0,24,48,0,16,48, + 0,48,48,16,48,48,48,248,255,240,12,23,46,14,1,250, + 7,224,24,112,48,0,32,0,96,0,64,0,192,0,192,0, + 192,0,192,0,192,0,192,0,224,0,96,32,112,32,61,192, + 31,128,4,0,4,0,7,0,3,0,2,0,28,0,12,23, + 46,13,1,0,48,0,120,0,28,0,6,0,1,0,0,0, + 255,224,48,32,48,32,48,0,48,0,48,0,48,0,63,192, + 48,128,48,0,48,0,48,0,48,0,48,0,48,16,48,48, + 255,224,12,23,46,13,1,0,0,192,3,192,7,0,12,0, + 16,0,0,0,255,224,48,32,48,32,48,0,48,0,48,0, + 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, + 48,16,48,48,255,224,12,22,44,13,1,0,14,0,27,0, + 48,128,64,64,0,0,255,224,48,32,48,32,48,0,48,0, + 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, + 48,0,48,16,48,48,255,224,12,21,42,13,1,0,32,128, + 97,128,32,128,0,0,255,224,48,32,48,32,48,0,48,0, + 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, + 48,0,48,16,48,48,255,224,8,23,23,8,255,0,96,240, + 56,12,2,0,63,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,63,7,23,23,8,1,0,6,14,56,112,64, + 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,252,8,22,22,8,0,0,56,108,194,129,0,126,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,126,8,21, + 21,8,0,0,195,195,130,0,126,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,126,14,17,34,16,1,0,127, + 128,176,224,48,48,48,24,48,24,48,12,48,12,48,12,255, + 12,48,12,48,12,48,12,48,24,48,24,48,48,48,96,255, + 128,16,22,44,18,1,0,0,16,7,176,9,224,16,192,0, + 0,240,63,48,12,56,12,60,12,52,12,54,12,51,12,51, + 12,49,140,48,204,48,204,48,108,48,60,48,60,48,28,48, + 28,252,12,14,23,46,16,1,0,24,0,28,0,7,0,3, + 128,0,128,0,0,7,192,24,96,48,48,96,24,96,24,64, + 12,192,12,192,12,192,12,192,12,192,12,192,8,96,24,96, + 16,48,48,24,96,15,128,14,23,46,16,1,0,0,96,0, + 240,1,192,3,0,4,0,0,0,7,192,24,96,48,48,96, + 24,96,24,64,12,192,12,192,12,192,12,192,12,192,12,192, + 8,96,24,96,16,48,48,24,96,15,128,14,22,44,16,1, + 0,3,128,4,192,8,96,16,32,0,0,7,192,24,96,48, + 48,96,24,96,24,64,12,192,12,192,12,192,12,192,12,192, + 12,192,8,96,24,96,16,48,48,24,96,15,128,14,22,44, + 16,1,0,0,32,15,48,19,224,32,128,0,0,7,192,24, + 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, + 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,14, + 21,42,16,1,0,24,96,24,96,16,64,0,0,7,192,24, + 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, + 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,9, + 9,18,11,1,3,193,128,99,0,54,0,28,0,28,0,28, + 0,54,0,99,0,193,128,14,18,36,16,1,255,7,204,24, + 120,48,48,32,120,96,120,64,220,193,204,193,140,195,12,199, + 12,198,12,204,8,104,24,120,16,48,48,120,96,207,128,128, + 0,16,23,46,18,1,0,12,0,30,0,7,0,1,192,0, + 64,0,0,252,63,48,12,48,12,48,12,48,12,48,12,48, + 12,48,12,48,12,48,12,48,12,48,12,48,12,48,24,24, + 24,12,48,7,224,16,23,46,18,1,0,0,48,0,112,1, + 192,3,128,2,0,0,0,252,63,48,12,48,12,48,12,48, + 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, + 12,48,24,24,24,12,48,7,224,16,22,44,18,1,0,1, + 128,2,64,4,32,8,16,0,0,252,63,48,12,48,12,48, + 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, + 12,48,12,48,24,24,24,12,48,7,224,16,21,42,18,1, + 0,12,48,12,48,8,32,0,0,252,63,48,12,48,12,48, + 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, + 12,48,12,48,24,24,24,12,48,7,224,15,23,46,16,0, + 0,0,48,0,112,0,192,3,128,2,0,0,0,240,62,56, + 12,24,24,28,24,14,48,6,32,7,96,3,192,3,192,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,7,224,12, + 17,34,14,1,0,252,0,48,0,48,0,63,128,48,224,48, + 96,48,48,48,48,48,48,48,48,48,48,48,96,56,192,55, + 128,48,0,48,0,252,0,14,20,40,15,1,0,3,192,12, + 224,24,112,16,48,48,48,48,48,48,96,49,192,51,0,54, + 0,54,0,55,128,51,224,48,248,48,60,48,28,50,12,50, + 12,51,24,243,240,11,20,40,12,1,0,48,0,120,0,24, + 0,12,0,4,0,2,0,0,0,0,0,31,0,97,128,225, + 128,1,128,1,128,31,128,121,128,225,128,193,128,193,128,199, + 128,121,224,11,20,40,12,1,0,1,128,3,128,3,0,6, + 0,4,0,8,0,0,0,0,0,31,0,97,128,225,128,1, + 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, + 224,11,19,38,12,1,0,12,0,30,0,19,0,33,128,64, + 192,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, + 128,121,128,225,128,193,128,193,128,199,128,121,224,11,18,36, + 12,1,0,24,64,60,128,71,0,0,0,0,0,0,0,31, + 0,97,128,225,128,1,128,1,128,31,128,121,128,225,128,193, + 128,193,128,199,128,121,224,11,18,36,12,1,0,97,128,97, + 128,97,128,0,0,0,0,0,0,31,0,97,128,225,128,1, + 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, + 224,11,19,38,12,1,0,14,0,11,0,27,0,27,0,14, + 0,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, + 128,121,128,225,128,193,128,193,128,199,128,121,224,17,12,36, + 19,1,0,31,62,0,97,195,0,97,193,128,193,129,128,15, + 255,128,57,128,0,97,128,0,193,128,0,193,128,0,193,193, + 0,198,227,0,120,124,0,10,18,36,12,1,250,15,192,48, + 192,96,128,64,0,192,0,192,0,192,0,192,0,224,0,96, + 64,120,192,63,0,12,0,4,0,7,0,3,0,2,0,28, + 0,10,20,40,12,1,0,48,0,56,0,24,0,12,0,6, + 0,2,0,0,0,0,0,15,0,49,128,96,192,64,192,255, + 192,192,0,192,0,192,0,224,0,96,64,48,128,31,0,10, + 20,40,12,1,0,1,192,1,128,3,0,2,0,4,0,12, + 0,0,0,0,0,15,0,49,128,96,192,64,192,255,192,192, + 0,192,0,192,0,224,0,96,64,48,128,31,0,10,19,38, + 12,1,0,6,0,15,0,25,0,48,128,32,64,0,0,0, + 0,15,0,49,128,96,192,64,192,255,192,192,0,192,0,192, + 0,224,0,96,64,48,128,31,0,10,18,36,12,1,0,32, + 128,48,192,32,128,0,0,0,0,0,0,15,0,49,128,96, + 192,64,192,255,192,192,0,192,0,192,0,224,0,96,64,48, + 128,31,0,7,20,20,7,0,0,192,224,112,48,24,8,0, + 0,24,120,24,24,24,24,24,24,24,24,24,126,7,20,20, + 7,1,0,14,12,24,16,48,96,0,0,48,240,48,48,48, + 48,48,48,48,48,48,252,8,19,19,7,0,0,24,60,100, + 194,129,0,0,24,120,24,24,24,24,24,24,24,24,24,126, + 8,18,18,7,0,0,130,195,130,0,0,0,24,120,24,24, + 24,24,24,24,24,24,24,126,11,19,38,13,1,0,24,0, + 60,224,7,128,31,0,49,128,0,192,0,192,15,192,49,224, + 96,224,64,96,192,96,192,96,192,96,192,64,224,192,96,192, + 49,128,30,0,14,18,36,15,1,0,12,32,31,64,35,128, + 0,0,0,0,0,0,113,224,178,48,52,48,56,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,252,252,12,20, + 40,14,1,0,56,0,24,0,12,0,4,0,6,0,3,0, + 0,0,0,0,15,128,48,192,96,96,64,112,192,48,192,48, + 192,48,192,48,224,32,96,96,48,192,31,0,12,20,40,14, + 1,0,0,192,1,128,3,128,3,0,6,0,4,0,0,0, + 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, + 192,48,224,32,96,96,48,192,31,0,12,19,38,14,1,0, + 6,0,15,0,25,128,16,128,32,64,0,0,0,0,15,128, + 48,192,96,96,64,112,192,48,192,48,192,48,192,48,224,32, + 96,96,48,192,31,0,12,18,36,14,1,0,28,96,62,64, + 35,128,0,0,0,0,0,0,15,128,48,192,96,96,64,112, + 192,48,192,48,192,48,192,48,224,32,96,96,48,192,31,0, + 12,18,36,14,1,0,48,192,48,192,48,192,0,0,0,0, + 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, + 192,48,224,32,96,96,48,192,31,0,9,9,18,11,1,3, + 12,0,12,0,0,0,0,0,255,128,0,0,0,0,12,0, + 12,0,12,14,28,14,1,255,0,16,15,176,49,224,96,224, + 65,240,195,48,198,48,198,48,204,48,248,32,112,96,120,192, + 223,0,128,0,14,20,40,14,0,0,28,0,12,0,6,0, + 3,0,1,0,1,128,0,0,0,0,48,48,240,240,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,112,56,188, + 31,48,14,20,40,14,0,0,0,96,0,224,0,192,1,128, + 3,0,2,0,0,0,0,0,48,48,240,240,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,112,56,188,31,48, + 14,19,38,14,0,0,3,0,7,128,4,192,8,96,16,32, + 0,0,0,0,48,48,240,240,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,112,56,188,31,48,14,18,36,14, + 0,0,24,96,24,96,24,96,0,0,0,0,0,0,48,48, + 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,112,56,188,31,48,14,26,52,13,255,250,0,112,0,96, + 0,224,0,192,1,128,1,0,0,0,0,0,124,60,24,24, + 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, + 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0, + 12,26,52,14,1,250,48,0,240,0,48,0,48,0,48,0, + 48,0,48,0,48,0,51,192,52,224,56,96,48,48,48,48, + 48,48,48,48,48,48,48,32,48,96,56,64,55,128,48,0, + 48,0,48,0,48,0,48,0,252,0,14,24,48,13,255,250, + 12,48,12,48,8,32,0,0,0,0,0,0,124,60,24,24, + 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, + 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0 + }; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 16 + Calculated Max Values w=11 h=25 x= 2 y= 9 dx=13 dy= 0 ascent=21 len=50 + Font Bounding box w=40 h=38 x=-14 y=-9 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =16 descent= 0 + X Font ascent =16 descent= 0 + Max Font ascent =21 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr17n[539] U8G_SECTION(".progmem.u8g_font_gdr17n") = { + 0,40,38,242,247,16,0,0,0,0,42,57,0,21,252,16, + 0,10,12,24,12,1,9,12,0,12,0,140,0,204,192,119, + 128,30,0,30,0,119,128,204,192,12,128,12,0,12,0,10, + 9,18,11,1,3,12,0,12,0,12,0,12,0,255,192,12, + 0,12,0,12,0,12,0,4,7,7,6,1,252,112,240,48, + 48,32,96,64,7,1,1,9,1,6,254,3,4,4,6,2, + 255,96,224,224,192,11,25,50,13,1,252,0,96,0,96,0, + 192,0,192,1,128,1,128,1,128,3,0,3,0,6,0,6, + 0,6,0,12,0,12,0,12,0,24,0,24,0,48,0,48, + 0,48,0,96,0,96,0,224,0,192,0,192,0,11,16,32, + 13,1,0,15,0,49,128,96,192,64,192,64,224,192,96,192, + 96,192,96,192,96,192,96,192,96,192,64,96,64,96,192,49, + 128,30,0,9,16,32,13,2,0,12,0,60,0,252,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,255,128,10,16,32,13,1,0,15, + 0,49,128,96,192,96,192,0,192,0,192,1,128,1,128,3, + 0,6,0,12,0,28,0,24,0,48,64,96,64,255,192,10, + 16,32,13,1,0,30,0,99,0,97,128,193,128,1,128,3, + 0,6,0,31,0,3,128,1,192,0,192,0,192,0,192,1, + 128,193,128,62,0,11,16,32,13,1,0,1,128,3,128,7, + 128,5,128,13,128,25,128,17,128,49,128,97,128,65,128,255, + 224,1,128,1,128,1,128,1,128,15,224,10,16,32,13,1, + 0,63,192,32,0,32,0,32,0,96,0,96,0,127,0,67, + 128,1,192,0,192,0,192,0,192,0,192,1,128,193,128,62, + 0,11,16,32,13,1,0,3,128,14,0,24,0,48,0,96, + 0,96,0,207,0,241,192,192,224,192,96,192,96,192,96,96, + 96,96,64,48,128,31,0,11,16,32,13,1,0,127,224,64, + 192,128,192,0,128,1,128,1,128,3,0,3,0,6,0,6, + 0,4,0,12,0,12,0,24,0,24,0,48,0,11,16,32, + 13,1,0,31,0,113,128,224,192,224,192,224,192,241,128,63, + 0,15,128,51,192,96,224,192,96,192,96,192,96,192,64,96, + 128,31,0,11,17,34,13,1,255,31,0,49,128,96,192,192, + 192,192,96,192,96,192,96,224,96,113,224,30,96,0,224,0, + 192,0,192,1,128,3,0,14,0,48,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 17, '1' Height: 16 + Calculated Max Values w=22 h=27 x= 2 y=14 dx=23 dy= 0 ascent=22 len=66 + Font Bounding box w=40 h=38 x=-14 y=-9 + Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =21 descent=-6 + Max Font ascent =22 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr17r[3380] U8G_SECTION(".progmem.u8g_font_gdr17r") = { + 0,40,38,242,247,17,4,64,9,46,32,127,250,22,250,21, + 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, + 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, + 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, + 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, + 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, + 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, + 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, + 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, + 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, + 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, + 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, + 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, + 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, + 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, + 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, + 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, + 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, + 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, + 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, + 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, + 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, + 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, + 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, + 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, + 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, + 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, + 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, + 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, + 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, + 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, + 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, + 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, + 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, + 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, + 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, + 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, + 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, + 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, + 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, + 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, + 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, + 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, + 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, + 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, + 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, + 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, + 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, + 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, + 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, + 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, + 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, + 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, + 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, + 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, + 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, + 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, + 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, + 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, + 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, + 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, + 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, + 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, + 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, + 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, + 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, + 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, + 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, + 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, + 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, + 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, + 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, + 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, + 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, + 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, + 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, + 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, + 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, + 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, + 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, + 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, + 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, + 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, + 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, + 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, + 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, + 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, + 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, + 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, + 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, + 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, + 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, + 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, + 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, + 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, + 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, + 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, + 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, + 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, + 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, + 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, + 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, + 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, + 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, + 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, + 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, + 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, + 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, + 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, + 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, + 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, + 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, + 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, + 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, + 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, + 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, + 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, + 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, + 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, + 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, + 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, + 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, + 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, + 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, + 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, + 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, + 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, + 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, + 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, + 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, + 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, + 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, + 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, + 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, + 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, + 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, + 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, + 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, + 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, + 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, + 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, + 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, + 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, + 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, + 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, + 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, + 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, + 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, + 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, + 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, + 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, + 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, + 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, + 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, + 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, + 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, + 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, + 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, + 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, + 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, + 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, + 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, + 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, + 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, + 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, + 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, + 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, + 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, + 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, + 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, + 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, + 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, + 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, + 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, + 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, + 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, + 192,131,128,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 20, '1' Height: 19 + Calculated Max Values w=27 h=32 x= 3 y=19 dx=27 dy= 0 ascent=27 len=81 + Font Bounding box w=47 h=44 x=-16 y=-10 + Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 + Pure Font ascent =20 descent=-8 + X Font ascent =25 descent=-8 + Max Font ascent =27 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr20[9119] U8G_SECTION(".progmem.u8g_font_gdr20") = { + 0,47,44,240,246,20,4,220,11,144,32,255,248,27,247,25, + 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, + 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, + 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, + 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, + 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, + 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, + 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, + 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, + 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, + 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, + 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, + 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, + 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, + 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, + 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, + 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, + 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, + 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, + 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, + 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, + 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, + 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, + 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, + 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, + 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, + 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, + 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, + 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, + 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, + 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, + 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, + 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, + 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, + 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, + 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, + 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, + 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, + 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, + 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, + 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, + 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, + 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, + 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, + 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, + 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, + 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, + 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, + 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, + 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, + 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, + 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, + 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, + 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, + 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, + 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, + 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, + 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, + 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, + 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, + 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, + 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, + 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, + 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, + 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, + 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, + 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, + 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, + 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, + 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, + 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, + 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, + 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, + 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, + 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, + 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, + 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, + 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, + 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, + 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, + 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, + 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, + 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, + 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, + 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, + 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, + 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, + 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, + 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, + 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, + 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, + 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, + 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, + 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, + 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, + 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, + 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, + 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, + 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, + 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, + 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, + 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, + 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, + 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, + 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, + 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, + 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, + 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, + 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, + 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, + 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, + 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, + 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, + 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, + 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, + 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, + 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, + 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, + 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, + 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, + 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, + 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, + 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, + 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, + 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, + 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, + 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, + 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, + 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, + 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, + 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, + 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, + 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, + 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, + 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, + 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, + 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, + 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, + 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, + 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, + 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, + 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, + 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, + 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, + 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, + 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, + 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, + 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, + 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, + 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, + 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, + 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, + 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, + 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, + 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, + 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, + 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, + 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, + 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, + 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, + 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, + 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, + 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, + 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, + 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, + 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, + 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, + 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, + 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, + 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, + 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, + 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, + 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, + 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, + 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, + 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, + 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, + 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, + 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, + 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, + 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, + 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, + 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, + 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, + 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, + 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, + 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, + 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, + 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, + 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, + 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, + 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, + 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, + 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, + 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, + 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, + 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, + 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, + 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, + 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, + 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, + 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, + 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, + 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, + 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, + 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, + 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, + 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, + 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, + 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, + 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, + 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, + 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, + 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, + 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, + 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, + 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, + 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, + 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, + 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, + 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, + 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,7,0,0,4,24, + 24,9,2,247,112,240,240,224,0,0,32,96,96,96,96,96, + 96,96,96,96,112,112,112,112,112,112,112,64,12,20,40,15, + 2,255,6,0,6,0,6,0,15,224,54,224,102,96,102,0, + 198,0,198,0,198,0,198,0,198,0,198,0,230,32,118,48, + 63,192,31,128,6,0,6,0,6,0,13,19,38,15,1,0, + 7,224,8,112,16,48,16,32,48,32,48,0,48,0,48,0, + 48,0,255,0,48,0,48,0,48,0,48,0,48,8,32,24, + 96,48,127,240,131,240,11,10,20,15,2,4,192,96,127,192, + 49,192,96,192,96,192,96,192,113,192,63,128,64,64,128,32, + 16,19,38,15,255,0,240,63,56,28,28,24,28,56,14,48, + 6,112,7,96,3,192,3,192,1,128,1,128,63,252,1,128, + 1,128,1,128,1,128,1,128,1,128,15,240,2,32,32,7, + 3,250,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 128,0,0,64,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,11,22,44,15,2,0,31,128,49,192,96,128,96,0, + 112,0,120,0,62,0,111,128,199,192,193,224,192,224,224,96, + 240,96,124,96,63,192,15,128,3,192,1,192,64,192,64,192, + 96,128,63,0,9,4,8,13,2,17,97,128,227,128,227,128, + 195,0,21,20,60,24,1,0,1,252,0,6,3,0,24,0, + 192,48,0,96,48,124,96,97,134,48,99,0,48,194,0,24, + 198,0,24,198,0,24,198,0,24,198,0,24,199,0,24,99, + 0,48,97,198,48,48,248,96,48,0,96,24,0,192,6,3, + 0,1,252,0,7,10,10,8,1,9,56,204,140,28,108,204, + 220,238,0,254,12,14,28,16,1,0,6,16,4,48,8,96, + 24,96,48,192,113,192,227,128,227,128,113,192,48,192,24,96, + 8,96,4,48,6,16,13,6,12,15,1,3,255,248,0,24, + 0,24,0,24,0,24,0,24,9,1,2,11,1,8,255,128, + 10,11,22,11,1,11,30,0,97,0,126,128,147,64,151,64, + 156,64,148,64,146,64,105,128,33,0,30,0,10,1,2,16, + 3,19,255,192,7,7,7,11,2,12,60,110,198,198,198,236, + 120,12,14,28,13,1,2,6,0,6,0,6,0,6,0,6, + 0,255,240,6,0,6,0,6,0,6,0,4,0,0,0,0, + 0,255,224,8,11,11,10,1,10,62,99,195,3,6,6,12, + 24,50,97,255,9,12,24,11,0,9,31,0,51,128,97,128, + 1,128,3,0,15,0,1,128,1,128,1,128,1,128,195,0, + 62,0,7,7,7,10,3,16,12,30,24,48,48,96,192,15, + 23,46,17,1,248,48,8,240,56,48,24,48,24,48,24,48, + 24,48,24,48,24,48,24,48,24,56,56,56,120,63,248,55, + 222,51,152,48,0,48,0,48,0,48,0,56,0,56,0,56, + 0,48,0,15,24,48,18,1,252,15,254,48,252,96,216,64, + 216,192,216,192,216,192,216,192,216,224,216,112,216,56,216,15, + 216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0, + 216,0,216,0,216,0,216,3,254,3,4,4,5,1,9,96, + 224,224,192,5,7,7,7,1,249,48,32,48,120,24,48,224, + 8,11,11,11,2,10,24,248,24,24,24,24,24,24,24,24, + 255,7,10,10,9,1,9,56,108,198,198,198,198,108,56,0, + 254,12,14,28,16,2,0,130,0,65,0,97,128,48,192,56, + 224,28,96,12,112,28,112,30,96,56,224,48,192,97,128,65, + 0,130,0,16,19,38,19,2,0,48,6,240,14,48,12,48, + 24,48,56,48,48,48,96,48,224,48,192,205,130,1,142,3, + 30,6,22,6,38,12,70,24,127,24,134,48,6,96,31,15, + 19,38,18,2,0,48,6,240,12,48,8,48,24,48,48,48, + 48,48,96,48,192,48,192,205,128,1,28,3,102,6,70,4, + 6,12,12,24,24,24,48,48,98,96,254,17,19,57,19,1, + 0,60,3,0,70,6,0,6,4,0,28,12,0,6,24,0, + 6,16,0,6,48,0,142,96,0,120,96,0,0,193,0,1, + 135,0,1,143,0,3,11,0,2,19,0,6,35,0,12,63, + 128,12,67,0,24,3,0,48,15,128,10,24,48,13,2,247, + 14,0,30,0,30,0,28,0,0,0,0,0,0,0,12,0, + 12,0,12,0,12,0,28,0,24,0,48,0,48,0,96,0, + 96,0,192,0,192,64,192,192,192,192,224,128,97,128,62,0, + 19,27,81,19,0,0,6,0,0,15,0,0,7,128,0,1, + 192,0,0,96,0,0,16,0,0,0,0,0,64,0,0,224, + 0,0,224,0,1,224,0,1,240,0,1,176,0,3,48,0, + 3,56,0,3,24,0,6,28,0,6,28,0,6,12,0,15, + 254,0,12,6,0,8,6,0,24,7,0,24,3,0,16,3, + 0,48,3,128,254,15,224,19,27,81,19,0,0,0,8,0, + 0,30,0,0,60,0,0,112,0,1,192,0,1,0,0,0, + 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, + 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, + 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, + 7,0,24,3,0,16,3,0,48,3,128,254,15,224,19,27, + 81,19,0,0,0,224,0,1,224,0,1,240,0,3,56,0, + 6,12,0,12,4,0,0,0,0,0,64,0,0,224,0,0, + 224,0,1,224,0,1,240,0,1,176,0,3,48,0,3,56, + 0,3,24,0,6,28,0,6,28,0,6,12,0,15,254,0, + 12,6,0,8,6,0,24,7,0,24,3,0,16,3,0,48, + 3,128,254,15,224,19,26,78,19,0,0,3,132,0,7,230, + 0,4,252,0,8,56,0,0,0,0,0,0,0,0,64,0, + 0,224,0,0,224,0,1,224,0,1,240,0,1,176,0,3, + 48,0,3,56,0,3,24,0,6,28,0,6,28,0,6,12, + 0,15,254,0,12,6,0,8,6,0,24,7,0,24,3,0, + 16,3,0,48,3,128,254,15,224,19,25,75,19,0,0,6, + 12,0,6,12,0,14,28,0,6,12,0,0,0,0,0,64, + 0,0,224,0,0,224,0,1,224,0,1,240,0,1,176,0, + 3,48,0,3,56,0,3,24,0,6,28,0,6,28,0,6, + 12,0,15,254,0,12,6,0,8,6,0,24,7,0,24,3, + 0,16,3,0,48,3,128,254,15,224,19,27,81,19,0,0, + 0,224,0,1,176,0,1,48,0,3,48,0,1,176,0,1, + 224,0,0,0,0,0,64,0,0,224,0,0,224,0,1,224, + 0,1,240,0,1,176,0,3,48,0,3,56,0,3,24,0, + 6,28,0,6,28,0,6,12,0,15,254,0,12,6,0,8, + 6,0,24,7,0,24,3,0,16,3,0,48,3,128,254,15, + 224,23,20,60,25,0,0,3,255,252,0,124,4,0,108,4, + 0,236,4,0,204,0,1,204,0,1,140,0,1,140,0,3, + 140,0,3,255,248,7,12,16,6,12,0,6,12,0,12,12, + 0,12,12,0,28,12,0,24,12,2,24,12,2,48,12,6, + 252,63,254,15,27,54,17,1,249,3,248,12,28,16,8,48, + 0,96,0,96,0,64,0,192,0,192,0,192,0,192,0,192, + 0,192,0,224,0,96,0,112,0,120,2,60,12,31,248,15, + 240,0,128,0,128,1,224,0,224,0,96,0,192,3,0,13, + 27,54,16,1,0,16,0,56,0,28,0,15,0,3,128,0, + 192,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, + 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, + 0,48,0,48,8,48,8,48,24,255,248,13,27,54,16,1, + 0,0,32,0,240,1,224,3,128,7,0,12,0,0,0,255, + 240,48,16,48,16,48,16,48,0,48,0,48,0,48,0,48, + 0,63,224,48,64,48,0,48,0,48,0,48,0,48,0,48, + 8,48,8,48,24,255,248,13,27,54,16,1,0,3,0,7, + 128,15,192,28,192,56,96,32,48,0,0,255,240,48,16,48, + 16,48,16,48,0,48,0,48,0,48,0,48,0,63,224,48, + 64,48,0,48,0,48,0,48,0,48,0,48,8,48,8,48, + 24,255,248,13,25,50,16,1,0,24,48,56,112,56,112,48, + 96,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, + 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, + 0,48,0,48,8,48,8,48,24,255,248,9,27,54,10,255, + 0,96,0,240,0,120,0,28,0,7,0,1,0,0,0,31, + 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,31,128,8,27,27,10,2,0,6,15,30, + 56,96,128,0,252,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,252,10,27,54,10,0,0,28,0, + 30,0,62,0,115,0,193,128,128,192,0,0,63,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,63,0,10,25,50,10,0,0,193,128,225,192,225,192, + 193,128,0,0,63,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,63,0,18,20,60,19, + 0,0,31,240,0,120,28,0,24,6,0,24,3,0,24,1, + 128,24,1,128,24,1,192,24,0,192,24,0,192,255,128,192, + 24,0,192,24,0,192,24,0,192,24,1,128,24,1,128,24, + 1,128,24,3,0,24,6,0,24,28,0,127,240,0,19,26, + 78,21,1,0,3,132,0,7,230,0,4,124,0,8,56,0, + 0,0,0,0,0,0,240,7,224,56,1,128,60,1,128,60, + 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, + 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, + 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, + 1,128,17,27,81,19,1,0,12,0,0,30,0,0,15,0, + 0,3,128,0,0,224,0,0,32,0,0,0,0,3,240,0, + 12,24,0,16,12,0,48,6,0,32,3,0,96,3,0,64, + 3,128,192,1,128,192,1,128,192,1,128,192,1,128,192,1, + 128,192,1,128,224,1,0,96,3,0,96,2,0,48,6,0, + 56,4,0,12,24,0,7,224,0,17,27,81,19,1,0,0, + 24,0,0,60,0,0,120,0,0,224,0,1,128,0,2,0, + 0,0,0,0,3,240,0,12,24,0,16,12,0,48,6,0, + 32,3,0,96,3,0,64,3,128,192,1,128,192,1,128,192, + 1,128,192,1,128,192,1,128,192,1,128,224,1,0,96,3, + 0,96,2,0,48,6,0,56,4,0,12,24,0,7,224,0, + 17,27,81,19,1,0,1,192,0,1,224,0,3,224,0,7, + 48,0,12,24,0,8,12,0,0,0,0,3,240,0,12,24, + 0,16,12,0,48,6,0,32,3,0,96,3,0,64,3,128, + 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,192, + 1,128,224,1,0,96,3,0,96,2,0,48,6,0,56,4, + 0,12,24,0,7,224,0,17,26,78,19,1,0,3,4,0, + 7,204,0,8,248,0,16,112,0,0,0,0,0,0,0,3, + 240,0,12,24,0,16,12,0,48,6,0,32,3,0,96,3, + 0,64,3,128,192,1,128,192,1,128,192,1,128,192,1,128, + 192,1,128,192,1,128,224,1,0,96,3,0,96,2,0,48, + 6,0,56,4,0,12,24,0,7,224,0,17,25,75,19,1, + 0,12,24,0,14,28,0,14,28,0,12,24,0,0,0,0, + 3,240,0,12,24,0,16,12,0,48,6,0,32,3,0,96, + 3,0,64,3,128,192,1,128,192,1,128,192,1,128,192,1, + 128,192,1,128,192,1,128,224,1,0,96,3,0,96,2,0, + 48,6,0,56,4,0,12,24,0,7,224,0,11,10,20,13, + 1,4,192,96,96,192,49,128,27,0,14,0,14,0,27,0, + 49,128,96,192,192,96,17,21,63,19,1,255,3,241,128,4, + 31,0,24,14,0,48,30,0,32,31,0,96,63,0,64,59, + 128,192,115,128,192,225,128,192,225,128,193,193,128,195,129,128, + 195,1,128,231,1,0,110,3,0,124,2,0,124,6,0,56, + 4,0,124,24,0,199,224,0,128,0,0,19,27,81,21,1, + 0,6,0,0,15,0,0,7,128,0,1,192,0,0,96,0, + 0,16,0,0,0,0,252,7,224,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, + 48,1,128,48,1,0,24,3,0,28,6,0,14,12,0,3, + 240,0,19,27,81,21,1,0,0,12,0,0,30,0,0,60, + 0,0,112,0,0,192,0,1,0,0,0,0,0,252,7,224, + 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,128,48,1,128,48,1,0,24,3,0, + 28,6,0,14,12,0,3,240,0,19,27,81,21,1,0,0, + 224,0,0,240,0,1,240,0,3,152,0,6,12,0,4,6, + 0,0,0,0,252,7,224,48,1,128,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,0,24,3,0,28,6,0,14,12,0,3,240,0, + 19,25,75,21,1,0,6,12,0,7,14,0,7,14,0,6, + 12,0,0,0,0,252,7,224,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,0,24,3,0,28,6,0,14,12,0,3,240, + 0,18,27,81,19,0,0,0,12,0,0,30,0,0,60,0, + 0,112,0,0,192,0,1,0,0,0,0,0,240,31,192,56, + 7,0,28,6,0,12,12,0,14,12,0,7,24,0,7,24, + 0,3,48,0,3,176,0,1,224,0,1,224,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,7,248,0,15,20,40,17,1,0,254,0, + 48,0,48,0,48,0,63,224,48,120,48,28,48,14,48,6, + 48,6,48,6,48,6,48,12,48,12,52,56,51,224,48,0, + 48,0,48,0,254,0,16,24,48,18,1,0,1,224,6,56, + 8,24,16,28,16,12,48,12,48,12,48,28,48,56,48,240, + 49,192,49,128,49,128,49,192,48,240,48,124,48,62,48,15, + 48,7,48,3,49,3,49,3,49,134,241,248,13,23,46,15, + 1,0,56,0,56,0,28,0,14,0,6,0,3,0,1,0, + 0,0,15,192,48,224,112,96,96,96,0,96,0,96,15,224, + 63,224,126,96,240,96,224,96,192,96,192,96,65,224,62,120, + 13,23,46,15,1,0,0,224,0,224,1,192,1,128,3,0, + 2,0,4,0,0,0,15,192,48,224,112,96,96,96,0,96, + 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, + 65,224,62,120,13,23,46,15,1,0,7,0,7,0,15,128, + 29,192,24,192,48,96,32,32,0,0,15,192,48,224,112,96, + 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, + 192,96,192,96,65,224,62,120,13,21,42,15,1,0,28,16, + 63,32,35,192,64,0,0,0,0,0,15,192,48,224,112,96, + 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, + 192,96,192,96,65,224,62,120,13,21,42,15,1,0,48,96, + 56,112,48,96,48,96,0,0,0,0,15,192,48,224,112,96, + 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, + 192,96,192,96,65,224,62,120,13,22,44,15,1,0,7,128, + 13,128,12,192,12,128,13,128,15,0,0,0,15,192,48,224, + 112,96,96,96,0,96,0,96,15,224,63,224,126,96,240,96, + 224,96,192,96,192,96,65,224,62,120,19,15,45,22,2,0, + 31,143,0,113,176,192,96,224,192,224,224,96,128,192,96,0, + 192,96,7,255,192,28,192,0,112,192,0,96,192,0,192,192, + 0,192,224,0,193,96,64,194,112,224,124,31,0,12,22,44, + 14,1,249,7,224,24,96,32,32,96,0,64,0,192,0,192, + 0,192,0,192,0,192,0,224,0,112,16,120,96,63,192,31, + 128,2,0,2,0,7,128,3,128,1,128,3,0,12,0,13, + 23,46,15,1,0,24,0,60,0,12,0,6,0,3,0,1, + 0,1,128,0,0,7,192,24,96,32,48,96,24,64,24,192, + 24,255,240,192,0,192,0,192,0,224,0,96,0,112,8,56, + 48,15,192,13,23,46,15,1,0,0,96,0,240,0,192,1, + 128,1,128,3,0,6,0,0,0,7,192,24,96,32,48,96, + 24,64,24,192,24,255,240,192,0,192,0,192,0,224,0,96, + 0,112,8,56,48,15,192,13,23,46,15,1,0,3,0,7, + 128,15,128,12,192,24,96,16,32,32,16,0,0,7,192,24, + 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, + 0,224,0,96,0,112,8,56,48,15,192,13,21,42,15,1, + 0,24,48,56,112,56,112,48,96,0,0,0,0,7,192,24, + 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, + 0,224,0,96,0,112,8,56,48,15,192,7,23,23,9,0, + 0,224,224,112,48,24,12,4,0,24,120,24,24,24,24,24, + 24,24,24,24,24,24,24,126,8,23,23,9,1,0,7,7, + 14,12,24,48,32,0,48,240,48,48,48,48,48,48,48,48, + 48,48,48,48,252,9,23,46,9,0,0,28,0,28,0,62, + 0,119,0,99,0,193,128,128,128,0,0,24,0,120,0,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,126,0,10,21,42,9,0,0,193, + 128,193,128,227,192,193,128,0,0,0,0,24,0,120,0,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,126,0,14,23,46,16,1,0,12, + 0,62,24,3,240,3,192,30,224,48,96,0,112,0,56,7, + 152,24,120,32,60,96,28,64,12,192,12,192,12,192,12,192, + 12,192,8,224,24,96,16,112,48,56,96,15,128,16,21,42, + 18,1,0,7,8,15,144,24,224,16,0,0,0,0,0,112, + 112,177,136,54,12,56,12,56,12,48,12,48,12,48,12,48, + 12,48,12,48,12,48,12,48,12,48,12,252,63,14,23,46, + 16,1,0,28,0,28,0,14,0,6,0,3,0,1,128,0, + 128,0,0,7,192,24,112,32,56,96,24,64,28,192,12,192, + 12,192,12,192,12,192,12,224,8,96,24,112,16,56,32,15, + 192,14,23,46,16,1,0,0,112,0,112,0,224,1,192,1, + 128,3,0,2,0,0,0,7,192,24,112,32,56,96,24,64, + 28,192,12,192,12,192,12,192,12,192,12,224,8,96,24,112, + 16,56,32,15,192,14,23,46,16,1,0,3,128,3,128,7, + 192,14,192,12,96,24,48,48,16,0,0,7,192,24,112,32, + 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, + 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,14, + 8,31,144,17,224,32,0,0,0,0,0,7,192,24,112,32, + 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, + 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,24, + 48,24,48,56,112,24,48,0,0,0,0,7,192,24,112,32, + 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, + 8,96,24,112,16,56,32,15,192,11,10,20,13,1,4,6, + 0,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, + 0,6,0,14,16,32,16,1,255,7,204,24,120,32,120,96, + 120,64,252,193,220,193,140,195,140,199,12,198,12,236,8,124, + 24,120,16,120,32,207,192,128,0,15,23,46,17,1,0,28, + 0,28,0,14,0,7,0,3,0,1,128,0,128,0,0,48, + 24,240,120,48,24,48,24,48,24,48,24,48,24,48,24,48, + 24,48,24,48,24,48,24,48,56,24,222,15,24,15,23,46, + 17,1,0,0,112,0,112,0,224,0,192,1,128,1,0,2, + 0,0,0,48,24,240,120,48,24,48,24,48,24,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,56,24,222,15, + 24,15,23,46,17,1,0,3,128,3,128,7,192,14,224,12, + 96,24,48,16,16,0,0,48,24,240,120,48,24,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 56,24,222,15,24,15,21,42,17,1,0,24,48,28,56,24, + 48,24,48,0,0,0,0,48,24,240,120,48,24,48,24,48, + 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, + 56,24,222,15,24,16,31,62,16,255,248,0,28,0,28,0, + 56,0,112,0,96,0,192,0,128,0,0,126,31,28,6,28, + 4,12,12,14,12,14,8,6,24,7,24,3,16,3,48,3, + 176,1,160,1,224,1,224,0,192,0,192,0,128,1,128,1, + 128,3,0,126,0,124,0,248,0,15,32,64,17,1,248,16, + 0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,240,51,24,52,28,56,12,48,14,48,6,48,6,48, + 6,48,6,48,6,48,4,48,12,56,8,60,16,55,224,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,254,0,16, + 29,58,16,255,248,6,12,14,28,14,28,6,12,0,0,0, + 0,126,31,28,6,28,4,12,12,14,12,14,8,6,24,7, + 24,3,16,3,48,3,176,1,160,1,224,1,224,0,192,0, + 192,0,128,1,128,1,128,3,0,126,0,124,0,248,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 19 + Calculated Max Values w=13 h=30 x= 2 y=11 dx=15 dy= 0 ascent=25 len=60 + Font Bounding box w=47 h=44 x=-16 y=-10 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent= 0 + X Font ascent =19 descent= 0 + Max Font ascent =25 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr20n[619] U8G_SECTION(".progmem.u8g_font_gdr20n") = { + 0,47,44,240,246,19,0,0,0,0,42,57,0,25,251,19, + 0,12,13,26,14,1,11,6,0,6,0,134,0,102,48,242, + 240,27,128,6,0,27,128,114,240,230,48,6,32,6,0,6, + 0,12,11,22,13,1,3,6,0,6,0,6,0,6,0,6, + 0,255,240,6,0,6,0,6,0,6,0,6,0,4,8,8, + 7,2,251,112,240,48,48,48,32,64,192,9,1,2,11,1, + 8,255,128,4,4,4,7,2,0,112,240,240,224,13,30,60, + 15,1,251,0,24,0,56,0,48,0,48,0,112,0,96,0, + 96,0,224,0,192,1,192,1,128,1,128,3,128,3,0,7, + 0,6,0,6,0,14,0,12,0,12,0,28,0,24,0,56, + 0,48,0,48,0,112,0,96,0,96,0,224,0,192,0,13, + 19,38,15,1,0,7,128,24,192,32,96,96,48,64,48,64, + 56,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, + 16,96,16,96,48,48,32,24,64,15,128,11,19,38,15,2, + 0,2,0,30,0,126,0,134,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,15,0,127,224,11,19,38,15,2,0,15,128,48, + 192,96,96,96,96,96,96,0,96,0,96,0,192,0,192,1, + 128,3,0,7,0,6,0,12,0,24,0,48,32,112,32,224, + 32,255,224,11,19,38,15,2,0,31,0,113,128,96,192,224, + 192,0,192,0,192,1,128,3,0,15,0,3,192,0,192,0, + 224,0,96,0,96,0,96,0,96,128,192,193,128,127,0,12, + 19,38,15,1,0,0,64,1,192,3,192,3,192,6,192,12, + 192,12,192,24,192,48,192,48,192,96,192,224,192,255,240,0, + 192,0,192,0,192,0,192,0,192,7,240,11,19,38,15,2, + 0,63,224,32,0,32,0,96,0,96,0,96,0,96,0,127, + 0,97,192,0,192,0,96,0,96,0,96,0,96,0,96,0, + 64,128,192,193,128,63,0,12,20,40,15,2,0,0,192,7, + 0,14,0,24,0,48,0,112,0,96,0,96,0,207,128,240, + 224,224,96,192,112,192,48,192,48,192,48,96,48,96,32,32, + 96,48,64,15,128,12,19,38,15,2,0,255,240,128,96,128, + 96,0,224,0,192,0,192,1,128,1,128,3,0,3,0,7, + 0,6,0,6,0,12,0,12,0,28,0,24,0,56,0,48, + 0,12,19,38,15,2,0,31,128,48,192,96,96,224,96,224, + 96,224,96,248,192,127,128,31,128,31,192,49,224,96,112,192, + 112,192,48,192,48,192,32,96,32,112,64,31,128,12,20,40, + 15,2,255,15,128,49,192,32,224,64,96,192,112,192,48,192, + 48,192,48,192,48,96,112,48,176,31,48,0,96,0,96,0, + 96,0,192,1,128,7,0,30,0,48,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 20, '1' Height: 19 + Calculated Max Values w=27 h=32 x= 3 y=16 dx=27 dy= 0 ascent=26 len=80 + Font Bounding box w=47 h=44 x=-16 y=-10 + Calculated Min Values x=-4 y=-8 dx= 0 dy= 0 + Pure Font ascent =20 descent=-8 + X Font ascent =25 descent=-8 + Max Font ascent =26 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr20r[4232] U8G_SECTION(".progmem.u8g_font_gdr20r") = { + 0,47,44,240,246,20,4,220,11,144,32,127,248,26,248,25, + 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, + 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, + 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, + 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, + 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, + 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, + 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, + 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, + 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, + 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, + 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, + 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, + 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, + 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, + 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, + 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, + 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, + 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, + 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, + 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, + 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, + 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, + 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, + 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, + 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, + 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, + 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, + 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, + 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, + 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, + 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, + 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, + 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, + 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, + 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, + 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, + 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, + 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, + 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, + 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, + 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, + 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, + 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, + 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, + 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, + 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, + 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, + 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, + 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, + 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, + 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, + 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, + 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, + 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, + 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, + 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, + 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, + 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, + 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, + 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, + 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, + 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, + 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, + 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, + 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, + 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, + 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, + 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, + 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, + 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, + 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, + 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, + 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, + 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, + 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, + 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, + 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, + 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, + 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, + 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, + 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, + 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, + 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, + 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, + 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, + 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, + 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, + 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, + 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, + 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, + 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, + 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, + 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, + 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, + 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, + 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, + 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, + 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, + 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, + 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, + 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, + 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, + 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, + 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, + 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, + 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, + 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, + 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, + 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, + 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, + 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, + 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, + 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, + 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, + 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, + 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, + 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, + 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, + 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, + 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, + 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, + 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, + 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, + 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, + 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, + 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, + 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, + 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, + 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, + 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, + 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, + 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, + 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, + 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, + 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, + 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, + 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, + 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, + 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, + 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, + 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, + 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, + 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, + 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, + 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, + 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, + 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, + 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, + 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, + 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, + 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, + 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, + 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, + 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, + 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, + 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, + 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, + 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, + 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, + 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, + 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, + 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, + 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, + 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, + 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, + 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, + 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, + 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, + 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, + 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, + 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, + 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, + 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, + 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, + 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, + 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, + 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, + 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, + 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, + 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, + 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, + 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, + 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, + 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, + 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, + 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, + 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, + 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, + 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, + 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, + 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, + 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, + 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, + 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, + 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, + 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, + 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, + 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, + 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, + 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, + 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, + 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, + 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, + 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, + 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, + 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, + 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, + 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, + 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, + 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, + 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, + 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, + 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, + 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, + 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, + 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, + 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, + 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, + 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, + 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, + 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, + 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, + 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, + 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, + 136,71,240,131,240,128,224,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=33 h=41 x= 4 y=23 dx=34 dy= 0 ascent=34 len=132 + Font Bounding box w=59 h=57 x=-20 y=-14 + Calculated Min Values x=-4 y=-11 dx= 0 dy= 0 + Pure Font ascent =25 descent=-9 + X Font ascent =31 descent=-9 + Max Font ascent =34 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr25[13042] U8G_SECTION(".progmem.u8g_font_gdr25") = { + 0,59,57,236,242,25,6,209,16,163,32,255,247,34,245,31, + 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, + 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, + 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, + 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, + 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, + 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, + 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, + 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, + 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, + 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, + 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, + 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, + 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, + 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, + 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, + 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, + 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, + 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, + 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, + 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, + 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, + 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, + 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, + 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, + 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, + 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, + 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, + 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, + 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, + 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, + 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, + 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, + 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, + 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, + 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, + 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, + 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, + 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, + 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, + 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, + 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, + 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, + 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, + 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, + 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, + 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, + 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, + 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, + 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, + 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, + 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, + 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, + 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, + 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, + 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, + 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, + 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, + 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, + 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, + 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, + 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, + 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, + 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, + 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, + 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, + 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, + 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, + 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, + 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, + 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, + 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, + 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, + 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, + 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, + 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, + 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, + 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, + 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, + 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, + 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, + 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, + 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, + 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, + 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, + 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, + 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, + 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, + 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, + 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, + 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, + 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, + 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, + 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, + 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, + 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, + 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, + 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, + 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, + 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, + 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, + 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, + 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, + 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, + 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, + 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, + 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, + 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, + 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, + 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, + 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, + 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, + 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, + 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, + 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, + 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, + 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, + 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, + 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, + 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, + 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, + 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, + 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, + 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, + 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, + 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, + 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, + 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, + 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, + 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, + 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, + 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, + 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, + 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, + 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, + 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, + 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, + 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, + 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, + 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, + 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, + 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, + 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, + 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, + 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, + 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, + 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, + 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, + 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, + 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, + 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, + 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, + 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, + 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, + 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, + 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, + 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, + 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, + 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, + 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, + 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, + 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, + 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, + 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, + 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, + 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, + 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, + 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, + 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, + 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, + 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, + 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, + 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, + 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, + 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, + 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, + 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, + 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, + 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, + 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, + 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, + 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, + 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, + 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, + 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, + 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, + 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, + 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, + 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, + 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, + 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, + 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, + 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, + 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, + 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, + 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, + 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, + 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, + 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, + 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, + 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, + 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, + 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, + 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, + 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, + 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, + 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, + 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, + 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, + 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, + 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, + 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, + 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, + 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, + 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, + 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, + 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, + 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, + 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, + 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, + 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, + 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, + 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, + 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, + 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, + 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, + 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, + 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, + 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, + 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, + 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, + 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, + 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, + 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, + 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, + 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, + 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, + 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, + 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, + 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, + 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, + 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, + 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, + 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, + 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, + 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, + 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, + 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, + 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, + 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, + 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, + 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, + 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, + 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, + 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, + 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, + 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, + 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, + 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, + 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, + 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, + 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, + 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, + 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, + 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, + 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, + 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, + 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, + 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, + 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, + 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, + 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, + 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, + 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, + 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, + 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, + 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, + 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, + 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, + 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, + 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, + 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, + 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, + 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, + 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, + 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, + 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, + 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, + 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, + 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, + 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, + 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, + 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, + 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, + 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, + 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, + 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, + 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, + 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, + 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, + 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, + 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, + 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, + 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, + 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, + 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, + 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, + 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, + 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, + 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, + 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, + 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, + 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, + 0,0,9,0,0,5,29,29,11,3,245,112,248,248,248,112, + 0,0,96,96,96,96,112,112,112,112,112,112,112,112,112,112, + 112,112,112,112,240,240,240,192,15,25,50,19,2,255,1,128, + 1,128,1,128,1,240,7,252,31,254,57,140,113,132,113,128, + 97,128,225,128,225,128,225,128,225,128,225,128,241,128,113,128, + 121,134,61,140,63,248,31,240,3,192,1,128,1,128,1,128, + 17,25,75,19,1,255,0,252,0,3,255,0,7,15,0,14, + 7,0,12,6,0,12,2,0,28,2,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,127,224,0,255,224,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,24, + 0,128,24,1,0,24,3,0,63,223,0,127,255,0,192,255, + 0,13,13,26,19,3,5,192,24,239,184,127,240,56,224,96, + 112,96,48,96,48,96,48,120,240,63,224,111,176,192,24,128, + 8,21,24,72,19,255,0,120,7,248,252,1,248,62,1,224, + 31,3,128,15,3,128,7,135,0,7,135,0,3,206,0,1, + 206,0,1,252,0,0,248,0,0,248,0,0,112,0,0,112, + 0,15,255,192,31,255,128,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,248,0,3,254,0,3, + 41,41,9,3,248,96,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,128,0,0,0,64,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,192,15,28, + 56,19,2,0,7,224,15,248,28,120,56,24,56,8,56,0, + 60,0,31,0,31,128,63,224,99,248,224,252,224,124,224,30, + 240,30,120,14,62,14,31,14,15,220,3,248,0,248,0,60, + 32,28,32,28,48,28,60,56,63,240,7,192,12,5,10,16, + 2,22,96,48,224,112,224,112,224,112,192,96,25,25,100,29, + 2,0,0,127,0,0,3,255,224,0,7,128,240,0,14,0, + 56,0,28,31,28,0,56,127,206,0,112,225,199,0,97,192, + 131,0,99,128,3,0,195,0,1,128,199,0,1,128,199,0, + 1,128,199,0,1,128,199,0,1,128,199,0,1,128,199,128, + 1,128,99,128,3,0,99,192,67,0,113,241,135,0,56,255, + 14,0,28,60,28,0,14,0,56,0,7,128,240,0,3,255, + 224,0,0,127,0,0,8,14,14,10,1,11,28,60,70,198, + 6,30,102,198,198,206,119,0,255,255,15,18,36,19,2,0, + 2,6,6,4,12,12,12,24,24,56,56,112,112,224,241,224, + 225,192,225,192,241,224,112,240,56,112,24,56,12,24,12,12, + 6,4,2,6,17,8,24,19,1,4,255,255,128,255,255,128, + 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, + 3,0,11,2,4,13,1,9,127,224,255,224,13,14,28,14, + 1,14,15,128,63,224,112,96,127,48,200,152,136,136,143,8, + 138,8,137,8,201,152,92,240,112,112,63,224,15,128,13,2, + 4,20,3,23,127,248,255,248,8,9,9,14,3,15,28,62, + 103,231,231,231,230,124,56,15,18,36,16,1,3,3,128,3, + 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, + 128,3,128,3,128,3,128,3,0,0,0,0,0,127,252,255, + 252,11,15,30,14,1,12,15,128,31,192,49,224,96,224,64, + 224,0,192,1,192,1,128,3,0,6,0,12,0,24,32,48, + 32,127,224,255,224,11,16,32,13,1,11,31,0,63,128,99, + 192,225,192,1,192,1,128,7,0,31,128,1,192,0,224,0, + 224,0,224,0,224,193,192,127,128,30,0,8,9,9,13,4, + 20,7,15,30,28,56,48,112,96,192,20,27,81,21,1,247, + 12,1,128,252,7,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,30,7,128,31,31,128,31,251,144, + 27,243,224,25,225,128,24,0,0,24,0,0,24,0,0,28, + 0,0,28,0,0,28,0,0,30,0,0,30,0,0,24,0, + 0,20,30,90,22,1,251,3,255,240,28,63,192,48,59,128, + 112,59,128,96,59,128,224,59,128,224,59,128,224,59,128,224, + 59,128,240,59,128,112,59,128,120,59,128,62,59,128,31,251, + 128,7,251,128,0,59,128,0,59,128,0,59,128,0,59,128, + 0,59,128,0,59,128,0,59,128,0,59,128,0,59,128,0, + 59,128,0,59,128,0,59,128,0,59,128,0,127,192,1,255, + 240,3,5,5,6,1,11,96,224,224,224,192,7,9,9,9, + 1,247,24,16,56,60,62,14,12,56,224,10,15,30,13,2, + 12,6,0,62,0,254,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,255,192,9, + 14,28,11,1,11,30,0,63,0,103,0,67,128,193,128,193, + 128,193,128,193,128,225,0,115,0,126,0,60,0,255,128,255, + 128,15,18,36,19,3,0,129,0,193,128,96,192,112,96,48, + 112,56,48,28,56,30,28,15,30,15,30,30,28,28,56,56, + 56,48,112,112,224,96,192,193,128,129,0,19,24,72,23,2, + 0,12,0,192,252,1,224,28,1,128,28,3,128,28,3,0, + 28,6,0,28,14,0,28,12,0,28,24,0,28,56,0,28, + 48,0,255,224,0,0,224,0,0,192,192,1,193,192,1,130, + 192,3,2,192,7,4,192,6,8,192,12,16,192,28,31,224, + 24,63,224,48,0,192,112,3,224,20,24,72,24,2,0,12, + 0,96,252,0,192,28,0,192,28,1,128,28,3,0,28,3, + 0,28,6,0,28,14,0,28,12,0,28,24,0,28,56,0, + 255,176,0,0,97,224,0,99,240,0,196,112,1,204,112,1, + 128,96,3,0,224,7,0,192,6,1,128,12,3,32,28,6, + 16,24,15,240,48,31,240,20,25,75,23,1,0,30,0,0, + 63,0,48,103,128,96,195,128,224,3,0,192,6,1,128,31, + 129,128,3,195,0,0,231,0,0,230,0,97,204,0,63,220, + 0,15,24,0,0,48,0,0,48,96,0,96,224,0,225,96, + 0,195,96,1,130,96,3,132,96,3,12,112,6,31,240,14, + 0,96,12,0,96,24,1,240,14,29,58,18,2,245,3,128, + 7,192,7,192,7,192,3,128,0,0,0,0,3,128,3,128, + 3,128,3,128,3,128,7,0,7,0,14,0,28,0,60,0, + 56,0,112,0,112,0,224,0,224,12,224,28,224,28,224,28, + 240,56,120,112,63,224,31,128,23,34,102,24,0,0,3,0, + 0,7,128,0,7,224,0,1,240,0,0,120,0,0,60,0, + 0,14,0,0,2,0,0,0,0,0,8,0,0,56,0,0, + 60,0,0,60,0,0,108,0,0,110,0,0,110,0,0,198, + 0,0,199,0,0,199,0,1,131,0,1,131,128,1,131,128, + 3,1,128,3,255,192,3,255,192,6,0,224,6,0,224,6, + 0,224,12,0,112,12,0,112,12,0,112,24,0,56,28,0, + 120,255,1,254,23,34,102,24,0,0,0,1,128,0,3,192, + 0,7,192,0,15,0,0,30,0,0,56,0,0,96,0,0, + 192,0,0,0,0,0,8,0,0,56,0,0,60,0,0,60, + 0,0,108,0,0,110,0,0,110,0,0,198,0,0,199,0, + 0,199,0,1,131,0,1,131,128,1,131,128,3,1,128,3, + 255,192,3,255,192,6,0,224,6,0,224,6,0,224,12,0, + 112,12,0,112,12,0,112,24,0,56,28,0,120,255,1,254, + 23,33,99,24,0,0,0,56,0,0,124,0,0,254,0,1, + 231,0,1,131,128,3,1,192,6,0,128,0,0,0,0,8, + 0,0,56,0,0,60,0,0,60,0,0,108,0,0,110,0, + 0,110,0,0,198,0,0,199,0,0,199,0,1,131,0,1, + 131,128,1,131,128,3,1,128,3,255,192,3,255,192,6,0, + 224,6,0,224,6,0,224,12,0,112,12,0,112,12,0,112, + 24,0,56,28,0,120,255,1,254,23,32,96,24,0,0,0, + 224,64,1,248,192,3,253,128,6,31,0,4,6,0,0,0, + 0,0,0,0,0,8,0,0,56,0,0,60,0,0,60,0, + 0,108,0,0,110,0,0,110,0,0,198,0,0,199,0,0, + 199,0,1,131,0,1,131,128,1,131,128,3,1,128,3,255, + 192,3,255,192,6,0,224,6,0,224,6,0,224,12,0,112, + 12,0,112,12,0,112,24,0,56,28,0,120,255,1,254,23, + 31,93,24,0,0,3,129,192,3,129,192,3,129,192,3,1, + 128,3,1,128,0,0,0,0,8,0,0,56,0,0,60,0, + 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, + 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, + 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, + 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, + 1,254,23,34,102,24,0,0,0,62,0,0,126,0,0,199, + 0,0,195,0,0,195,0,0,230,0,0,252,0,0,48,0, + 0,0,0,0,8,0,0,56,0,0,60,0,0,60,0,0, + 108,0,0,110,0,0,110,0,0,198,0,0,199,0,0,199, + 0,1,131,0,1,131,128,1,131,128,3,1,128,3,255,192, + 3,255,192,6,0,224,6,0,224,6,0,224,12,0,112,12, + 0,112,12,0,112,24,0,56,28,0,120,255,1,254,30,25, + 100,31,0,0,1,255,255,240,0,63,255,240,0,25,192,48, + 0,25,192,16,0,57,192,16,0,49,192,0,0,113,192,0, + 0,97,192,0,0,97,192,0,0,225,192,0,0,255,255,192, + 1,255,255,192,1,193,192,128,1,129,192,0,3,129,192,0, + 3,1,192,0,7,1,192,0,7,1,192,0,6,1,192,0, + 14,1,192,0,12,1,192,4,28,1,192,12,28,1,192,24, + 60,3,255,248,255,15,255,248,18,34,102,21,1,247,0,126, + 0,3,255,192,7,7,192,14,1,128,28,0,0,56,0,0, + 48,0,0,112,0,0,112,0,0,96,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,240,0,0,112,0,0,120,0,0,56,0,64,60,0,192, + 30,3,128,15,254,0,7,252,0,1,240,0,0,64,0,0, + 96,0,0,240,0,0,120,0,0,56,0,0,48,0,0,224, + 0,3,128,0,18,34,102,20,1,0,12,0,0,62,0,0, + 63,0,0,15,128,0,3,192,0,0,224,0,0,112,0,0, + 16,0,0,0,0,255,255,0,63,255,0,28,3,0,28,1, + 0,28,1,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,31,252,0,31,252,0,28,8,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,64,28,0,192,28,1,128,63,255,128,255,255,128, + 18,34,102,20,1,0,0,12,0,0,30,0,0,62,0,0, + 120,0,0,240,0,1,192,0,3,0,0,6,0,0,0,0, + 0,255,255,0,63,255,0,28,3,0,28,1,0,28,1,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,31, + 252,0,31,252,0,28,8,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,64, + 28,0,192,28,1,128,63,255,128,255,255,128,18,33,99,20, + 1,0,1,192,0,3,224,0,7,240,0,7,56,0,12,28, + 0,24,14,0,16,2,0,0,0,0,255,255,0,63,255,0, + 28,3,0,28,1,0,28,1,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,31,252,0,31,252,0,28,8, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,64,28,0,192,28,1,128,63, + 255,128,255,255,128,18,31,93,20,1,0,28,14,0,28,14, + 0,28,14,0,28,14,0,24,12,0,0,0,0,255,255,0, + 63,255,0,28,3,0,28,1,0,28,1,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,31,252,0,31,252, + 0,28,8,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,64,28,0,192,28, + 1,128,63,255,128,255,255,128,11,34,68,12,255,0,96,0, + 248,0,252,0,62,0,15,0,3,128,1,192,0,64,0,0, + 63,224,15,128,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, + 63,224,11,34,68,12,1,0,0,192,1,224,3,224,7,128, + 15,0,28,0,48,0,96,0,0,0,255,128,62,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,62,0,255,128,12,33,66,12, + 0,0,14,0,31,0,63,128,57,192,96,224,192,112,128,32, + 0,0,127,192,31,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 31,0,127,192,12,31,62,12,0,0,224,112,224,112,224,112, + 224,112,192,96,0,0,127,192,31,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,31,0,127,192,21,25,75,24,1,0,31,248, + 0,255,255,0,28,15,128,28,3,192,28,1,224,28,0,240, + 28,0,112,28,0,112,28,0,120,28,0,56,28,0,56,255, + 240,56,255,224,56,28,0,56,28,0,56,28,0,56,28,0, + 112,28,0,112,28,0,112,28,0,224,28,1,224,28,3,192, + 28,15,128,63,254,0,255,248,0,24,32,96,26,1,0,0, + 240,64,1,248,96,3,252,192,2,31,128,6,6,0,0,0, + 0,0,0,0,248,1,255,60,0,124,30,0,56,30,0,56, + 31,0,56,31,128,56,29,128,56,29,192,56,28,224,56,28, + 96,56,28,112,56,28,56,56,28,28,56,28,28,56,28,14, + 56,28,7,56,28,7,56,28,3,184,28,3,248,28,1,248, + 28,0,248,28,0,248,28,0,120,62,0,56,255,128,24,21, + 34,102,24,1,0,3,0,0,7,128,0,15,192,0,3,224, + 0,0,240,0,0,56,0,0,28,0,0,4,0,0,0,0, + 0,252,0,3,255,0,7,7,128,12,3,192,24,1,224,56, + 0,224,112,0,112,112,0,112,96,0,120,224,0,56,224,0, + 56,224,0,56,224,0,56,224,0,56,224,0,56,224,0,56, + 240,0,48,112,0,112,112,0,96,120,0,224,60,0,192,30, + 1,128,15,7,0,7,254,0,1,248,0,21,34,102,24,1, + 0,0,3,0,0,7,128,0,15,192,0,31,0,0,60,0, + 0,112,0,0,224,0,0,128,0,0,0,0,0,252,0,3, + 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, + 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, + 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, + 0,112,112,0,96,120,0,224,60,0,192,30,1,128,15,7, + 0,7,254,0,1,248,0,21,33,99,24,1,0,0,120,0, + 0,252,0,0,252,0,1,206,0,3,135,0,6,1,128,4, + 0,128,0,0,0,0,252,0,3,255,0,7,7,128,12,3, + 192,24,1,224,56,0,224,112,0,112,112,0,112,96,0,120, + 224,0,56,224,0,56,224,0,56,224,0,56,224,0,56,224, + 0,56,224,0,56,240,0,48,112,0,112,112,0,96,120,0, + 224,60,0,192,30,1,128,15,7,0,7,254,0,1,248,0, + 21,32,96,24,1,0,1,224,128,3,240,192,7,249,128,6, + 63,0,12,12,0,0,0,0,0,0,0,0,252,0,3,255, + 0,7,7,128,12,3,192,24,1,224,56,0,224,112,0,112, + 112,0,112,96,0,120,224,0,56,224,0,56,224,0,56,224, + 0,56,224,0,56,224,0,56,224,0,56,240,0,48,112,0, + 112,112,0,96,120,0,224,60,0,192,30,1,128,15,7,0, + 7,254,0,1,248,0,21,31,93,24,1,0,3,1,128,7, + 3,128,7,3,128,7,3,128,2,1,0,0,0,0,0,252, + 0,3,255,0,7,7,128,12,3,192,24,1,224,56,0,224, + 112,0,112,112,0,112,96,0,120,224,0,56,224,0,56,224, + 0,56,224,0,56,224,0,56,224,0,56,224,0,56,240,0, + 48,112,0,112,112,0,96,120,0,224,60,0,192,30,1,128, + 15,7,0,7,254,0,1,248,0,13,12,24,16,2,5,192, + 48,224,120,112,224,57,192,31,128,15,0,15,0,31,128,57, + 192,112,224,224,112,192,56,21,26,78,24,1,255,0,252,56, + 3,255,112,7,7,224,12,3,224,24,1,224,56,3,240,48, + 7,240,112,7,112,96,14,120,224,28,56,224,28,56,224,56, + 56,224,112,56,224,112,56,224,224,56,225,192,56,243,128,48, + 115,128,112,119,0,96,126,0,224,60,0,192,62,1,128,63, + 7,0,119,254,0,225,248,0,128,0,0,24,34,102,26,1, + 0,1,128,0,3,192,0,3,224,0,0,240,0,0,120,0, + 0,28,0,0,6,0,0,3,0,0,0,0,255,129,255,62, + 0,124,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,56,28,0,112,14,0,112,14,0,112,15,0,224,7,193, + 192,3,255,128,0,126,0,24,34,102,26,1,0,0,1,128, + 0,3,224,0,7,224,0,15,128,0,30,0,0,56,0,0, + 112,0,0,64,0,0,0,0,255,129,255,62,0,124,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 112,14,0,112,14,0,112,15,0,224,7,193,192,3,255,128, + 0,126,0,24,33,99,26,1,0,0,28,0,0,62,0,0, + 127,0,0,231,0,1,193,128,3,128,192,2,0,64,0,0, + 0,255,129,255,62,0,124,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,112,14,0,112,14,0,112, + 15,0,224,7,193,192,3,255,128,0,126,0,24,31,93,26, + 1,0,1,128,192,3,129,192,3,129,192,3,129,192,1,0, + 128,0,0,0,255,129,255,62,0,124,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,112,14,0,112, + 14,0,112,15,0,224,7,193,192,3,255,128,0,126,0,23, + 34,102,24,0,0,0,1,128,0,3,192,0,7,192,0,15, + 0,0,30,0,0,56,0,0,96,0,0,192,0,0,0,0, + 248,1,254,60,0,120,30,0,96,14,0,224,7,0,192,7, + 129,192,3,129,128,3,195,128,1,195,0,0,231,0,0,238, + 0,0,126,0,0,124,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,124,0,1,255,0,18,25,75,21,1, + 0,255,128,0,60,0,0,28,0,0,28,0,0,31,248,0, + 31,254,0,28,31,0,28,7,128,28,3,128,28,3,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, + 128,28,7,128,28,15,0,29,254,0,28,248,0,28,0,0, + 28,0,0,28,0,0,62,0,0,255,128,0,20,30,90,23, + 1,0,0,124,0,1,255,0,3,15,128,6,3,128,14,3, + 192,12,1,192,12,1,192,28,1,192,28,1,192,28,3,128, + 28,7,128,28,31,0,28,120,0,28,240,0,28,224,0,28, + 224,0,28,240,0,28,124,0,28,63,0,28,31,192,28,7, + 224,28,1,224,28,0,240,28,0,112,28,128,112,28,128,112, + 28,192,96,28,224,224,60,255,192,252,63,0,16,29,58,18, + 2,0,56,0,60,0,28,0,14,0,14,0,7,0,3,128, + 1,128,0,192,0,0,0,0,3,224,31,240,56,120,112,56, + 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, + 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, + 2,0,0,56,0,120,0,112,0,224,0,192,1,192,3,128, + 3,0,6,0,0,0,0,0,3,224,31,240,56,120,112,56, + 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, + 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, + 2,0,3,128,7,128,7,192,15,224,30,224,28,112,56,56, + 48,24,96,12,0,0,0,0,3,224,31,240,56,120,112,56, + 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, + 224,56,224,56,224,120,241,185,127,63,60,24,16,27,54,18, + 2,0,14,4,31,12,63,152,99,240,64,224,0,0,0,0, + 0,0,0,0,3,224,31,240,56,120,112,56,240,56,192,56, + 0,56,0,120,7,248,28,56,112,56,96,56,224,56,224,56, + 224,120,241,185,127,63,60,24,16,27,54,18,2,0,48,24, + 48,24,112,56,112,56,48,24,0,0,0,0,0,0,0,0, + 3,224,31,240,56,120,112,56,240,56,192,56,0,56,0,120, + 7,248,28,56,112,56,96,56,224,56,224,56,224,120,241,185, + 127,63,60,24,16,28,56,18,2,0,3,192,7,224,12,96, + 12,96,24,96,12,96,15,192,7,128,0,0,0,0,3,224, + 31,240,56,120,112,56,240,56,192,56,0,56,0,120,7,248, + 28,56,112,56,96,56,224,56,224,56,224,120,241,185,127,63, + 60,24,24,18,54,28,2,0,3,225,240,15,243,252,56,119, + 30,112,60,14,224,60,7,240,56,7,192,56,7,1,255,255, + 15,255,254,30,56,0,120,56,0,112,56,0,224,56,0,224, + 60,2,224,92,3,241,159,14,127,15,248,60,3,224,15,27, + 54,17,2,247,1,248,7,254,28,28,56,12,48,4,112,0, + 96,0,224,0,224,0,224,0,224,0,224,0,224,0,240,0, + 112,8,120,24,63,240,31,224,15,128,2,0,2,0,3,128, + 7,192,1,192,1,128,7,0,28,0,14,29,58,18,2,0, + 28,0,60,0,30,0,14,0,7,0,3,128,1,128,0,192, + 0,64,0,0,0,0,3,192,15,240,28,120,48,56,112,28, + 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, + 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, + 0,56,0,60,0,120,0,112,0,224,0,192,1,128,1,0, + 3,0,0,0,0,0,3,192,15,240,28,120,48,56,112,28, + 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, + 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, + 1,128,3,192,7,224,7,224,14,112,28,56,24,24,48,12, + 32,4,0,0,0,0,3,192,15,240,28,120,48,56,112,28, + 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, + 112,4,120,12,60,56,31,240,7,192,14,27,54,18,2,0, + 24,12,56,28,56,28,56,28,48,24,0,0,0,0,0,0, + 0,0,3,192,15,240,28,120,48,56,112,28,96,28,224,28, + 255,252,255,248,224,0,224,0,224,0,240,0,112,4,120,12, + 60,56,31,240,7,192,10,29,58,11,0,0,224,0,240,0, + 120,0,56,0,28,0,12,0,14,0,6,0,3,0,0,0, + 0,0,6,0,126,0,30,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,30,0,127,192,10,29,58,11,1,0,1,192,3,192, + 3,128,7,128,7,0,14,0,12,0,24,0,16,0,0,0, + 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,60,0,255,128,13,29,58,11,255,0,7,0,7,128, + 15,128,31,192,29,192,56,224,112,112,96,48,192,24,0,0, + 0,0,3,0,63,0,15,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,15,0,63,224,12,27,54,11,0,0,192,96,224,112, + 224,112,192,96,192,96,0,0,0,0,0,0,0,0,6,0, + 126,0,30,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,30,0, + 127,192,16,28,56,20,2,0,6,0,63,6,7,159,1,248, + 3,224,15,112,28,56,0,28,0,28,0,14,3,206,15,254, + 28,127,48,31,112,15,96,15,224,7,224,7,224,7,224,7, + 224,6,224,6,240,14,112,12,120,28,60,56,31,240,7,192, + 21,27,81,22,1,0,1,192,128,7,225,0,7,243,0,12, + 126,0,8,28,0,0,0,0,0,0,0,0,0,0,0,0, + 0,12,15,0,252,63,128,60,99,192,29,129,192,29,1,192, + 30,1,192,30,1,192,28,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,62,3,192,255,143,248,16,29,58,20,2,0,28,0,30, + 0,14,0,7,0,3,128,3,128,1,192,0,192,0,96,0, + 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, + 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, + 12,62,56,31,240,7,192,16,29,58,20,2,0,0,28,0, + 60,0,56,0,112,0,112,0,224,0,192,1,128,3,0,0, + 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, + 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, + 12,62,56,31,240,7,192,16,29,58,20,2,0,1,192,3, + 192,3,224,7,240,7,112,14,56,28,28,24,12,48,6,0, + 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, + 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, + 12,62,56,31,240,7,192,16,27,54,20,2,0,7,2,15, + 134,31,204,49,248,32,112,0,0,0,0,0,0,0,0,3, + 224,15,248,28,60,48,30,112,14,96,15,224,7,224,7,224, + 7,224,7,224,7,224,7,240,6,112,14,120,12,62,56,31, + 240,7,192,16,27,54,20,2,0,24,12,24,12,28,14,24, + 12,24,12,0,0,0,0,0,0,0,0,3,224,15,248,28, + 60,48,30,112,14,96,15,224,7,224,7,224,7,224,7,224, + 7,224,7,240,6,112,14,120,12,62,56,31,240,7,192,14, + 14,28,16,1,4,1,128,3,128,3,128,3,0,0,0,0, + 0,127,252,255,252,0,0,0,0,1,128,3,128,3,128,3, + 0,16,20,40,20,2,255,0,1,3,227,15,254,28,60,48, + 30,112,30,96,63,224,103,224,199,224,135,225,135,227,7,230, + 7,252,6,120,14,120,12,60,56,127,240,199,192,128,0,21, + 29,87,21,0,0,7,0,0,7,128,0,3,192,0,1,192, + 0,0,224,0,0,96,0,0,48,0,0,48,0,0,24,0, + 0,0,0,0,0,0,12,0,192,252,15,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,28,1,192,28,1,192,28,1,192,28,3,192, + 28,7,192,30,29,200,15,241,240,7,192,192,21,29,87,21, + 0,0,0,7,0,0,15,128,0,14,0,0,30,0,0,28, + 0,0,56,0,0,48,0,0,96,0,0,64,0,0,0,0, + 0,0,0,12,0,192,252,15,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,28,1,192,28,1,192,28,3,192,28,7,192, + 30,29,200,15,241,240,7,192,192,21,29,87,21,0,0,0, + 112,0,0,120,0,0,248,0,1,252,0,1,222,0,3,142, + 0,7,7,0,6,3,0,12,1,128,0,0,0,0,0,0, + 12,0,192,252,15,192,28,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,28,1,192,28,3,192,28,7,192,30,29,200, + 15,241,240,7,192,192,21,27,81,21,0,0,6,3,0,7, + 3,128,7,3,128,6,3,0,6,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,12,0,192,252,15,192,28,1,192, + 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, + 192,28,7,192,30,29,200,15,241,240,7,192,192,20,38,114, + 20,255,247,0,3,128,0,7,128,0,7,0,0,14,0,0, + 12,0,0,28,0,0,56,0,0,48,0,0,96,0,0,0, + 0,0,0,0,127,131,240,30,0,224,14,0,192,14,0,192, + 7,1,128,7,1,128,7,3,0,3,131,0,3,131,0,1, + 198,0,1,198,0,1,198,0,0,236,0,0,236,0,0,120, + 0,0,120,0,0,120,0,0,48,0,0,48,0,0,96,0, + 0,96,0,0,224,0,1,192,0,67,128,0,127,0,0,254, + 0,0,124,0,0,18,39,117,21,1,247,12,0,0,252,0, + 0,60,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 60,0,28,255,0,29,143,0,31,7,128,30,3,128,28,3, + 192,28,1,192,28,1,192,28,1,192,28,1,192,28,1,192, + 28,1,128,28,1,128,28,3,128,30,3,0,31,134,0,31, + 252,0,28,240,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,62,0,0,255,128,0, + 20,36,108,20,255,247,3,1,128,3,1,128,7,3,128,7, + 3,128,3,1,128,0,0,0,0,0,0,0,0,0,0,0, + 0,127,131,240,30,0,224,14,0,192,14,0,192,7,1,128, + 7,1,128,7,3,0,3,131,0,3,131,0,1,198,0,1, + 198,0,1,198,0,0,236,0,0,236,0,0,120,0,0,120, + 0,0,120,0,0,48,0,0,48,0,0,96,0,0,96,0, + 0,224,0,1,192,0,67,128,0,127,0,0,254,0,0,124, + 0,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=17 h=38 x= 3 y=14 dx=19 dy= 0 ascent=31 len=114 + Font Bounding box w=59 h=57 x=-20 y=-14 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =31 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr25n[810] U8G_SECTION(".progmem.u8g_font_gdr25n") = { + 0,59,57,236,242,24,0,0,0,0,42,57,0,31,249,24, + 0,16,16,32,18,1,14,1,128,1,128,1,128,97,132,113, + 142,121,159,31,248,7,192,3,192,31,248,121,158,241,142,33, + 134,1,128,1,128,1,128,15,14,28,16,1,4,3,128,3, + 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, + 128,3,128,3,128,3,128,3,128,6,10,10,9,2,250,60, + 252,60,28,28,24,24,48,32,64,11,2,4,13,1,9,127, + 224,255,224,5,5,5,9,2,255,112,248,248,248,112,17,38, + 114,19,1,249,0,1,128,0,7,0,0,7,0,0,7,0, + 0,14,0,0,14,0,0,14,0,0,28,0,0,28,0,0, + 56,0,0,56,0,0,56,0,0,112,0,0,112,0,0,112, + 0,0,224,0,0,224,0,1,192,0,1,192,0,1,192,0, + 3,128,0,3,128,0,3,128,0,7,0,0,7,0,0,14, + 0,0,14,0,0,14,0,0,28,0,0,28,0,0,28,0, + 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, + 224,0,0,192,0,0,17,24,72,19,1,0,3,224,0,15, + 248,0,28,60,0,56,30,0,48,14,0,112,7,0,96,7, + 0,96,7,128,224,3,128,224,3,128,224,3,128,224,3,128, + 224,3,128,224,3,128,224,3,128,224,3,128,240,3,0,112, + 7,0,112,7,0,120,6,0,60,14,0,30,28,0,15,248, + 0,7,224,0,14,24,48,19,3,0,1,128,7,128,63,128, + 255,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,15,224,127,252,14,24,48,19,2,0, + 3,224,15,248,24,120,48,60,112,28,96,28,224,28,0,28, + 0,24,0,56,0,48,0,112,0,224,1,192,1,128,3,128, + 7,0,14,0,28,0,24,4,48,4,112,12,255,252,255,252, + 15,24,48,19,1,0,3,224,15,248,28,120,56,60,112,28, + 112,28,0,28,0,24,0,48,0,96,3,224,3,248,0,60, + 0,28,0,14,0,14,0,14,0,14,0,14,0,28,64,28, + 240,120,63,240,15,192,16,24,48,19,1,0,0,24,0,120, + 0,120,0,248,1,248,1,184,3,56,7,56,6,56,12,56, + 28,56,24,56,48,56,112,56,96,56,255,255,255,254,0,56, + 0,56,0,56,0,56,0,56,0,124,3,255,15,24,48,19, + 1,0,0,4,31,252,31,248,24,0,24,0,24,0,48,0, + 48,0,48,0,63,224,63,248,48,124,64,28,0,30,0,14, + 0,14,0,14,0,14,0,14,0,28,64,28,240,120,63,240, + 15,192,15,24,48,19,2,0,0,56,0,240,3,192,7,0, + 14,0,28,0,56,0,112,0,112,0,99,224,239,248,248,60, + 240,28,224,30,224,14,224,14,224,14,224,14,112,14,112,12, + 56,28,60,56,31,240,7,192,15,23,46,19,2,0,127,254, + 255,254,192,12,192,12,128,28,0,24,0,56,0,48,0,112, + 0,96,0,96,0,224,0,192,1,192,1,128,3,128,3,0, + 7,0,7,0,14,0,14,0,28,0,56,0,15,24,48,19, + 2,0,15,192,63,240,120,120,112,60,240,28,224,28,224,28, + 240,24,120,48,62,96,31,192,7,240,24,120,48,60,112,30, + 96,14,224,14,224,14,224,14,224,12,112,28,124,56,63,240, + 15,192,15,25,50,19,2,255,7,192,15,240,56,120,48,60, + 112,28,96,28,224,14,224,14,224,14,224,14,240,14,112,30, + 120,62,63,238,15,140,0,28,0,28,0,24,0,56,0,112, + 0,224,1,192,7,128,30,0,48,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=33 h=41 x= 3 y=20 dx=34 dy= 0 ascent=33 len=132 + Font Bounding box w=59 h=57 x=-20 y=-14 + Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 + Pure Font ascent =25 descent=-9 + X Font ascent =31 descent=-9 + Max Font ascent =33 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr25r[6239] U8G_SECTION(".progmem.u8g_font_gdr25r") = { + 0,59,57,236,242,25,6,209,16,163,32,127,247,33,247,31, + 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, + 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, + 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, + 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, + 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, + 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, + 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, + 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, + 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, + 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, + 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, + 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, + 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, + 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, + 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, + 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, + 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, + 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, + 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, + 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, + 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, + 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, + 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, + 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, + 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, + 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, + 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, + 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, + 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, + 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, + 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, + 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, + 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, + 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, + 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, + 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, + 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, + 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, + 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, + 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, + 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, + 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, + 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, + 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, + 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, + 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, + 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, + 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, + 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, + 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, + 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, + 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, + 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, + 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, + 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, + 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, + 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, + 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, + 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, + 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, + 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, + 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, + 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, + 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, + 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, + 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, + 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, + 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, + 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, + 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, + 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, + 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, + 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, + 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, + 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, + 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, + 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, + 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, + 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, + 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, + 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, + 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, + 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, + 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, + 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, + 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, + 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, + 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, + 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, + 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, + 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, + 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, + 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, + 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, + 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, + 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, + 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, + 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, + 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, + 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, + 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, + 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, + 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, + 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, + 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, + 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, + 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, + 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, + 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, + 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, + 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, + 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, + 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, + 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, + 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, + 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, + 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, + 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, + 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, + 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, + 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, + 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, + 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, + 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, + 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, + 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, + 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, + 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, + 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, + 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, + 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, + 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, + 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, + 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, + 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, + 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, + 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, + 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, + 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, + 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, + 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, + 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, + 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, + 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, + 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, + 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, + 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, + 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, + 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, + 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, + 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, + 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, + 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, + 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, + 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, + 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, + 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, + 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, + 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, + 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, + 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, + 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, + 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, + 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, + 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, + 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, + 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, + 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, + 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, + 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, + 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, + 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, + 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, + 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, + 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, + 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, + 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, + 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, + 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, + 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, + 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, + 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, + 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, + 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, + 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, + 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, + 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, + 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, + 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, + 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, + 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, + 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, + 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, + 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, + 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, + 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, + 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, + 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, + 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, + 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, + 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, + 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, + 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, + 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, + 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, + 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, + 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, + 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, + 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, + 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, + 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, + 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, + 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, + 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, + 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, + 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, + 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, + 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, + 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, + 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, + 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, + 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, + 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, + 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, + 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, + 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, + 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, + 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, + 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, + 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, + 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, + 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, + 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, + 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, + 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, + 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, + 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, + 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, + 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, + 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, + 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, + 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, + 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, + 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, + 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, + 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, + 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, + 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, + 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, + 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, + 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, + 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, + 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, + 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, + 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, + 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, + 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, + 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, + 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, + 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, + 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, + 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, + 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, + 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, + 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, + 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, + 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, + 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, + 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, + 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, + 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, + 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, + 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, + 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, + 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, + 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, + 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, + 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, + 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, + 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, + 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, + 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, + 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, + 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, + 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, + 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, + 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, + 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, + 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, + 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, + 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, + 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, + 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, + 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, + 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, + 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, + 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, + 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, + 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, + 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, + 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, + 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, + 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, + 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, + 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, + 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, + 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, + 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, + 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, + 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, + 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, + 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, + 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, + 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, + 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, + 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, + 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 30, '1' Height: 29 + Calculated Max Values w=40 h=49 x= 5 y=28 dx=41 dy= 0 ascent=42 len=195 + Font Bounding box w=71 h=68 x=-24 y=-17 + Calculated Min Values x=-5 y=-13 dx= 0 dy= 0 + Pure Font ascent =30 descent=-11 + X Font ascent =38 descent=-11 + Max Font ascent =42 descent=-13 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr30[18369] U8G_SECTION(".progmem.u8g_font_gdr30") = { + 0,71,68,232,239,30,9,231,23,124,32,255,245,42,243,38, + 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, + 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, + 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, + 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, + 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, + 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, + 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, + 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, + 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, + 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, + 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, + 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, + 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, + 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, + 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, + 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, + 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, + 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, + 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, + 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, + 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, + 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, + 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, + 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, + 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, + 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, + 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, + 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, + 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, + 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, + 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, + 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, + 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, + 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, + 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, + 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, + 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, + 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, + 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, + 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, + 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, + 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, + 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, + 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, + 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, + 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, + 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, + 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, + 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, + 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, + 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, + 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, + 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, + 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, + 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, + 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, + 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, + 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, + 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, + 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, + 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, + 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, + 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, + 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, + 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, + 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, + 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, + 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, + 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, + 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, + 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, + 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, + 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, + 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, + 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, + 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, + 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, + 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, + 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, + 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, + 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, + 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, + 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, + 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, + 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, + 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, + 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, + 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, + 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, + 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, + 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, + 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, + 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, + 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, + 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, + 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, + 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, + 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, + 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, + 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, + 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, + 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, + 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, + 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, + 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, + 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, + 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, + 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, + 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, + 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, + 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, + 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, + 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, + 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, + 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, + 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, + 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, + 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, + 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, + 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, + 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, + 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, + 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, + 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, + 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, + 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, + 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, + 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, + 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, + 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, + 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, + 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, + 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, + 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, + 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, + 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, + 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, + 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, + 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, + 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, + 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, + 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, + 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, + 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, + 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, + 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, + 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, + 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, + 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, + 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, + 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, + 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, + 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, + 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, + 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, + 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, + 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, + 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, + 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, + 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, + 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, + 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, + 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, + 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, + 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, + 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, + 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, + 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, + 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, + 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, + 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, + 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, + 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, + 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, + 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, + 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, + 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, + 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, + 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, + 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, + 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, + 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, + 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, + 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, + 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, + 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, + 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, + 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, + 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, + 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, + 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, + 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, + 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, + 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, + 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, + 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, + 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, + 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, + 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, + 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, + 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, + 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, + 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, + 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, + 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, + 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, + 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, + 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, + 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, + 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, + 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, + 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, + 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, + 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, + 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, + 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, + 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, + 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, + 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, + 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, + 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, + 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, + 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, + 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, + 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, + 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, + 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, + 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, + 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, + 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, + 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, + 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, + 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, + 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, + 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, + 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, + 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, + 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, + 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, + 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, + 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, + 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, + 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, + 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, + 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, + 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, + 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, + 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, + 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, + 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, + 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, + 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, + 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, + 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, + 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, + 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, + 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, + 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, + 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, + 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, + 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, + 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, + 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, + 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, + 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, + 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, + 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, + 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, + 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, + 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, + 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, + 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, + 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, + 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, + 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, + 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, + 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, + 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, + 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, + 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, + 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, + 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, + 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, + 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, + 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, + 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, + 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, + 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, + 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, + 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, + 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, + 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, + 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, + 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, + 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, + 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, + 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, + 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, + 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, + 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, + 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, + 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, + 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, + 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, + 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, + 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, + 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, + 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, + 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, + 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, + 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, + 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, + 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, + 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, + 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, + 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, + 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, + 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, + 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, + 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, + 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, + 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, + 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, + 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, + 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, + 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, + 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, + 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, + 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, + 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, + 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, + 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, + 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, + 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, + 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, + 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, + 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, + 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, + 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, + 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, + 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, + 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, + 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, + 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, + 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, + 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, + 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, + 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, + 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, + 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, + 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, + 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, + 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, + 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, + 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, + 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, + 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, + 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, + 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, + 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, + 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, + 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, + 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, + 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, + 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, + 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, + 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, + 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, + 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, + 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, + 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, + 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, + 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, + 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, + 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, + 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, + 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, + 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, + 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, + 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, + 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, + 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, + 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, + 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, + 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, + 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, + 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, + 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, + 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, + 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, + 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, + 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, + 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, + 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, + 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, + 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, + 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, + 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, + 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, + 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, + 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, + 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, + 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, + 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, + 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, + 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, + 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, + 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, + 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, + 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, + 255,224,96,127,192,64,31,128,192,15,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,11, + 0,0,6,35,35,13,3,243,56,124,252,252,252,248,112,0, + 16,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 120,120,120,120,120,124,124,124,124,120,96,18,30,90,23,2, + 255,0,96,0,0,96,0,0,96,0,0,96,0,0,255,0, + 3,255,128,15,255,192,30,99,128,60,97,128,56,97,0,120, + 96,0,112,96,0,240,96,0,240,96,0,240,96,0,240,96, + 0,240,96,0,240,96,0,248,96,0,120,96,0,124,96,192, + 62,97,128,63,231,128,31,255,0,15,252,0,3,248,0,0, + 96,0,0,96,0,0,96,0,0,96,0,19,29,87,23,2, + 0,0,127,0,1,255,224,3,131,224,7,1,192,6,0,192, + 14,0,192,14,0,192,30,0,64,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,255,248,0,255,248, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 28,0,0,28,0,32,28,0,32,24,0,96,56,0,224,63, + 255,224,127,255,224,192,255,224,15,15,30,23,4,7,128,2, + 192,6,103,204,63,248,56,56,112,28,96,12,96,12,96,12, + 96,12,48,24,56,56,127,252,231,206,192,6,25,28,112,23, + 254,0,126,0,255,128,254,0,63,128,31,0,30,0,15,128, + 60,0,7,192,120,0,3,192,112,0,3,224,240,0,1,224, + 224,0,0,241,224,0,0,241,192,0,0,123,192,0,0,127, + 128,0,0,63,0,0,0,63,0,0,0,30,0,0,0,30, + 0,0,15,255,252,0,15,255,252,0,0,30,0,0,0,30, + 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, + 0,0,0,30,0,0,0,30,0,0,0,127,128,0,1,255, + 224,0,4,49,49,11,4,246,112,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,224,0,0, + 0,0,0,112,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,224,19,34,102,24,2,0,1, + 248,0,7,254,0,30,31,0,60,7,0,60,6,0,60,0, + 0,62,0,0,63,0,0,31,128,0,31,224,0,31,248,0, + 63,252,0,121,255,0,240,127,128,240,63,192,240,15,192,240, + 7,224,248,3,224,124,1,224,126,1,224,63,129,192,31,225, + 192,7,251,128,3,255,0,0,255,0,0,63,128,0,15,128, + 16,7,128,16,7,128,24,7,128,28,7,0,30,15,0,31, + 254,0,3,240,0,15,5,10,19,2,27,112,14,240,30,240, + 30,240,30,224,28,30,30,120,34,2,0,0,31,224,0,0, + 255,252,0,1,224,30,0,7,128,7,128,14,0,1,192,28, + 3,240,224,24,15,252,96,48,60,60,48,112,112,8,56,96, + 224,0,24,97,224,0,24,193,224,0,12,195,192,0,12,195, + 192,0,12,195,192,0,12,195,192,0,12,195,192,0,12,195, + 192,0,12,195,224,0,12,97,224,0,24,97,240,8,24,112, + 248,12,56,48,124,48,48,24,63,224,96,28,15,128,224,14, + 0,1,192,7,128,7,128,1,224,30,0,0,255,252,0,0, + 31,224,0,11,15,30,12,1,14,15,0,31,0,51,128,97, + 128,97,128,3,128,29,128,97,128,193,128,193,128,239,128,253, + 224,121,128,255,192,255,192,18,21,63,23,2,0,0,128,64, + 1,128,192,3,1,128,7,3,0,14,7,0,14,14,0,28, + 30,0,60,60,0,120,60,0,240,120,0,240,120,0,248,120, + 0,120,60,0,60,60,0,28,30,0,14,14,0,14,7,0, + 7,3,0,3,1,128,1,128,192,0,128,64,20,10,30,23, + 1,4,127,255,240,255,255,240,0,0,112,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,96, + 14,2,4,16,1,11,127,252,255,248,15,17,34,17,1,17, + 7,192,31,240,56,56,96,12,79,132,196,70,132,66,132,194, + 135,130,133,130,132,130,196,198,68,100,106,60,56,56,31,240, + 7,192,16,2,4,24,4,28,127,255,255,254,11,11,22,17, + 3,18,15,0,63,192,113,224,96,224,224,224,224,224,224,224, + 224,192,241,128,127,0,62,0,17,22,66,20,1,3,0,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,255,255,128,255,255,128,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,0,0,0,0,0,0,0,0,0,127,255,128,255,255,128, + 13,17,34,17,2,15,7,192,31,240,112,248,96,120,224,120, + 0,120,0,112,0,224,1,224,3,192,7,128,15,0,30,0, + 60,8,120,24,255,248,255,248,14,18,36,16,1,14,15,128, + 63,224,113,240,224,240,192,240,0,240,1,224,7,128,15,224, + 1,240,0,120,0,60,0,60,0,60,128,120,224,248,63,224, + 15,128,10,10,20,15,5,25,7,128,7,192,15,0,15,0, + 30,0,60,0,56,0,112,0,96,0,192,0,25,33,132,26, + 1,245,6,0,24,0,254,0,248,0,126,0,120,0,30,0, + 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, + 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, + 120,0,30,0,120,0,30,0,120,0,30,0,120,0,31,0, + 248,0,31,1,248,0,31,131,248,0,31,255,121,0,27,254, + 127,128,25,252,126,0,24,240,56,0,24,0,0,0,24,0, + 0,0,24,0,0,0,28,0,0,0,28,0,0,0,28,0, + 0,0,30,0,0,0,30,0,0,0,31,0,0,0,31,0, + 0,0,24,0,0,0,23,36,108,26,1,250,1,255,254,15, + 255,254,31,7,252,60,7,112,120,7,112,120,7,112,240,7, + 112,240,7,112,240,7,112,240,7,112,240,7,112,248,7,112, + 120,7,112,124,7,112,62,7,112,31,135,112,15,255,112,1, + 255,112,0,7,112,0,7,112,0,7,112,0,7,112,0,7, + 112,0,7,112,0,7,112,0,7,112,0,7,112,0,7,112, + 0,7,112,0,7,112,0,7,112,0,7,112,0,7,112,0, + 7,112,0,31,248,0,63,254,4,5,5,7,2,14,112,240, + 240,240,224,8,10,10,11,2,246,24,56,48,62,127,15,15, + 30,120,224,13,17,34,16,2,15,3,128,31,128,255,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,15,192,127,248,12,15,30,14,1, + 14,15,128,63,192,49,224,96,96,192,112,192,48,192,48,192, + 48,224,48,224,96,120,192,63,128,31,0,255,240,255,240,18, + 21,63,23,3,0,64,64,0,224,96,0,96,48,0,48,24, + 0,56,28,0,28,14,0,14,15,0,15,7,128,7,135,128, + 7,195,192,3,195,192,7,195,192,7,135,128,15,7,128,30, + 15,0,28,14,0,56,28,0,48,56,0,112,48,0,96,96, + 0,192,64,0,24,29,87,28,2,0,4,0,4,60,0,14, + 204,0,24,12,0,56,12,0,48,12,0,112,12,0,224,12, + 0,192,12,1,192,12,3,128,12,3,0,12,7,0,12,6, + 0,127,142,0,0,28,0,0,24,4,0,56,28,0,112,28, + 0,96,44,0,224,108,1,192,76,1,192,140,3,129,12,3, + 3,12,7,3,255,14,7,254,12,0,12,28,0,12,56,0, + 127,24,29,87,28,2,0,4,0,6,60,0,14,204,0,28, + 12,0,24,12,0,56,12,0,112,12,0,112,12,0,224,12, + 0,192,12,1,192,12,3,128,12,3,0,12,7,0,127,142, + 0,0,14,0,0,28,60,0,24,255,0,57,199,0,115,131, + 0,99,3,0,224,2,1,192,4,1,128,8,3,128,16,7, + 0,32,7,0,65,14,0,129,12,1,255,28,1,255,25,29, + 116,28,1,0,15,128,3,0,31,192,7,0,49,192,14,0, + 112,192,12,0,0,192,28,0,1,128,24,0,15,0,56,0, + 1,192,112,0,0,192,96,0,0,192,224,0,0,193,192,0, + 0,193,128,0,193,195,128,0,127,135,0,0,30,7,0,0, + 0,14,2,0,0,12,14,0,0,28,14,0,0,56,22,0, + 0,48,38,0,0,112,102,0,0,224,198,0,0,224,134,0, + 1,193,134,128,3,131,255,0,3,128,6,0,7,0,6,0, + 6,0,6,0,14,0,63,128,17,35,105,21,2,243,0,224, + 0,1,240,0,3,240,0,3,240,0,3,224,0,1,192,0, + 0,0,0,0,0,0,0,0,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,1,224,0,1,192,0,3,192, + 0,3,128,0,7,0,0,15,0,0,30,0,0,60,0,0, + 60,0,0,120,0,0,120,0,0,240,0,0,240,3,128,240, + 7,128,240,7,128,240,7,128,248,15,0,120,15,0,126,30, + 0,63,248,0,15,224,0,28,41,164,29,0,0,0,128,0, + 0,1,192,0,0,3,240,0,0,1,248,0,0,0,124,0, + 0,0,31,0,0,0,7,128,0,0,1,192,0,0,0,128, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, + 0,0,15,0,0,0,15,0,0,0,31,128,0,0,31,128, + 0,0,27,128,0,0,59,192,0,0,57,192,0,0,49,224, + 0,0,113,224,0,0,112,224,0,0,96,240,0,0,224,240, + 0,0,224,112,0,0,192,120,0,1,192,120,0,1,192,56, + 0,1,255,252,0,3,255,252,0,3,128,30,0,3,0,30, + 0,7,0,30,0,7,0,15,0,6,0,15,0,14,0,15, + 0,14,0,7,128,12,0,7,128,62,0,7,192,255,192,63, + 240,28,41,164,29,0,0,0,0,32,0,0,0,56,0,0, + 0,252,0,0,1,248,0,0,3,224,0,0,15,128,0,0, + 30,0,0,0,56,0,0,0,32,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,7,0,0,0,15,0,0,0, + 15,0,0,0,31,128,0,0,31,128,0,0,27,128,0,0, + 59,192,0,0,57,192,0,0,49,224,0,0,113,224,0,0, + 112,224,0,0,96,240,0,0,224,240,0,0,224,112,0,0, + 192,120,0,1,192,120,0,1,192,56,0,1,255,252,0,3, + 255,252,0,3,128,30,0,3,0,30,0,7,0,30,0,7, + 0,15,0,6,0,15,0,14,0,15,0,14,0,7,128,12, + 0,7,128,62,0,7,192,255,192,63,240,28,41,164,29,0, + 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, + 0,0,121,224,0,0,240,240,0,1,192,56,0,1,128,24, + 0,1,0,16,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, + 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, + 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, + 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, + 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, + 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, + 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, + 192,255,192,63,240,28,39,156,29,0,0,0,16,8,0,0, + 124,12,0,0,254,28,0,1,255,248,0,1,135,240,0,3, + 3,224,0,2,1,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0, + 31,128,0,0,31,128,0,0,27,128,0,0,59,192,0,0, + 57,192,0,0,49,224,0,0,113,224,0,0,112,224,0,0, + 96,240,0,0,224,240,0,0,224,112,0,0,192,120,0,1, + 192,120,0,1,192,56,0,1,255,252,0,3,255,252,0,3, + 128,30,0,3,0,30,0,7,0,30,0,7,0,15,0,6, + 0,15,0,14,0,15,0,14,0,7,128,12,0,7,128,62, + 0,7,192,255,192,63,240,28,38,152,29,0,0,0,128,32, + 0,0,224,56,0,1,224,120,0,1,224,120,0,1,224,120, + 0,0,128,32,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, + 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, + 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, + 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, + 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, + 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, + 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, + 192,255,192,63,240,28,42,168,29,0,0,0,2,0,0,0, + 15,128,0,0,31,192,0,0,24,192,0,0,48,192,0,0, + 48,192,0,0,48,192,0,0,63,128,0,0,31,0,0,0, + 8,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 7,0,0,0,15,0,0,0,15,0,0,0,31,128,0,0, + 31,128,0,0,27,128,0,0,59,192,0,0,57,192,0,0, + 49,224,0,0,113,224,0,0,112,224,0,0,96,240,0,0, + 224,240,0,0,224,112,0,0,192,120,0,1,192,120,0,1, + 192,56,0,1,255,252,0,3,255,252,0,3,128,30,0,3, + 0,30,0,7,0,30,0,7,0,15,0,6,0,15,0,14, + 0,15,0,14,0,7,128,12,0,7,128,62,0,7,192,255, + 192,63,240,36,30,150,37,0,0,0,127,255,255,192,0,31, + 255,255,224,0,7,252,0,192,0,7,60,0,192,0,7,60, + 0,192,0,14,60,0,192,0,14,60,0,0,0,30,60,0, + 0,0,28,60,0,0,0,28,60,0,0,0,60,60,0,0, + 0,56,60,0,0,0,120,60,0,0,0,127,255,255,0,0, + 127,255,255,0,0,240,60,6,0,0,224,60,0,0,1,224, + 60,0,0,1,192,60,0,0,1,192,60,0,0,3,128,60, + 0,0,3,128,60,0,0,7,128,60,0,0,7,0,60,0, + 0,7,0,60,0,16,14,0,60,0,48,14,0,60,0,48, + 30,0,62,0,112,62,0,127,255,224,255,193,255,255,224,22, + 40,120,26,2,246,0,31,224,0,255,252,1,192,252,7,128, + 56,14,0,16,14,0,0,28,0,0,56,0,0,56,0,0, + 120,0,0,112,0,0,112,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,248,0,0,120,0,0,124,0,0,60,0,0,62,0,8, + 31,0,60,15,128,240,15,255,224,3,255,128,0,254,0,0, + 24,0,0,16,0,0,28,0,0,62,0,0,63,0,0,15, + 0,0,15,0,0,30,0,0,120,0,1,192,0,21,41,123, + 24,1,0,4,0,0,14,0,0,31,0,0,15,192,0,3, + 224,0,0,240,0,0,60,0,0,14,0,0,4,0,0,0, + 0,0,0,0,255,255,224,127,255,240,30,0,96,30,0,96, + 30,0,96,30,0,96,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,31,255,128,31,255, + 128,30,3,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,8,30, + 0,24,30,0,24,31,0,56,127,255,240,255,255,240,21,41, + 123,24,1,0,0,1,0,0,3,192,0,7,224,0,15,192, + 0,63,0,0,124,0,0,240,0,1,192,0,1,0,0,0, + 0,0,0,0,0,255,255,224,127,255,240,30,0,96,30,0, + 96,30,0,96,30,0,96,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,31,255,128,31, + 255,128,30,3,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,8, + 30,0,24,30,0,24,31,0,56,127,255,240,255,255,240,21, + 41,123,24,1,0,0,48,0,0,120,0,0,252,0,1,254, + 0,3,207,0,7,7,0,14,1,128,28,0,192,16,0,128, + 0,0,0,0,0,0,255,255,224,127,255,240,30,0,96,30, + 0,96,30,0,96,30,0,96,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,31,255,128, + 31,255,128,30,3,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 8,30,0,24,30,0,24,31,0,56,127,255,240,255,255,240, + 21,38,114,24,1,0,4,1,0,15,3,192,15,3,192,15, + 3,192,14,3,128,4,1,0,0,0,0,0,0,0,255,255, + 224,127,255,240,30,0,96,30,0,96,30,0,96,30,0,96, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,31,255,128,31,255,128,30,3,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,8,30,0,24,30,0,24,31, + 0,56,127,255,240,255,255,240,13,41,82,14,255,0,32,0, + 112,0,252,0,126,0,31,0,7,128,1,224,0,112,0,32, + 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, + 13,41,82,14,2,0,0,64,0,112,1,248,3,240,7,192, + 31,0,60,0,112,0,64,0,0,0,0,0,255,192,127,128, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,127,128,255,192,15,41,82,14,255,0,1,128, + 3,192,7,224,15,240,30,120,56,60,112,12,224,6,64,4, + 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, + 14,38,76,14,0,0,64,16,112,28,240,60,240,60,224,56, + 64,16,0,0,0,0,63,240,31,224,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,31,224, + 63,240,25,30,120,28,1,0,7,254,0,0,255,255,192,0, + 127,3,240,0,15,0,248,0,15,0,124,0,15,0,62,0, + 15,0,30,0,15,0,31,0,15,0,15,0,15,0,15,0, + 15,0,15,128,15,0,7,128,15,0,7,128,15,0,7,128, + 255,254,7,128,255,252,7,128,15,0,7,128,15,0,7,128, + 15,0,7,128,15,0,7,0,15,0,15,0,15,0,15,0, + 15,0,30,0,15,0,30,0,15,0,60,0,15,0,124,0, + 15,0,248,0,15,3,224,0,31,255,192,0,127,254,0,0, + 27,39,156,31,2,0,0,32,16,0,0,124,12,0,0,254, + 24,0,1,255,240,0,3,15,240,0,3,3,224,0,2,1, + 0,0,0,0,0,0,0,0,0,0,252,0,63,224,124,0, + 15,128,30,0,7,0,31,0,7,0,31,0,7,0,31,128, + 7,0,31,192,7,0,29,192,7,0,28,224,7,0,28,240, + 7,0,28,120,7,0,28,56,7,0,28,60,7,0,28,30, + 7,0,28,14,7,0,28,15,7,0,28,7,135,0,28,7, + 135,0,28,3,199,0,28,1,231,0,28,1,231,0,28,0, + 247,0,28,0,127,0,28,0,127,0,28,0,63,0,28,0, + 31,0,28,0,31,0,28,0,15,0,62,0,7,0,255,128, + 3,0,25,41,164,29,2,0,2,0,0,0,3,128,0,0, + 7,192,0,0,7,224,0,0,1,248,0,0,0,124,0,0, + 0,30,0,0,0,7,128,0,0,1,0,0,0,0,0,0, + 0,0,0,0,0,63,0,0,0,255,224,0,3,193,240,0, + 7,0,248,0,14,0,124,0,28,0,62,0,60,0,30,0, + 56,0,31,0,120,0,15,0,120,0,15,0,112,0,15,128, + 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, + 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, + 248,0,7,0,120,0,15,0,120,0,15,0,124,0,14,0, + 60,0,28,0,62,0,28,0,31,0,56,0,15,128,112,0, + 7,193,224,0,3,255,128,0,0,254,0,0,25,41,164,29, + 2,0,0,0,128,0,0,0,224,0,0,1,240,0,0,7, + 240,0,0,15,192,0,0,30,0,0,0,56,0,0,0,224, + 0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,63, + 0,0,0,255,224,0,3,193,240,0,7,0,248,0,14,0, + 124,0,28,0,62,0,60,0,30,0,56,0,31,0,120,0, + 15,0,120,0,15,0,112,0,15,128,240,0,7,128,240,0, + 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, + 7,128,240,0,7,128,240,0,7,128,248,0,7,0,120,0, + 15,0,120,0,15,0,124,0,14,0,60,0,28,0,62,0, + 28,0,31,0,56,0,15,128,112,0,7,193,224,0,3,255, + 128,0,0,254,0,0,25,41,164,29,2,0,0,28,0,0, + 0,62,0,0,0,126,0,0,0,127,0,0,0,227,128,0, + 1,193,192,0,3,128,224,0,6,0,112,0,4,0,32,0, + 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, + 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, + 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, + 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, + 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, + 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, + 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, + 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, + 25,39,156,29,2,0,0,64,32,0,1,248,48,0,3,252, + 48,0,3,255,224,0,6,31,192,0,4,15,128,0,12,2, + 0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,255, + 224,0,3,193,240,0,7,0,248,0,14,0,124,0,28,0, + 62,0,60,0,30,0,56,0,31,0,120,0,15,0,120,0, + 15,0,112,0,15,128,240,0,7,128,240,0,7,128,240,0, + 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, + 7,128,240,0,7,128,248,0,7,0,120,0,15,0,120,0, + 15,0,124,0,14,0,60,0,28,0,62,0,28,0,31,0, + 56,0,15,128,112,0,7,193,224,0,3,255,128,0,0,254, + 0,0,25,38,152,29,2,0,1,0,64,0,3,128,224,0, + 3,128,224,0,7,129,224,0,3,128,224,0,2,0,128,0, + 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, + 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, + 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, + 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, + 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, + 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, + 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, + 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, + 15,14,28,20,2,6,96,6,240,14,120,28,60,56,30,112, + 15,224,7,192,7,192,15,224,30,112,60,56,120,28,240,14, + 96,6,25,31,124,29,2,255,0,63,7,128,1,255,207,0, + 3,193,254,0,7,0,126,0,14,0,60,0,28,0,126,0, + 56,0,126,0,56,0,255,0,120,1,239,0,120,1,239,0, + 112,3,207,128,240,7,135,128,240,7,7,128,240,15,7,128, + 240,30,7,128,240,60,7,128,240,60,7,128,240,120,7,128, + 240,240,7,128,240,224,7,0,121,224,7,0,123,192,15,0, + 123,128,14,0,63,128,12,0,63,0,28,0,30,0,56,0, + 31,0,112,0,63,193,224,0,121,255,128,0,240,126,0,0, + 192,0,0,0,27,41,164,31,2,0,0,128,0,0,1,192, + 0,0,3,240,0,0,1,248,0,0,0,124,0,0,0,30, + 0,0,0,7,128,0,0,1,192,0,0,0,128,0,0,0, + 0,0,0,0,0,0,255,192,127,224,127,128,63,192,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 30,0,15,0,30,0,15,0,30,0,7,128,60,0,7,192, + 120,0,3,224,240,0,1,255,224,0,0,63,128,0,27,41, + 164,31,2,0,0,0,32,0,0,0,120,0,0,0,252,0, + 0,1,248,0,0,3,224,0,0,15,128,0,0,30,0,0, + 0,56,0,0,0,32,0,0,0,0,0,0,0,0,0,0, + 255,192,127,224,127,128,63,192,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,30,0,15,0,30,0, + 15,0,30,0,7,128,60,0,7,192,120,0,3,224,240,0, + 1,255,224,0,0,63,128,0,27,41,164,31,2,0,0,6, + 0,0,0,15,0,0,0,31,128,0,0,63,192,0,0,121, + 224,0,0,224,240,0,1,192,48,0,3,128,24,0,1,0, + 16,0,0,0,0,0,0,0,0,0,255,192,127,224,127,128, + 63,192,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, + 15,0,30,0,30,0,15,0,30,0,15,0,30,0,7,128, + 60,0,7,192,120,0,3,224,240,0,1,255,224,0,0,63, + 128,0,27,38,152,31,2,0,0,128,32,0,0,224,56,0, + 1,224,120,0,1,224,120,0,1,192,112,0,0,128,32,0, + 0,0,0,0,0,0,0,0,255,192,127,224,127,128,63,192, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, + 30,0,30,0,15,0,30,0,15,0,30,0,7,128,60,0, + 7,192,120,0,3,224,240,0,1,255,224,0,0,63,128,0, + 28,41,164,29,0,0,0,0,32,0,0,0,56,0,0,0, + 252,0,0,1,248,0,0,3,224,0,0,7,128,0,0,30, + 0,0,0,56,0,0,0,32,0,0,0,0,0,0,0,0, + 0,0,252,0,63,240,254,0,63,240,31,0,15,128,15,0, + 7,0,15,128,14,0,7,192,14,0,3,192,28,0,3,224, + 60,0,1,224,56,0,0,240,120,0,0,248,112,0,0,120, + 224,0,0,125,224,0,0,61,192,0,0,63,192,0,0,31, + 128,0,0,31,128,0,0,15,0,0,0,15,0,0,0,15, + 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, + 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, + 0,0,0,63,192,0,0,255,240,0,21,30,90,25,2,0, + 255,224,0,127,128,0,30,0,0,30,0,0,30,0,0,30, + 0,0,31,254,0,31,255,128,30,15,192,30,3,224,30,1, + 240,30,0,248,30,0,120,30,0,120,30,0,120,30,0,120, + 30,0,120,30,0,120,30,0,240,30,0,240,30,1,224,31, + 7,192,30,255,128,30,124,0,30,0,0,30,0,0,30,0, + 0,30,0,0,127,128,0,255,224,0,25,36,144,27,1,0, + 0,31,128,0,0,127,224,0,1,195,240,0,3,128,248,0, + 7,0,120,0,7,0,124,0,14,0,60,0,14,0,60,0, + 14,0,60,0,30,0,60,0,30,0,60,0,30,0,120,0, + 30,1,248,0,30,7,240,0,30,15,192,0,30,31,0,0, + 30,60,0,0,30,60,0,0,30,60,0,0,30,62,0,0, + 30,63,0,0,30,31,192,0,30,15,240,0,30,3,252,0, + 30,0,254,0,30,0,127,0,30,0,31,128,30,0,15,128, + 30,0,7,128,30,32,7,128,30,48,7,128,30,48,7,0, + 30,56,15,0,30,60,30,0,62,63,252,0,254,7,224,0, + 20,35,105,22,2,0,30,0,0,62,0,0,31,0,0,15, + 0,0,7,128,0,3,192,0,1,192,0,0,224,0,0,96, + 0,0,48,0,0,0,0,0,0,0,0,0,0,1,248,0, + 15,254,0,28,30,0,120,15,0,112,15,0,240,15,0,128, + 15,0,0,15,0,0,15,0,0,255,0,7,255,0,31,143, + 0,62,15,0,120,15,0,248,15,0,240,15,0,240,15,0, + 240,31,0,240,63,0,120,239,32,127,143,240,30,7,128,20, + 35,105,22,2,0,0,15,0,0,31,0,0,30,0,0,60, + 0,0,56,0,0,112,0,0,112,0,0,224,0,1,192,0, + 1,128,0,0,0,0,0,0,0,0,0,0,1,248,0,15, + 254,0,28,30,0,120,15,0,112,15,0,240,15,0,128,15, + 0,0,15,0,0,15,0,0,255,0,7,255,0,31,143,0, + 62,15,0,120,15,0,248,15,0,240,15,0,240,15,0,240, + 31,0,240,63,0,120,239,32,127,143,240,30,7,128,20,34, + 102,22,2,0,0,224,0,1,240,0,3,240,0,7,56,0, + 6,28,0,12,14,0,24,6,0,48,3,0,32,1,128,0, + 0,0,0,0,0,0,0,0,1,248,0,15,254,0,28,30, + 0,120,15,0,112,15,0,240,15,0,128,15,0,0,15,0, + 0,15,0,0,255,0,7,255,0,31,143,0,62,15,0,120, + 15,0,248,15,0,240,15,0,240,15,0,240,31,0,240,63, + 0,120,239,32,127,143,240,30,7,128,20,32,96,22,2,0, + 7,0,128,15,193,128,31,193,0,63,243,0,48,254,0,96, + 56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,248, + 0,15,254,0,28,30,0,120,15,0,112,15,0,240,15,0, + 128,15,0,0,15,0,0,15,0,0,255,0,7,255,0,31, + 143,0,62,15,0,120,15,0,248,15,0,240,15,0,240,15, + 0,240,31,0,240,63,0,120,239,32,127,143,240,30,7,128, + 20,32,96,22,2,0,28,7,0,28,7,0,60,15,0,60, + 15,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,248,0,15,254,0,28,30,0,120,15,0, + 112,15,0,240,15,0,128,15,0,0,15,0,0,15,0,0, + 255,0,7,255,0,31,143,0,62,15,0,120,15,0,248,15, + 0,240,15,0,240,15,0,240,31,0,240,63,0,120,239,32, + 127,143,240,30,7,128,20,34,102,22,2,0,0,240,0,1, + 248,0,3,24,0,3,24,0,6,24,0,6,24,0,7,56, + 0,3,240,0,1,192,0,0,0,0,0,0,0,0,0,0, + 1,248,0,15,254,0,28,30,0,120,15,0,112,15,0,240, + 15,0,128,15,0,0,15,0,0,15,0,0,255,0,7,255, + 0,31,143,0,62,15,0,120,15,0,248,15,0,240,15,0, + 240,15,0,240,31,0,240,63,0,120,239,32,127,143,240,30, + 7,128,29,22,88,33,2,0,1,248,31,128,7,252,127,192, + 28,62,225,224,56,31,192,240,112,15,128,112,240,15,128,120, + 240,15,0,120,192,15,0,120,0,127,255,248,3,255,255,240, + 15,143,0,0,30,15,0,0,60,15,0,0,120,15,0,0, + 240,15,0,0,240,15,128,0,240,31,128,24,240,63,192,48, + 248,243,224,240,127,227,255,192,127,128,255,128,30,0,126,0, + 18,32,96,21,2,246,0,127,0,1,255,192,7,7,192,14, + 1,128,28,0,128,56,0,0,120,0,0,112,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,248,0,0,120,1,0,124,3,128,62,7,0,31, + 254,0,31,248,0,7,240,0,0,192,0,0,128,0,0,224, + 0,0,240,0,1,248,0,0,120,0,0,120,0,0,240,0, + 3,192,0,14,0,0,18,35,105,22,2,0,14,0,0,31, + 0,0,15,128,0,7,128,0,3,192,0,1,192,0,0,224, + 0,0,112,0,0,48,0,0,24,0,0,0,0,0,0,0, + 0,0,0,0,248,0,7,254,0,14,15,0,28,7,128,56, + 7,128,56,3,192,112,3,192,112,3,192,255,255,192,255,255, + 128,240,0,0,240,0,0,240,0,0,240,0,0,248,0,0, + 120,0,0,120,0,0,124,0,192,62,1,128,31,7,0,15, + 254,0,3,248,0,18,35,105,22,2,0,0,7,0,0,15, + 128,0,15,0,0,30,0,0,60,0,0,56,0,0,112,0, + 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, + 0,0,0,248,0,7,254,0,14,15,0,28,7,128,56,7, + 128,56,3,192,112,3,192,112,3,192,255,255,192,255,255,128, + 240,0,0,240,0,0,240,0,0,240,0,0,248,0,0,120, + 0,0,120,0,0,124,0,192,62,1,128,31,7,0,15,254, + 0,3,248,0,18,34,102,22,2,0,0,240,0,0,240,0, + 1,248,0,3,156,0,7,14,0,14,6,0,12,3,0,24, + 1,128,16,0,128,0,0,0,0,0,0,0,0,0,0,248, + 0,7,254,0,14,15,0,28,7,128,56,7,128,56,3,192, + 112,3,192,112,3,192,255,255,192,255,255,128,240,0,0,240, + 0,0,240,0,0,240,0,0,248,0,0,120,0,0,120,0, + 0,124,0,192,62,1,128,31,7,0,15,254,0,3,248,0, + 18,32,96,22,2,0,14,3,128,30,7,128,30,7,128,30, + 7,128,28,7,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,248,0,7,254,0,14,15,0,28,7,128, + 56,7,128,56,3,192,112,3,192,112,3,192,255,255,192,255, + 255,128,240,0,0,240,0,0,240,0,0,240,0,0,248,0, + 0,120,0,0,120,0,0,124,0,192,62,1,128,31,7,0, + 15,254,0,3,248,0,12,35,70,13,0,0,240,0,248,0, + 120,0,60,0,28,0,14,0,7,0,3,0,1,128,0,128, + 0,0,0,0,0,0,1,128,31,128,63,128,15,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,15,192, + 63,240,12,35,70,13,2,0,0,224,1,240,3,224,3,192, + 7,128,7,0,14,0,28,0,24,0,48,0,0,0,0,0, + 0,0,6,0,126,0,254,0,62,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,63,0,255,192,15,34, + 68,13,255,0,3,128,7,192,7,224,14,240,28,112,56,56, + 112,12,96,6,192,2,0,0,0,0,0,0,0,192,15,192, + 31,192,7,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,7,224,31,248,14,32,64,13,0,0,96,24, + 240,60,240,60,224,56,224,56,0,0,0,0,0,0,0,0, + 0,0,1,128,31,128,63,128,15,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,15,192,63,240,20,34, + 102,24,2,0,3,0,0,31,192,128,31,225,224,1,255,192, + 0,126,0,0,252,0,3,254,0,15,143,0,4,7,128,0, + 3,128,0,3,192,0,1,192,1,241,224,7,255,224,14,31, + 224,28,7,240,56,3,240,56,1,240,120,1,240,112,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, + 0,224,248,1,224,120,1,192,124,1,192,124,3,128,62,7, + 0,31,14,0,15,252,0,3,240,0,23,32,96,26,2,0, + 1,224,32,3,240,48,7,248,96,7,252,192,14,63,128,8, + 15,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7, + 192,254,15,224,62,49,224,30,96,240,30,192,240,30,128,240, + 31,0,240,31,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,127,131,248,255,199,254, + 20,35,105,24,2,0,15,0,0,15,0,0,7,128,0,3, + 192,0,1,192,0,0,224,0,0,112,0,0,112,0,0,56, + 0,0,24,0,0,0,0,0,0,0,0,0,0,0,252,0, + 7,255,0,14,15,128,28,7,192,56,3,192,56,3,224,112, + 1,224,112,1,240,240,0,240,240,0,240,240,0,240,240,0, + 240,240,0,240,240,0,240,248,0,224,120,1,224,124,1,192, + 60,1,192,62,3,128,31,7,0,15,254,0,3,240,0,20, + 35,105,24,2,0,0,7,128,0,7,192,0,15,128,0,15, + 0,0,30,0,0,60,0,0,56,0,0,112,0,0,96,0, + 0,192,0,0,0,0,0,0,0,0,0,0,0,252,0,7, + 255,0,14,15,128,28,7,192,56,3,192,56,3,224,112,1, + 224,112,1,240,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,240,240,0,240,248,0,224,120,1,224,124,1,192,60, + 1,192,62,3,128,31,7,0,15,254,0,3,240,0,20,34, + 102,24,2,0,0,112,0,0,248,0,1,252,0,1,220,0, + 3,142,0,7,7,0,14,3,128,12,1,192,24,0,192,0, + 0,0,0,0,0,0,0,0,0,252,0,7,255,0,14,15, + 128,28,7,192,56,3,192,56,3,224,112,1,224,112,1,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, + 0,240,248,0,224,120,1,224,124,1,192,60,1,192,62,3, + 128,31,7,0,15,254,0,3,240,0,20,32,96,24,2,0, + 3,192,64,7,224,96,15,240,192,15,249,128,28,127,0,16, + 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252, + 0,7,255,0,14,15,128,28,7,192,56,3,192,56,3,224, + 112,1,224,112,1,240,240,0,240,240,0,240,240,0,240,240, + 0,240,240,0,240,240,0,240,248,0,224,120,1,224,124,1, + 192,60,1,192,62,3,128,31,7,0,15,254,0,3,240,0, + 20,32,96,24,2,0,6,1,128,15,3,192,15,3,192,14, + 3,128,14,3,128,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,252,0,7,255,0,14,15,128,28,7,192, + 56,3,192,56,3,224,112,1,224,112,1,240,240,0,240,240, + 0,240,240,0,240,240,0,240,240,0,240,240,0,240,248,0, + 224,120,1,224,124,1,192,60,1,192,62,3,128,31,7,0, + 15,254,0,3,240,0,17,15,45,20,1,6,0,224,0,1, + 224,0,1,224,0,1,192,0,0,0,0,0,0,0,0,0, + 0,127,255,128,255,255,128,0,0,0,0,0,0,0,224,0, + 1,224,0,1,224,0,1,192,0,20,24,72,24,2,255,0, + 0,48,1,248,112,7,254,224,14,15,192,28,7,192,56,3, + 224,56,7,224,112,15,224,112,28,240,240,24,240,240,56,240, + 240,112,240,240,224,240,240,192,240,241,192,240,243,128,224,255, + 0,224,126,1,192,126,1,192,62,3,128,63,7,0,119,254, + 0,225,248,0,128,0,0,24,35,105,25,1,0,3,128,0, + 7,192,0,3,192,0,1,224,0,0,240,0,0,112,0,0, + 56,0,0,24,0,0,12,0,0,4,0,0,0,0,0,0, + 0,0,0,0,6,0,112,254,7,240,126,7,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,1,240,31,2,240,15,12,255, + 15,248,252,3,224,112,24,35,105,25,1,0,0,1,192,0, + 3,224,0,7,192,0,7,128,0,15,0,0,14,0,0,28, + 0,0,56,0,0,48,0,0,96,0,0,0,0,0,0,0, + 0,0,0,6,0,112,254,7,240,126,7,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,1,240,31,2,240,15,12,255,15, + 248,252,3,224,112,24,34,102,25,1,0,0,56,0,0,124, + 0,0,126,0,0,231,0,1,195,0,3,129,128,3,0,192, + 6,0,96,12,0,32,0,0,0,0,0,0,0,0,0,6, + 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, + 112,24,32,96,25,1,0,3,0,192,7,129,224,7,129,224, + 7,129,224,7,1,192,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,6,0,112,254,7,240,126,7,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,1,240,31,2,240,15,12, + 255,15,248,252,3,224,112,24,46,138,24,255,245,0,0,240, + 0,0,248,0,1,224,0,3,224,0,3,192,0,7,128,0, + 7,0,0,14,0,0,12,0,0,24,0,0,0,0,0,0, + 0,0,0,0,127,224,255,31,0,62,15,0,28,15,0,24, + 7,128,56,7,128,56,3,128,48,3,192,112,3,192,96,1, + 224,224,1,224,224,0,224,192,0,241,192,0,241,192,0,121, + 128,0,123,128,0,59,0,0,63,0,0,63,0,0,30,0, + 0,30,0,0,12,0,0,12,0,0,28,0,0,24,0,0, + 56,0,0,112,0,0,112,0,0,224,0,63,192,0,127,128, + 0,255,0,0,124,0,0,21,47,141,25,2,245,6,0,0, + 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,15,0,28,63,192,28,99,224, + 28,193,224,29,129,240,31,0,240,31,0,248,30,0,248,30, + 0,120,30,0,120,30,0,120,30,0,120,30,0,120,30,0, + 120,30,0,112,30,0,112,30,0,224,30,0,224,31,129,192, + 31,195,128,31,255,0,30,124,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,63,0,0,255,224,0,24,43,129,24,255,245, + 0,192,48,1,192,112,1,224,120,3,192,240,1,128,96,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,224, + 255,31,0,62,15,0,28,15,0,24,7,128,56,7,128,56, + 3,128,48,3,192,112,3,192,96,1,224,224,1,224,224,0, + 224,192,0,241,192,0,241,192,0,121,128,0,123,128,0,59, + 0,0,63,0,0,63,0,0,30,0,0,30,0,0,12,0, + 0,12,0,0,28,0,0,24,0,0,56,0,0,112,0,0, + 112,0,0,224,0,63,192,0,127,128,0,255,0,0,124,0, + 0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 29 + Calculated Max Values w=20 h=46 x= 3 y=17 dx=23 dy= 0 ascent=38 len=138 + Font Bounding box w=71 h=68 x=-24 y=-17 + Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 + Pure Font ascent =29 descent= 0 + X Font ascent =29 descent= 0 + Max Font ascent =38 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr30n[1252] U8G_SECTION(".progmem.u8g_font_gdr30n") = { + 0,71,68,232,239,29,0,0,0,0,42,57,0,38,248,29, + 0,18,20,60,21,2,17,0,192,0,1,192,0,1,192,0, + 1,192,0,193,193,0,240,195,192,248,207,192,124,223,0,15, + 252,0,3,224,0,3,224,0,15,252,0,60,223,0,248,207, + 128,240,195,128,64,193,128,1,192,0,1,192,0,1,192,0, + 1,128,0,17,17,51,20,1,5,0,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,128,0,7,13,13,11, + 2,249,8,60,254,254,30,30,30,28,28,56,48,96,64,14, + 2,4,16,1,11,127,252,255,248,6,6,6,11,3,255,56, + 124,252,252,248,112,20,46,138,23,1,248,0,0,48,0,0, + 240,0,0,240,0,0,224,0,1,224,0,1,192,0,1,192, + 0,3,192,0,3,128,0,7,128,0,7,128,0,7,0,0, + 15,0,0,15,0,0,14,0,0,30,0,0,28,0,0,28, + 0,0,60,0,0,56,0,0,120,0,0,120,0,0,112,0, + 0,240,0,0,224,0,0,224,0,1,224,0,1,192,0,3, + 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, + 0,15,0,0,14,0,0,30,0,0,30,0,0,28,0,0, + 60,0,0,60,0,0,56,0,0,120,0,0,112,0,0,240, + 0,0,192,0,0,19,29,87,23,2,0,1,248,0,7,252, + 0,14,30,0,28,15,0,24,7,128,56,7,128,56,3,192, + 112,3,192,112,3,192,112,3,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,1,192,120,1,192,120,3,192,120,3,128, + 60,3,128,60,3,0,30,7,0,15,14,0,7,252,0,3, + 240,0,17,29,87,23,3,0,0,96,0,1,224,0,15,224, + 0,127,224,0,255,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,3,240,0,63,254,0,127,255,128,17, + 29,87,22,2,0,1,248,0,7,254,0,28,31,0,56,15, + 0,120,15,128,112,7,128,240,7,128,224,7,128,0,7,128, + 0,7,128,0,15,0,0,15,0,0,30,0,0,30,0,0, + 60,0,0,120,0,0,240,0,0,240,0,1,224,0,3,192, + 0,7,128,0,15,0,0,15,0,0,30,0,128,60,0,128, + 120,0,128,240,1,128,255,255,128,255,255,128,18,29,87,22, + 1,0,1,248,0,7,254,0,30,31,0,60,15,0,56,7, + 128,120,7,128,112,7,128,0,7,128,0,7,0,0,15,0, + 0,30,0,0,60,0,0,248,0,3,254,0,0,63,0,0, + 15,128,0,7,128,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,7,128,128,7,128,224,15,0, + 120,62,0,63,252,0,7,224,0,19,29,87,23,1,0,0, + 3,0,0,15,0,0,31,0,0,63,0,0,127,0,0,127, + 0,0,239,0,0,207,0,1,207,0,3,143,0,3,143,0, + 7,15,0,14,15,0,14,15,0,28,15,0,24,15,0,56, + 15,0,112,15,0,112,15,0,255,255,224,255,255,192,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,63,128,1,255,224,18,29,87,23,2,0,0,0,128,0, + 1,128,31,255,0,31,254,0,24,0,0,24,0,0,24,0, + 0,24,0,0,56,0,0,56,0,0,56,0,0,63,240,0, + 63,252,0,120,63,0,32,15,0,0,7,128,0,7,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 128,0,7,128,128,7,128,224,15,0,120,62,0,63,252,0, + 7,240,0,18,29,87,23,3,0,0,7,0,0,63,0,0, + 248,0,1,224,0,3,192,0,15,0,0,14,0,0,30,0, + 0,60,0,0,56,0,0,120,0,0,120,248,0,119,254,0, + 254,31,0,248,15,128,240,7,128,240,7,192,240,3,192,240, + 3,192,240,3,192,240,3,192,248,3,192,120,3,128,120,3, + 128,60,7,128,60,7,0,31,14,0,15,252,0,3,240,0, + 19,27,81,23,2,0,127,255,192,127,255,224,96,1,192,64, + 3,192,192,3,128,0,3,128,0,7,0,0,7,0,0,14, + 0,0,14,0,0,28,0,0,28,0,0,56,0,0,56,0, + 0,56,0,0,112,0,0,112,0,0,224,0,0,224,0,1, + 192,0,1,192,0,3,192,0,7,128,0,7,128,0,15,0, + 0,15,0,0,28,0,0,18,29,87,22,2,0,3,248,0, + 15,254,0,28,31,0,56,15,0,48,7,128,112,7,128,112, + 7,128,112,7,128,112,7,0,120,15,0,62,30,0,31,188, + 0,15,240,0,3,252,0,7,254,0,30,63,0,60,15,128, + 120,7,192,112,7,192,240,3,192,240,3,192,240,3,192,240, + 3,192,240,3,128,120,7,128,124,7,0,62,14,0,31,252, + 0,7,224,0,19,30,90,23,2,255,1,248,0,7,254,0, + 14,31,0,28,15,128,56,7,128,120,3,192,112,3,192,240, + 3,224,240,1,224,240,1,224,240,1,224,240,1,224,248,1, + 224,120,3,224,124,7,224,62,13,224,31,249,224,7,225,192, + 0,3,192,0,3,192,0,7,128,0,7,128,0,15,0,0, + 30,0,0,60,0,0,120,0,0,240,0,3,224,0,31,128, + 0,56,0,0}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 30, '1' Height: 29 + Calculated Max Values w=40 h=49 x= 4 y=25 dx=41 dy= 0 ascent=39 len=195 + Font Bounding box w=71 h=68 x=-24 y=-17 + Calculated Min Values x=-5 y=-11 dx= 0 dy= 0 + Pure Font ascent =30 descent=-11 + X Font ascent =38 descent=-11 + Max Font ascent =39 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr30r[8588] U8G_SECTION(".progmem.u8g_font_gdr30r") = { + 0,71,68,232,239,30,9,231,23,124,32,127,245,39,245,38, + 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, + 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, + 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, + 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, + 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, + 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, + 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, + 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, + 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, + 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, + 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, + 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, + 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, + 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, + 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, + 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, + 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, + 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, + 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, + 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, + 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, + 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, + 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, + 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, + 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, + 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, + 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, + 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, + 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, + 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, + 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, + 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, + 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, + 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, + 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, + 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, + 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, + 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, + 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, + 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, + 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, + 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, + 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, + 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, + 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, + 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, + 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, + 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, + 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, + 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, + 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, + 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, + 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, + 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, + 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, + 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, + 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, + 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, + 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, + 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, + 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, + 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, + 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, + 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, + 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, + 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, + 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, + 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, + 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, + 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, + 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, + 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, + 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, + 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, + 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, + 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, + 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, + 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, + 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, + 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, + 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, + 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, + 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, + 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, + 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, + 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, + 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, + 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, + 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, + 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, + 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, + 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, + 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, + 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, + 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, + 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, + 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, + 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, + 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, + 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, + 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, + 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, + 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, + 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, + 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, + 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, + 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, + 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, + 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, + 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, + 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, + 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, + 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, + 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, + 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, + 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, + 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, + 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, + 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, + 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, + 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, + 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, + 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, + 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, + 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, + 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, + 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, + 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, + 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, + 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, + 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, + 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, + 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, + 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, + 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, + 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, + 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, + 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, + 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, + 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, + 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, + 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, + 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, + 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, + 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, + 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, + 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, + 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, + 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, + 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, + 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, + 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, + 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, + 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, + 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, + 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, + 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, + 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, + 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, + 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, + 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, + 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, + 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, + 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, + 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, + 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, + 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, + 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, + 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, + 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, + 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, + 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, + 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, + 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, + 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, + 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, + 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, + 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, + 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, + 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, + 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, + 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, + 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, + 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, + 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, + 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, + 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, + 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, + 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, + 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, + 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, + 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, + 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, + 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, + 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, + 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, + 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, + 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, + 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, + 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, + 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, + 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, + 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, + 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, + 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, + 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, + 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, + 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, + 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, + 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, + 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, + 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, + 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, + 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, + 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, + 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, + 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, + 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, + 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, + 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, + 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, + 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, + 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, + 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, + 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, + 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, + 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, + 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, + 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, + 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, + 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, + 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, + 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, + 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, + 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, + 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, + 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, + 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, + 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, + 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, + 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, + 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, + 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, + 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, + 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, + 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, + 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, + 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, + 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, + 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, + 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, + 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, + 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, + 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, + 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, + 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, + 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, + 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, + 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, + 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, + 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, + 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, + 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, + 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, + 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, + 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, + 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, + 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, + 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, + 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, + 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, + 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, + 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, + 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, + 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, + 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, + 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, + 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, + 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, + 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, + 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, + 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, + 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, + 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, + 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, + 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, + 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, + 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, + 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, + 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, + 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, + 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, + 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, + 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, + 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, + 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, + 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, + 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, + 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, + 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, + 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, + 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, + 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, + 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, + 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, + 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, + 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, + 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, + 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, + 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, + 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, + 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, + 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, + 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, + 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, + 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, + 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, + 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, + 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, + 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, + 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, + 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, + 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, + 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, + 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, + 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, + 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, + 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, + 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, + 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, + 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, + 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, + 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, + 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, + 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, + 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, + 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, + 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, + 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, + 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, + 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, + 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, + 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, + 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, + 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, + 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, + 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, + 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, + 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, + 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, + 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, + 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, + 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, + 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, + 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, + 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, + 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, + 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, + 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, + 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, + 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, + 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, + 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, + 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, + 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, + 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, + 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, + 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, + 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, + 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, + 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, + 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, + 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, + 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, + 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, + 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, + 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, + 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, + 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, + 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, + 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, + 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, + 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, + 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, + 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, + 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, + 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, + 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, + 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, + 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, + 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, + 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, + 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, + 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, + 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, + 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, + 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, + 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, + 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, + 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, + 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, + 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, + 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, + 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, + 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, + 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, + 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, + 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, + 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, + 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, + 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, + 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, + 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, + 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, + 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, + 255,224,96,127,192,64,31,128,192,15,0,255}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w=12 h=15 x= 2 y= 8 dx=13 dy= 0 ascent=13 len=26 + Font Bounding box w=23 h=21 x=-8 y=-5 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr9[3248] U8G_SECTION(".progmem.u8g_font_gdr9") = { + 0,23,21,248,251,9,1,255,4,54,32,255,252,13,252,12, + 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, + 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, + 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, + 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, + 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, + 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, + 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, + 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, + 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, + 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, + 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, + 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, + 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, + 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, + 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, + 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, + 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, + 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, + 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, + 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, + 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, + 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, + 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, + 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, + 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, + 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, + 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, + 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, + 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, + 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, + 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, + 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, + 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, + 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, + 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, + 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, + 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, + 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, + 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, + 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, + 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, + 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, + 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, + 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, + 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, + 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, + 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, + 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, + 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, + 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, + 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, + 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, + 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, + 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, + 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, + 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, + 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, + 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, + 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, + 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, + 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, + 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, + 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, + 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, + 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, + 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, + 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, + 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, + 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, + 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, + 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, + 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, + 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, + 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, + 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, + 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, + 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, + 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, + 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, + 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, + 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, + 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, + 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, + 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, + 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, + 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, + 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, + 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, + 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, + 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, + 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, + 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, + 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, + 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, + 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,3,0,0,2,11,11,4,1,252,128,128,0, + 128,128,128,192,192,192,192,192,5,9,9,7,1,0,32,56, + 232,160,160,160,232,112,32,6,9,9,7,1,0,56,68,72, + 64,240,64,64,68,252,3,5,5,7,2,2,160,224,160,160, + 224,7,9,9,7,0,0,206,100,40,56,16,124,16,16,56, + 1,15,15,3,1,253,128,128,128,128,128,128,128,0,128,128, + 128,128,128,128,128,6,11,11,8,1,0,112,144,128,224,184, + 132,68,56,136,136,112,4,2,2,6,1,8,144,144,9,9, + 18,11,1,0,62,0,93,0,166,128,160,128,160,128,160,128, + 182,128,93,0,62,0,4,5,5,4,0,4,96,160,224,224, + 240,5,7,7,7,1,0,104,72,144,176,144,72,104,6,4, + 4,7,1,1,252,4,4,4,5,1,1,5,0,3,248,5, + 6,6,5,0,5,112,136,184,168,168,112,5,1,1,7,1, + 8,248,3,4,4,5,1,5,96,160,160,192,6,7,7,6, + 0,1,16,16,124,16,16,0,252,4,6,6,5,0,4,48, + 208,32,32,80,240,4,6,6,5,0,4,48,80,32,16,144, + 96,3,3,3,5,2,8,96,128,128,8,11,11,8,0,252, + 198,66,66,66,66,70,123,64,64,64,96,8,11,11,9,0, + 254,127,138,138,202,122,10,10,10,10,10,31,1,2,2,2, + 1,4,128,128,2,3,3,3,1,253,128,64,192,3,5,5, + 5,1,5,192,64,64,64,224,3,5,5,4,0,4,96,160, + 160,192,224,6,7,7,7,1,0,160,80,72,44,72,80,160, + 8,9,9,9,1,0,194,68,68,72,178,22,42,79,199,7, + 9,9,9,1,0,194,68,72,72,182,26,36,74,206,9,9, + 18,9,0,0,49,0,82,0,52,0,20,0,233,0,11,0, + 21,0,39,128,99,128,5,11,11,7,1,252,32,32,32,32, + 32,64,128,128,136,136,112,9,12,24,9,0,0,48,0,12, + 0,0,0,8,0,8,0,20,0,20,0,36,0,62,0,34, + 0,67,0,227,128,9,12,24,9,0,0,6,0,24,0,0, + 0,8,0,8,0,20,0,20,0,36,0,62,0,34,0,67, + 0,227,128,9,12,24,9,0,0,28,0,34,0,0,0,8, + 0,8,0,20,0,20,0,36,0,62,0,34,0,67,0,227, + 128,9,12,24,9,0,0,58,0,60,0,0,0,8,0,8, + 0,20,0,20,0,36,0,62,0,34,0,67,0,227,128,9, + 11,22,9,0,0,36,0,36,0,8,0,8,0,20,0,20, + 0,36,0,62,0,34,0,67,0,227,128,9,13,26,9,0, + 0,12,0,20,0,20,0,8,0,8,0,8,0,20,0,20, + 0,36,0,62,0,34,0,67,0,227,128,11,9,18,12,0, + 0,31,224,10,32,18,0,31,192,18,0,34,0,34,0,34, + 32,231,224,6,12,12,8,1,253,60,68,128,128,128,128,128, + 68,120,32,16,48,6,12,12,7,1,0,224,16,0,252,68, + 64,120,64,64,64,68,252,6,12,12,7,1,0,24,96,0, + 252,68,64,120,64,64,64,68,252,6,12,12,7,1,0,112, + 136,0,252,68,64,120,64,64,64,68,252,6,11,11,7,1, + 0,144,144,124,68,64,120,64,64,64,68,252,4,12,12,4, + 0,0,192,32,0,112,32,32,32,32,32,32,32,112,4,12, + 12,4,1,0,112,128,0,224,64,64,64,64,64,64,64,224, + 4,12,12,4,0,0,96,144,0,112,32,32,32,32,32,32, + 32,112,4,11,11,4,0,0,144,144,96,32,32,32,32,32, + 32,32,112,8,9,9,9,0,0,252,66,65,65,241,65,65, + 66,252,10,12,24,10,0,0,26,0,60,0,0,0,193,192, + 96,128,80,128,88,128,76,128,70,128,67,128,65,128,224,128, + 7,12,12,9,1,0,96,24,0,56,68,130,130,130,130,130, + 68,56,7,12,12,9,1,0,12,48,0,56,68,130,130,130, + 130,130,68,56,7,12,12,9,1,0,56,68,0,56,68,130, + 130,130,130,130,68,56,7,12,12,9,1,0,52,120,0,56, + 68,130,130,130,130,130,68,56,7,11,11,9,1,0,72,72, + 56,68,130,130,130,130,130,68,56,4,4,4,6,1,2,144, + 96,96,144,7,9,9,9,1,0,58,68,138,138,146,162,194, + 68,184,9,12,24,10,0,0,56,0,4,0,0,0,227,128, + 65,0,65,0,65,0,65,0,65,0,65,0,98,0,60,0, + 9,12,24,10,0,0,6,0,24,0,0,0,227,128,65,0, + 65,0,65,0,65,0,65,0,65,0,98,0,60,0,9,12, + 24,10,0,0,28,0,34,0,0,0,227,128,65,0,65,0, + 65,0,65,0,65,0,65,0,98,0,60,0,9,11,22,10, + 0,0,34,0,36,0,195,128,65,0,65,0,65,0,65,0, + 65,0,65,0,98,0,60,0,9,12,24,9,0,0,6,0, + 24,0,0,0,227,128,98,0,50,0,20,0,28,0,8,0, + 8,0,8,0,28,0,7,9,9,8,0,0,224,124,70,66, + 66,66,100,92,224,8,11,11,8,0,0,28,34,66,66,68, + 72,76,67,65,73,206,6,11,11,7,1,0,192,96,32,0, + 56,72,136,56,200,136,252,6,11,11,7,1,0,24,16,32, + 0,56,72,136,56,200,136,252,6,11,11,7,1,0,32,80, + 136,0,56,72,136,56,200,136,252,6,10,10,7,1,0,104, + 176,0,56,72,136,56,200,136,252,6,10,10,7,1,0,144, + 144,0,56,72,136,56,200,136,252,6,11,11,7,1,0,48, + 80,80,48,56,72,136,56,200,136,252,9,7,14,10,1,0, + 63,0,76,128,136,128,63,128,200,0,136,128,247,0,5,10, + 10,7,1,253,120,136,128,128,128,200,112,32,16,48,5,11, + 11,7,1,0,64,32,32,16,112,72,136,248,128,200,112,5, + 11,11,7,1,0,24,16,32,0,112,72,136,248,128,200,112, + 5,11,11,7,1,0,32,80,136,0,112,72,136,248,128,200, + 112,5,10,10,7,1,0,144,152,0,112,72,136,248,128,200, + 112,4,11,11,4,0,0,128,64,32,0,96,32,32,32,32, + 32,112,3,11,11,4,1,0,32,64,128,0,192,64,64,64, + 64,64,224,4,11,11,4,0,0,96,80,144,0,96,32,32, + 32,32,32,112,4,10,10,4,0,0,144,144,0,96,32,32, + 32,32,32,112,5,11,11,7,1,0,200,48,80,16,120,136, + 136,136,136,144,112,8,10,10,8,0,0,18,108,0,78,242, + 66,66,66,66,231,6,11,11,8,1,0,64,32,16,0,56, + 204,132,132,132,200,112,6,11,11,8,1,0,8,16,32,0, + 56,204,132,132,132,200,112,6,11,11,8,1,0,48,80,136, + 0,56,204,132,132,132,200,112,6,10,10,8,1,0,104,152, + 0,56,204,132,132,132,200,112,6,10,10,8,1,0,136,136, + 0,56,204,132,132,132,200,112,6,4,4,6,0,2,16,124, + 128,16,6,7,7,8,1,0,60,204,148,164,164,200,240,8, + 11,11,8,0,0,32,16,8,0,198,66,66,66,66,70,59, + 8,11,11,8,0,0,4,8,16,0,198,66,66,66,66,70, + 59,8,11,11,8,0,0,24,24,36,0,198,66,66,66,66, + 70,59,8,10,10,8,0,0,36,68,0,198,66,66,66,66, + 70,59,7,15,15,7,0,252,4,8,16,0,230,68,36,36, + 40,24,16,16,16,32,192,7,15,15,8,0,252,192,64,64, + 64,76,114,66,66,66,68,120,64,64,64,224,7,14,14,7, + 0,252,68,68,0,230,68,36,36,40,24,16,16,16,32,192 + }; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w= 7 h=14 x= 1 y= 5 dx= 7 dy= 0 ascent=12 len=14 + Font Bounding box w=23 h=21 x=-8 y=-5 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent =12 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr9n[235] U8G_SECTION(".progmem.u8g_font_gdr9n") = { + 0,23,21,248,251,9,0,0,0,0,42,57,0,12,254,9, + 0,5,6,6,7,1,5,32,168,112,112,168,32,5,5,5, + 6,1,2,32,32,248,32,32,2,4,4,3,1,254,64,192, + 64,128,5,1,1,5,0,3,248,1,2,2,3,1,0,128, + 128,7,14,14,7,0,254,6,4,4,8,8,8,16,16,32, + 32,32,64,64,192,5,9,9,7,1,0,112,144,136,136,136, + 136,136,80,112,5,9,9,7,1,0,32,224,32,32,32,32, + 32,32,248,5,9,9,7,1,0,56,72,136,8,16,32,64, + 136,248,6,9,9,7,0,0,48,72,136,16,120,4,4,132, + 120,6,9,9,7,0,0,8,24,40,40,72,72,252,8,60, + 5,9,9,7,1,0,120,128,128,240,136,8,8,136,112,5, + 9,9,7,1,0,24,96,64,176,200,136,136,136,112,5,9, + 9,7,1,0,248,136,8,16,16,32,32,96,64,5,9,9, + 7,1,0,112,200,136,208,112,136,136,136,112,5,9,9,7, + 1,0,112,152,136,136,136,120,16,16,224}; +/* + Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 + Copyright: Copyright (c) SIL International, 2003-2008. + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w=12 h=15 x= 1 y= 8 dx=13 dy= 0 ascent=12 len=26 + Font Bounding box w=23 h=21 x=-8 y=-5 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_gdr9r[1553] U8G_SECTION(".progmem.u8g_font_gdr9r") = { + 0,23,21,248,251,9,1,255,4,54,32,127,252,12,252,12, + 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, + 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, + 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, + 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, + 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, + 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, + 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, + 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, + 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, + 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, + 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, + 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, + 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, + 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, + 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, + 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, + 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, + 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, + 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, + 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, + 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, + 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, + 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, + 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, + 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, + 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, + 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, + 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, + 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, + 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, + 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, + 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, + 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, + 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, + 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, + 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, + 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, + 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, + 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, + 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, + 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, + 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, + 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, + 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, + 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, + 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, + 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, + 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, + 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, + 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, + 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, + 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, + 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, + 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, + 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, + 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, + 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, + 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, + 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, + 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, + 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, + 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, + 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, + 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, + 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, + 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, + 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, + 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, + 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, + 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, + 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, + 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, + 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, + 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, + 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, + 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, + 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, + 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, + 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, + 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, + 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, + 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, + 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, + 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, + 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, + 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, + 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, + 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, + 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, + 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, + 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, + 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, + 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, + 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, + 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, + 255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 + Font Bounding box w=12 h=19 x=-1 y=-5 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB08[2677] U8G_SECTION(".progmem.u8g_font_helvB08") = { + 0,12,19,255,251,8,1,182,3,122,32,255,254,11,254,8, + 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, + 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, + 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, + 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, + 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, + 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, + 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, + 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, + 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, + 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, + 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, + 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, + 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, + 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, + 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, + 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, + 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, + 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, + 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, + 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, + 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, + 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, + 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, + 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, + 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, + 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, + 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, + 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, + 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, + 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, + 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, + 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, + 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, + 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, + 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, + 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, + 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, + 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, + 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, + 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, + 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, + 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, + 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, + 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, + 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, + 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, + 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, + 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, + 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, + 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, + 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, + 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, + 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, + 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, + 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, + 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, + 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, + 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, + 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, + 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, + 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, + 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, + 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, + 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, + 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, + 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, + 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, + 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, + 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, + 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, + 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, + 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, + 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, + 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, + 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, + 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, + 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, + 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, + 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, + 2,6,0,3,104,176,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,3,0,1,2,8,8, + 4,1,254,192,0,64,64,192,192,192,192,5,8,8,6,0, + 255,16,112,216,160,160,216,112,64,5,8,8,6,0,0,56, + 104,96,240,96,96,104,216,6,6,6,6,0,1,132,120,72, + 72,120,132,6,8,8,7,0,0,132,132,204,72,252,48,252, + 48,1,10,10,3,1,254,128,128,128,128,0,0,128,128,128, + 128,5,10,10,6,0,254,112,200,224,112,152,200,112,56,152, + 112,3,1,1,3,0,7,160,8,8,8,10,1,0,60,66, + 153,165,161,157,66,60,3,5,5,5,1,3,224,32,160,0, + 224,6,3,3,7,0,1,108,216,108,5,3,3,7,1,2, + 248,8,8,4,1,1,5,0,3,240,8,8,8,10,1,0, + 60,66,189,165,185,165,66,60,3,1,1,3,0,7,224,3, + 3,3,4,0,5,96,160,192,6,7,7,6,0,0,48,48, + 252,48,48,0,252,3,4,4,3,0,4,96,160,64,224,3, + 4,4,3,0,4,224,64,32,192,2,2,2,3,0,7,64, + 128,5,8,8,6,0,254,216,216,216,216,216,232,192,192,6, + 10,10,6,0,254,124,232,232,232,104,40,40,40,40,40,2, + 1,1,3,0,3,192,2,2,2,3,0,254,64,192,2,4, + 4,3,0,4,64,192,64,64,3,5,5,5,1,3,224,160, + 224,0,224,6,3,3,7,0,1,216,108,216,8,8,8,9, + 0,0,68,196,72,72,18,38,47,66,7,8,8,9,0,0, + 68,196,72,72,22,42,36,78,8,8,8,9,0,0,228,68, + 40,200,18,38,47,66,5,8,8,6,0,254,48,0,48,48, + 96,192,216,112,7,11,11,8,0,0,32,16,0,56,56,108, + 108,108,254,198,198,7,11,11,8,0,0,8,16,0,56,56, + 108,108,108,254,198,198,7,11,11,8,0,0,16,40,0,56, + 56,108,108,108,254,198,198,7,11,11,8,0,0,20,40,0, + 56,56,108,108,108,254,198,198,7,10,10,8,0,0,40,0, + 56,56,108,108,108,254,198,198,7,11,11,8,0,0,16,40, + 16,56,56,108,108,108,254,198,198,9,8,16,10,0,0,63, + 128,60,0,108,0,111,128,108,0,252,0,204,0,207,128,7, + 10,10,8,0,254,60,102,194,192,192,194,102,60,16,48,5, + 11,11,6,0,0,64,32,0,248,192,192,248,192,192,192,248, + 5,11,11,6,0,0,16,32,0,248,192,192,248,192,192,192, + 248,5,11,11,6,0,0,32,80,0,248,192,192,248,192,192, + 192,248,5,10,10,6,0,0,80,0,248,192,192,248,192,192, + 192,248,2,11,11,3,0,0,128,64,0,192,192,192,192,192, + 192,192,192,2,11,11,3,0,0,64,128,0,192,192,192,192, + 192,192,192,192,3,11,11,3,255,0,64,160,0,96,96,96, + 96,96,96,96,96,4,10,10,3,255,0,144,0,96,96,96, + 96,96,96,96,96,7,8,8,7,255,0,120,108,102,246,102, + 102,108,120,7,11,11,8,0,0,20,40,0,198,230,230,214, + 214,206,206,198,7,11,11,8,0,0,16,8,0,56,108,198, + 198,198,198,108,56,7,11,11,8,0,0,8,16,0,56,108, + 198,198,198,198,108,56,7,11,11,8,0,0,16,40,0,56, + 108,198,198,198,198,108,56,7,11,11,8,0,0,20,40,0, + 56,108,198,198,198,198,108,56,7,10,10,8,0,0,40,0, + 56,108,198,198,198,198,108,56,6,5,5,6,0,1,204,120, + 48,120,204,7,8,8,8,0,0,58,108,206,214,214,230,108, + 184,6,11,11,7,0,0,32,16,0,204,204,204,204,204,204, + 204,120,6,11,11,7,0,0,8,16,0,204,204,204,204,204, + 204,204,120,6,11,11,7,0,0,32,80,0,204,204,204,204, + 204,204,204,120,6,10,10,7,0,0,72,0,204,204,204,204, + 204,204,204,120,8,11,11,9,0,0,4,8,0,195,195,102, + 102,60,24,24,24,6,8,8,7,0,0,192,248,204,204,204, + 248,192,192,5,8,8,6,0,0,112,200,200,208,200,200,200, + 208,6,9,9,6,0,0,32,16,0,112,152,120,216,216,108, + 6,9,9,6,0,0,16,32,0,112,152,120,216,216,108,6, + 9,9,6,0,0,32,80,0,112,152,120,216,216,108,6,9, + 9,6,0,0,40,80,0,112,152,120,216,216,108,6,8,8, + 6,0,0,80,0,112,152,120,216,216,108,6,9,9,6,0, + 0,32,80,32,112,152,120,216,216,108,8,6,6,9,0,0, + 126,155,127,216,219,110,4,8,8,5,0,254,112,208,192,192, + 208,112,32,96,5,9,9,6,0,0,64,32,0,112,216,248, + 192,216,112,5,9,9,6,0,0,16,32,0,112,216,248,192, + 216,112,5,9,9,6,0,0,32,80,0,112,216,248,192,216, + 112,5,8,8,6,0,0,80,0,112,216,248,192,216,112,2, + 9,9,3,0,0,128,64,0,192,192,192,192,192,192,2,9, + 9,3,0,0,64,128,0,192,192,192,192,192,192,3,9,9, + 3,0,0,64,160,0,192,192,192,192,192,192,3,8,8,3, + 0,0,160,0,192,192,192,192,192,192,5,9,9,6,0,0, + 80,96,160,112,216,216,216,216,112,5,9,9,6,0,0,80, + 160,0,176,216,216,216,216,216,5,9,9,6,0,0,64,32, + 0,112,216,216,216,216,112,5,9,9,6,0,0,16,32,0, + 112,216,216,216,216,112,5,9,9,6,0,0,32,80,0,112, + 216,216,216,216,112,5,9,9,6,0,0,80,160,0,112,216, + 216,216,216,112,5,8,8,6,0,0,80,0,112,216,216,216, + 216,112,6,5,5,6,0,1,48,0,252,0,48,7,6,6, + 6,255,0,58,108,124,108,108,184,5,9,9,6,0,0,64, + 32,0,216,216,216,216,216,104,5,9,9,6,0,0,16,32, + 0,216,216,216,216,216,104,5,9,9,6,0,0,32,80,0, + 216,216,216,216,216,104,5,8,8,6,0,0,80,0,216,216, + 216,216,216,104,5,11,11,6,0,254,16,32,0,216,216,216, + 216,120,48,48,96,5,10,10,6,0,254,192,192,240,216,200, + 200,216,240,192,192,5,10,10,6,0,254,80,0,216,216,216, + 216,120,48,48,96}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 + Font Bounding box w=12 h=19 x=-1 y=-5 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB08r[1287] U8G_SECTION(".progmem.u8g_font_helvB08r") = { + 0,12,19,255,251,8,1,182,3,122,32,127,254,9,254,8, + 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, + 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, + 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, + 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, + 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, + 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, + 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, + 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, + 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, + 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, + 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, + 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, + 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, + 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, + 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, + 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, + 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, + 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, + 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, + 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, + 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, + 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, + 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, + 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, + 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, + 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, + 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, + 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, + 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, + 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, + 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, + 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, + 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, + 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, + 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, + 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, + 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, + 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, + 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, + 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, + 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, + 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, + 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, + 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, + 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, + 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, + 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, + 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, + 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, + 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, + 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, + 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, + 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, + 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, + 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, + 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, + 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, + 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, + 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, + 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, + 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, + 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, + 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, + 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, + 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, + 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, + 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, + 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, + 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, + 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, + 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, + 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, + 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, + 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, + 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, + 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, + 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, + 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, + 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, + 2,6,0,3,104,176,255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=14 h=14 x= 2 y= 9 dx=15 dy= 0 ascent=14 len=28 + Font Bounding box w=17 h=23 x=-1 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB10[3692] U8G_SECTION(".progmem.u8g_font_helvB10") = { + 0,17,23,255,250,11,2,27,4,205,32,255,253,14,253,11, + 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, + 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, + 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, + 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, + 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, + 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, + 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, + 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, + 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, + 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, + 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, + 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, + 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, + 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, + 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, + 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, + 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, + 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, + 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, + 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, + 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, + 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, + 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, + 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, + 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, + 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, + 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, + 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, + 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, + 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, + 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, + 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, + 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, + 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, + 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, + 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, + 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, + 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, + 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, + 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, + 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, + 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, + 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, + 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, + 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, + 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, + 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, + 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, + 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, + 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, + 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, + 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, + 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, + 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, + 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, + 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, + 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, + 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, + 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, + 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, + 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, + 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, + 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, + 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, + 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, + 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, + 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, + 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, + 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, + 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, + 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, + 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, + 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, + 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, + 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, + 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, + 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, + 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, + 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, + 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, + 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, + 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, + 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, + 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, + 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, + 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, + 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, + 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, + 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, + 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, + 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, + 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, + 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, + 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, + 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, + 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, + 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, + 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, + 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, + 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, + 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, + 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, + 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, + 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, + 3,9,1,3,114,222,140,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,4,0,1,2,11, + 11,4,1,253,192,192,0,64,64,192,192,192,192,192,192,7, + 10,10,8,0,255,4,60,110,200,208,208,230,102,124,64,8, + 11,11,8,0,0,60,102,102,96,252,48,48,48,96,251,222, + 7,7,7,8,0,2,130,124,108,108,108,124,130,8,11,11, + 9,0,0,195,195,195,102,102,60,126,24,126,24,24,1,14, + 14,4,2,253,128,128,128,128,128,128,0,0,128,128,128,128, + 128,128,6,14,14,8,1,253,120,204,204,224,120,220,204,204, + 236,120,28,204,204,120,5,2,2,5,0,9,216,216,10,11, + 22,12,1,0,30,0,97,128,76,128,210,192,144,64,144,64, + 144,64,146,64,76,128,97,128,30,0,5,7,7,6,0,4, + 112,144,112,208,248,0,248,7,5,5,9,1,2,54,108,216, + 108,54,7,4,4,9,1,2,254,254,2,2,3,1,1,4, + 0,4,224,10,11,22,12,1,0,30,0,97,128,92,128,146, + 64,146,64,156,64,146,64,146,64,82,128,97,128,30,0,5, + 1,1,5,0,9,248,4,4,4,6,1,7,96,144,144,96, + 8,9,9,9,0,0,24,24,24,255,24,24,24,0,255,4, + 6,6,5,0,5,96,176,48,96,192,240,4,6,6,5,0, + 5,96,176,96,48,176,96,3,2,2,5,1,9,96,192,7, + 11,11,9,1,253,198,198,198,198,198,198,238,246,192,192,192, + 8,14,14,8,0,253,63,122,250,250,250,122,58,10,10,10, + 10,10,10,10,2,2,2,4,1,3,192,192,5,3,3,5, + 0,253,24,216,112,3,6,6,4,0,5,96,224,96,96,96, + 96,5,7,7,6,0,4,112,216,216,216,112,0,248,7,5, + 5,9,1,2,216,108,54,108,216,12,11,22,12,0,0,97, + 128,225,128,99,0,99,0,102,0,102,32,6,96,12,224,13, + 96,25,240,24,96,11,11,22,12,0,0,97,128,225,128,99, + 0,99,0,102,0,102,192,7,96,12,96,12,192,25,128,25, + 224,12,11,22,12,0,0,97,128,177,128,99,0,51,0,182, + 0,102,32,6,96,12,224,13,96,25,240,24,96,7,11,11, + 9,1,253,24,24,0,24,24,48,96,192,198,198,124,10,14, + 28,10,0,0,24,0,12,0,0,0,12,0,12,0,30,0, + 18,0,51,0,51,0,97,128,127,128,97,128,192,192,192,192, + 10,14,28,10,0,0,6,0,12,0,0,0,12,0,12,0, + 30,0,18,0,51,0,51,0,97,128,127,128,97,128,192,192, + 192,192,10,14,28,10,0,0,14,0,27,0,0,0,12,0, + 12,0,30,0,18,0,51,0,51,0,97,128,127,128,97,128, + 192,192,192,192,10,14,28,10,0,0,13,0,22,0,0,0, + 12,0,12,0,30,0,18,0,51,0,51,0,97,128,127,128, + 97,128,192,192,192,192,10,14,28,10,0,0,51,0,51,0, + 0,0,12,0,12,0,30,0,18,0,51,0,51,0,97,128, + 127,128,97,128,192,192,192,192,10,14,28,10,0,0,12,0, + 18,0,12,0,12,0,12,0,30,0,18,0,51,0,51,0, + 97,128,127,128,97,128,192,192,192,192,14,11,22,15,0,0, + 15,252,15,0,27,0,19,0,51,0,51,248,99,0,127,0, + 99,0,195,0,195,252,9,14,28,11,1,253,31,0,123,128, + 96,128,192,0,192,0,192,0,192,0,192,0,96,128,123,128, + 31,0,6,0,54,0,28,0,7,14,14,9,1,0,48,24, + 0,254,192,192,192,192,254,192,192,192,192,254,7,14,14,9, + 1,0,12,24,0,254,192,192,192,192,254,192,192,192,192,254, + 7,14,14,9,1,0,28,54,0,254,192,192,192,192,254,192, + 192,192,192,254,7,14,14,9,1,0,108,108,0,254,192,192, + 192,192,254,192,192,192,192,254,3,14,14,4,0,0,192,96, + 0,96,96,96,96,96,96,96,96,96,96,96,3,14,14,4, + 1,0,96,192,0,192,192,192,192,192,192,192,192,192,192,192, + 5,14,14,4,0,0,112,216,0,96,96,96,96,96,96,96, + 96,96,96,96,5,14,14,4,0,0,216,216,0,96,96,96, + 96,96,96,96,96,96,96,96,10,11,22,11,0,0,126,0, + 99,128,97,128,96,192,96,192,248,192,96,192,96,192,97,128, + 99,128,126,0,9,14,28,11,1,0,26,0,44,0,0,0, + 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, + 195,128,195,128,193,128,10,14,28,12,1,0,24,0,12,0, + 0,0,30,0,115,128,97,128,192,192,192,192,192,192,192,192, + 192,192,97,128,115,128,30,0,10,14,28,12,1,0,6,0, + 12,0,0,0,30,0,115,128,97,128,192,192,192,192,192,192, + 192,192,192,192,97,128,115,128,30,0,10,14,28,12,1,0, + 14,0,27,0,0,0,30,0,115,128,97,128,192,192,192,192, + 192,192,192,192,192,192,97,128,115,128,30,0,10,14,28,12, + 1,0,13,0,22,0,0,0,30,0,115,128,97,128,192,192, + 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,14, + 28,12,1,0,51,0,51,0,0,0,30,0,115,128,97,128, + 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, + 8,7,7,9,0,1,195,102,60,24,60,102,195,12,11,22, + 12,0,0,15,48,57,224,48,192,97,224,99,96,102,96,108, + 96,120,96,48,192,121,192,207,0,9,14,28,11,1,0,24, + 0,12,0,0,0,193,128,193,128,193,128,193,128,193,128,193, + 128,193,128,193,128,193,128,99,0,62,0,9,14,28,11,1, + 0,6,0,12,0,0,0,193,128,193,128,193,128,193,128,193, + 128,193,128,193,128,193,128,193,128,99,0,62,0,9,14,28, + 11,1,0,28,0,54,0,0,0,193,128,193,128,193,128,193, + 128,193,128,193,128,193,128,193,128,193,128,99,0,62,0,9, + 14,28,11,1,0,99,0,99,0,0,0,193,128,193,128,193, + 128,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,10,14,28,10,0,0,6,0,12,0,0,0,192,192,97, + 128,97,128,51,0,51,0,30,0,30,0,12,0,12,0,12, + 0,12,0,8,11,11,10,1,0,192,192,254,199,195,195,199, + 254,192,192,192,6,11,11,8,1,0,120,204,204,204,216,216, + 204,204,204,204,216,7,11,11,8,1,0,48,24,0,120,204, + 12,124,204,204,220,118,7,11,11,8,1,0,24,48,0,120, + 204,12,124,204,204,220,118,7,11,11,8,1,0,56,108,0, + 120,204,12,124,204,204,220,118,7,11,11,8,1,0,52,88, + 0,120,204,12,124,204,204,220,118,7,11,11,8,1,0,108, + 108,0,120,204,12,124,204,204,220,118,7,11,11,8,1,0, + 48,72,48,120,204,12,124,204,204,220,118,11,8,16,13,1, + 0,123,192,206,96,12,96,127,224,204,0,204,0,222,96,119, + 192,7,11,11,9,1,253,60,102,198,192,192,198,102,60,24, + 88,112,6,11,11,8,1,0,96,48,0,120,204,204,252,192, + 192,236,120,6,11,11,8,1,0,24,48,0,120,204,204,252, + 192,192,236,120,6,11,11,8,1,0,56,108,0,120,204,204, + 252,192,192,236,120,6,11,11,8,1,0,108,108,0,120,204, + 204,252,192,192,236,120,3,11,11,4,0,0,192,96,0,96, + 96,96,96,96,96,96,96,3,11,11,4,1,0,96,192,0, + 192,192,192,192,192,192,192,192,5,11,11,4,0,0,112,216, + 0,96,96,96,96,96,96,96,96,5,11,11,4,0,0,216, + 216,0,96,96,96,96,96,96,96,96,7,11,11,9,1,0, + 108,56,72,60,108,198,198,198,198,108,56,7,11,11,9,1, + 0,52,88,0,220,238,198,198,198,198,198,198,7,11,11,9, + 1,0,48,24,0,56,108,198,198,198,198,108,56,7,11,11, + 9,1,0,24,48,0,56,108,198,198,198,198,108,56,7,11, + 11,9,1,0,56,108,0,56,108,198,198,198,198,108,56,7, + 11,11,9,1,0,52,88,0,56,108,198,198,198,198,108,56, + 7,11,11,9,1,0,108,108,0,56,108,198,198,198,198,108, + 56,8,7,7,9,0,1,24,24,0,255,0,24,24,7,8, + 8,9,1,0,58,108,206,214,214,230,108,184,7,11,11,9, + 1,0,48,24,0,198,198,198,198,198,198,238,118,7,11,11, + 9,1,0,12,24,0,198,198,198,198,198,198,238,118,7,11, + 11,9,1,0,56,108,0,198,198,198,198,198,198,238,118,7, + 11,11,9,1,0,108,108,0,198,198,198,198,198,198,238,118, + 8,14,14,8,0,253,12,24,0,195,195,102,102,36,60,24, + 24,24,48,112,7,14,14,9,1,253,192,192,192,216,236,198, + 198,198,198,236,216,192,192,192,8,14,14,8,0,253,54,54, + 0,195,195,102,102,36,60,24,24,24,48,112}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=14 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=12 len=24 + Font Bounding box w=17 h=23 x=-1 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB10r[1720] U8G_SECTION(".progmem.u8g_font_helvB10r") = { + 0,17,23,255,250,11,2,27,4,205,32,127,253,12,253,11, + 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, + 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, + 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, + 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, + 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, + 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, + 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, + 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, + 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, + 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, + 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, + 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, + 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, + 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, + 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, + 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, + 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, + 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, + 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, + 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, + 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, + 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, + 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, + 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, + 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, + 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, + 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, + 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, + 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, + 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, + 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, + 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, + 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, + 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, + 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, + 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, + 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, + 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, + 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, + 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, + 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, + 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, + 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, + 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, + 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, + 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, + 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, + 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, + 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, + 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, + 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, + 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, + 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, + 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, + 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, + 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, + 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, + 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, + 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, + 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, + 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, + 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, + 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, + 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, + 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, + 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, + 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, + 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, + 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, + 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, + 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, + 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, + 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, + 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, + 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, + 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, + 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, + 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, + 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, + 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, + 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, + 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, + 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, + 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, + 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, + 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, + 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, + 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, + 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, + 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, + 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, + 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, + 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, + 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, + 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, + 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, + 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, + 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, + 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, + 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, + 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, + 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, + 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, + 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, + 3,9,1,3,114,222,140,255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=16 len=32 + Font Bounding box w=20 h=27 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB12[4077] U8G_SECTION(".progmem.u8g_font_helvB12") = { + 0,20,27,254,249,12,2,74,5,106,32,255,252,16,252,12, + 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, + 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, + 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, + 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, + 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, + 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, + 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, + 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, + 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, + 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, + 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, + 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, + 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, + 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, + 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, + 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, + 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, + 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, + 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, + 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, + 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, + 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, + 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, + 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, + 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, + 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, + 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, + 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, + 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, + 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, + 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, + 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, + 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, + 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, + 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, + 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, + 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, + 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, + 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, + 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, + 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, + 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, + 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, + 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, + 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, + 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, + 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, + 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, + 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, + 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, + 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, + 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, + 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, + 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, + 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, + 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, + 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, + 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, + 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, + 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, + 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, + 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, + 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, + 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, + 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, + 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, + 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, + 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, + 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, + 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, + 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, + 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, + 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, + 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, + 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, + 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, + 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, + 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, + 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, + 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, + 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, + 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, + 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, + 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, + 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, + 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, + 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, + 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, + 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, + 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, + 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, + 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, + 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, + 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, + 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, + 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, + 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, + 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, + 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, + 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, + 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, + 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, + 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, + 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, + 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, + 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, + 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, + 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, + 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, + 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, + 8,3,3,10,1,3,113,153,142,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, + 2,12,12,6,1,253,192,192,0,64,64,64,192,192,192,192, + 192,192,8,11,11,9,0,255,4,60,126,239,200,216,208,247, + 126,60,32,8,12,12,9,0,0,28,62,99,99,96,48,124, + 48,48,32,127,255,7,7,7,9,1,2,186,124,198,198,198, + 124,186,8,12,12,9,0,0,195,195,102,102,60,24,126,24, + 126,24,24,24,1,16,16,5,2,252,128,128,128,128,128,128, + 128,0,0,128,128,128,128,128,128,128,8,15,15,9,0,253, + 60,126,102,96,120,126,199,195,243,126,30,6,102,126,60,5, + 2,2,6,0,10,216,216,12,12,24,12,0,0,15,0,57, + 192,96,96,79,32,217,176,144,16,144,16,217,176,79,32,96, + 32,57,192,15,0,5,7,7,6,1,5,96,144,112,144,120, + 0,248,8,6,6,9,0,2,51,102,204,204,102,51,8,5, + 5,10,0,2,255,255,3,3,3,4,2,2,5,0,3,240, + 240,12,12,24,12,0,0,15,0,57,192,96,96,95,32,217, + 176,153,144,158,16,219,48,91,32,96,96,57,192,15,0,5, + 1,1,6,0,10,248,4,5,5,7,1,7,96,144,144,144, + 96,8,11,11,10,1,0,24,24,24,255,255,24,24,24,0, + 255,255,5,7,7,6,0,5,112,216,216,48,96,248,248,5, + 7,7,6,0,5,112,216,24,48,24,216,112,3,3,3,6, + 1,10,32,96,128,8,12,12,10,1,253,195,195,195,195,195, + 195,199,255,251,192,192,192,8,15,15,9,0,253,127,242,242, + 242,242,242,114,18,18,18,18,18,18,18,18,2,2,2,5, + 1,4,192,192,5,4,4,6,0,252,32,48,152,112,4,7, + 7,6,1,5,48,240,240,48,48,48,48,5,7,7,6,0, + 5,112,216,136,216,112,0,248,8,6,6,9,1,2,204,102, + 51,51,102,204,13,12,24,14,1,0,48,192,240,128,241,128, + 49,0,51,48,50,112,54,240,4,176,13,176,9,248,24,48, + 16,48,12,12,24,14,0,0,48,128,241,128,241,0,51,0, + 50,0,54,224,53,176,13,176,8,96,24,192,17,240,49,240, + 13,12,24,14,0,0,112,64,216,192,24,128,49,128,25,48, + 219,112,114,240,6,176,5,176,13,248,8,48,24,48,7,12, + 12,10,1,253,48,48,0,48,48,96,224,192,198,198,254,124, + 11,16,32,12,0,0,16,0,24,0,4,0,0,0,14,0, + 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, + 255,224,192,96,192,96,11,16,32,12,0,0,2,0,6,0, + 8,0,0,0,14,0,14,0,31,0,27,0,59,128,49,128, + 113,192,96,192,127,192,255,224,192,96,192,96,11,16,32,12, + 0,0,4,0,14,0,17,0,0,0,14,0,14,0,31,0, + 27,0,59,128,49,128,113,192,96,192,127,192,255,224,192,96, + 192,96,11,15,30,12,0,0,14,128,23,0,0,0,14,0, + 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, + 255,224,192,96,192,96,11,15,30,12,0,0,49,128,49,128, + 0,0,14,0,14,0,31,0,27,0,59,128,49,128,113,192, + 96,192,127,192,255,224,192,96,192,96,11,16,32,12,0,0, + 12,0,18,0,18,0,12,0,14,0,14,0,31,0,27,0, + 59,128,49,128,113,192,96,192,127,192,255,224,192,96,192,96, + 14,12,24,15,0,0,31,252,31,252,27,0,51,0,51,0, + 51,248,99,248,127,0,127,0,195,0,195,252,195,252,10,16, + 32,12,1,252,31,0,63,128,113,192,96,192,224,0,192,0, + 192,0,224,0,96,192,113,192,63,128,31,0,4,0,6,0, + 19,0,14,0,8,16,16,10,1,0,32,48,8,0,255,255, + 192,192,192,254,254,192,192,192,255,255,8,16,16,10,1,0, + 4,12,16,0,255,255,192,192,192,254,254,192,192,192,255,255, + 8,16,16,10,1,0,8,28,34,0,255,255,192,192,192,254, + 254,192,192,192,255,255,8,15,15,10,1,0,102,102,0,255, + 255,192,192,192,254,254,192,192,192,255,255,3,16,16,4,0, + 0,128,192,32,0,96,96,96,96,96,96,96,96,96,96,96, + 96,3,16,16,4,1,0,32,96,128,0,192,192,192,192,192, + 192,192,192,192,192,192,192,5,16,16,4,0,0,32,112,136, + 0,96,96,96,96,96,96,96,96,96,96,96,96,6,15,15, + 4,255,0,204,204,0,48,48,48,48,48,48,48,48,48,48, + 48,48,12,12,24,12,0,0,63,0,63,192,48,224,48,96, + 48,112,252,48,252,48,48,112,48,96,48,224,63,192,63,0, + 10,15,30,12,1,0,29,0,46,0,0,0,224,192,240,192, + 240,192,216,192,216,192,204,192,204,192,198,192,198,192,195,192, + 195,192,193,192,11,16,32,13,1,0,8,0,12,0,2,0, + 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, + 224,224,96,192,113,192,63,128,31,0,11,16,32,13,1,0, + 1,0,3,0,4,0,0,0,31,0,63,128,113,192,96,192, + 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, + 11,16,32,13,1,0,4,0,14,0,17,0,0,0,31,0, + 63,128,113,192,96,192,224,224,192,96,192,96,224,224,96,192, + 113,192,63,128,31,0,11,15,30,13,1,0,14,128,23,0, + 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, + 224,224,96,192,113,192,63,128,31,0,11,15,30,13,1,0, + 25,128,25,128,0,0,31,0,63,128,113,192,96,192,224,224, + 192,96,192,96,224,224,96,192,113,192,63,128,31,0,9,9, + 18,10,0,0,65,0,227,128,119,0,62,0,28,0,62,0, + 119,0,227,128,65,0,11,12,24,13,1,0,31,32,63,192, + 112,192,97,192,227,96,198,96,204,96,216,224,112,192,97,192, + 127,128,159,0,10,16,32,12,1,0,16,0,24,0,4,0, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,127,128,63,0,10,16,32,12,1,0, + 2,0,6,0,8,0,0,0,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, + 10,16,32,12,1,0,4,0,14,0,17,0,0,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,63,0,10,15,30,12,1,0,51,0,51,0, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,127,128,63,0,10,16,32,11,0,0, + 2,0,6,0,8,0,0,0,192,192,225,192,97,128,51,0, + 51,0,30,0,30,0,12,0,12,0,12,0,12,0,12,0, + 9,12,24,11,1,0,192,0,254,0,255,0,195,128,193,128, + 193,128,195,128,255,0,254,0,192,0,192,0,192,0,8,12, + 12,10,1,0,124,254,198,198,220,222,195,195,195,195,222,220, + 8,13,13,9,1,0,32,48,8,0,124,254,198,14,126,230, + 198,254,119,8,13,13,9,1,0,4,12,16,0,124,254,198, + 14,126,230,198,254,119,8,13,13,9,1,0,16,56,68,0, + 124,254,198,14,126,230,198,254,119,8,12,12,9,1,0,58, + 92,0,124,254,198,14,126,230,198,254,119,8,12,12,9,1, + 0,108,108,0,124,254,198,14,126,230,198,254,119,8,13,13, + 9,1,0,24,36,36,24,124,254,198,14,126,230,198,254,119, + 13,9,18,15,1,0,125,224,255,240,198,24,15,248,127,248, + 230,0,207,56,255,240,121,224,8,13,13,9,1,252,60,126, + 231,192,192,192,231,126,60,16,24,76,56,8,13,13,10,1, + 0,32,48,8,0,60,126,195,255,255,192,231,126,60,8,13, + 13,10,1,0,4,12,16,0,60,126,195,255,255,192,231,126, + 60,8,13,13,10,1,0,8,28,34,0,60,126,195,255,255, + 192,231,126,60,8,12,12,10,1,0,54,54,0,60,126,195, + 255,255,192,231,126,60,3,13,13,4,0,0,128,192,32,0, + 96,96,96,96,96,96,96,96,96,3,13,13,4,1,0,32, + 96,128,0,192,192,192,192,192,192,192,192,192,5,13,13,4, + 0,0,32,112,136,0,96,96,96,96,96,96,96,96,96,5, + 12,12,4,0,0,216,216,0,96,96,96,96,96,96,96,96, + 96,8,12,12,10,1,0,96,124,248,28,126,231,195,195,195, + 231,126,60,8,12,12,10,1,0,58,92,0,222,255,227,195, + 195,195,195,195,195,8,13,13,10,1,0,32,48,8,0,60, + 126,231,195,195,195,231,126,60,8,13,13,10,1,0,8,24, + 32,0,60,126,231,195,195,195,231,126,60,8,13,13,10,1, + 0,16,56,68,0,60,126,231,195,195,195,231,126,60,8,12, + 12,10,1,0,58,92,0,60,126,231,195,195,195,231,126,60, + 8,12,12,10,1,0,108,108,0,60,126,231,195,195,195,231, + 126,60,8,8,8,10,1,0,24,24,0,255,255,0,24,24, + 8,9,9,10,1,0,61,127,231,207,219,243,231,254,188,8, + 13,13,10,1,0,32,48,8,0,195,195,195,195,195,195,199, + 255,123,8,13,13,10,1,0,8,24,32,0,195,195,195,195, + 195,195,199,255,123,8,13,13,10,1,0,16,56,68,0,195, + 195,195,195,195,195,199,255,123,8,12,12,10,1,0,108,108, + 0,195,195,195,195,195,195,199,255,123,8,17,17,9,0,252, + 4,12,16,0,195,195,99,102,54,54,60,28,24,24,24,112, + 96,8,16,16,10,1,252,192,192,192,220,254,231,195,195,195, + 231,254,220,192,192,192,192,8,16,16,9,0,252,54,54,0, + 195,195,99,102,54,54,60,28,24,24,24,112,96}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=14 h=16 x= 2 y=10 dx=16 dy= 0 ascent=13 len=28 + Font Bounding box w=20 h=27 x=-2 y=-7 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB12r[1914] U8G_SECTION(".progmem.u8g_font_helvB12r") = { + 0,20,27,254,249,12,2,74,5,106,32,127,252,13,252,12, + 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, + 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, + 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, + 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, + 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, + 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, + 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, + 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, + 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, + 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, + 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, + 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, + 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, + 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, + 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, + 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, + 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, + 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, + 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, + 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, + 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, + 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, + 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, + 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, + 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, + 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, + 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, + 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, + 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, + 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, + 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, + 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, + 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, + 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, + 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, + 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, + 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, + 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, + 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, + 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, + 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, + 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, + 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, + 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, + 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, + 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, + 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, + 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, + 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, + 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, + 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, + 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, + 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, + 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, + 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, + 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, + 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, + 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, + 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, + 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, + 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, + 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, + 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, + 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, + 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, + 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, + 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, + 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, + 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, + 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, + 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, + 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, + 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, + 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, + 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, + 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, + 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, + 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, + 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, + 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, + 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, + 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, + 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, + 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, + 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, + 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, + 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, + 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, + 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, + 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, + 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, + 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, + 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, + 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, + 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, + 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, + 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, + 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, + 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, + 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, + 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, + 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, + 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, + 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, + 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, + 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, + 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, + 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, + 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, + 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, + 8,3,3,10,1,3,113,153,142,255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 13 + Calculated Max Values w=16 h=19 x= 2 y=12 dx=18 dy= 0 ascent=18 len=38 + Font Bounding box w=22 h=29 x=-2 y=-7 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =18 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB14[5489] U8G_SECTION(".progmem.u8g_font_helvB14") = { + 0,22,29,254,249,14,3,23,6,234,32,255,252,18,251,14, + 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, + 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, + 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, + 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, + 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, + 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, + 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, + 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, + 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, + 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, + 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, + 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, + 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, + 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, + 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, + 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, + 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, + 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, + 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, + 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, + 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, + 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, + 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, + 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, + 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, + 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, + 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, + 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, + 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, + 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, + 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, + 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, + 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, + 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, + 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, + 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, + 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, + 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, + 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, + 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, + 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, + 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, + 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, + 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, + 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, + 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, + 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, + 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, + 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, + 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, + 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, + 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, + 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, + 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, + 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, + 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, + 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, + 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, + 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, + 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, + 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, + 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, + 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, + 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, + 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, + 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, + 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, + 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, + 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, + 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, + 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, + 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, + 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, + 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, + 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, + 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, + 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, + 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, + 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, + 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, + 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, + 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, + 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, + 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, + 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, + 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, + 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, + 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, + 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, + 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, + 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, + 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, + 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, + 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, + 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, + 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, + 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, + 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, + 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, + 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, + 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, + 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, + 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, + 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, + 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, + 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, + 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, + 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, + 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, + 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, + 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, + 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, + 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, + 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, + 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, + 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, + 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, + 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, + 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, + 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, + 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, + 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, + 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, + 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, + 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, + 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, + 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, + 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, + 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, + 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, + 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, + 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, + 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, + 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, + 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, + 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, + 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, + 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, + 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, + 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, + 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, + 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, + 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, + 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, + 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, + 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, + 128,207,0,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,5,0,1,3,14,14,6,2,252, + 224,224,224,0,96,96,224,224,224,224,224,224,224,224,8,14, + 14,10,1,254,2,2,62,127,231,200,200,208,208,227,127,126, + 64,64,10,13,26,11,0,0,31,0,63,192,113,192,112,0, + 112,0,56,0,127,0,28,0,28,0,56,0,112,192,255,192, + 239,128,9,8,16,11,1,2,193,128,255,128,119,0,99,0, + 99,0,119,0,255,128,193,128,9,13,26,10,0,0,227,128, + 227,128,227,128,119,0,119,0,62,0,255,128,28,0,255,128, + 28,0,28,0,28,0,28,0,2,18,18,5,1,252,192,192, + 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,192, + 9,18,36,10,0,252,62,0,127,0,227,128,227,128,240,0, + 124,0,254,0,199,0,195,128,225,128,113,128,63,128,15,0, + 7,128,227,128,227,128,127,0,62,0,5,2,2,7,1,12, + 216,216,14,14,28,15,1,0,15,192,56,112,96,24,199,140, + 207,204,152,196,152,4,152,4,152,68,207,204,199,140,96,24, + 56,112,15,192,6,9,9,8,1,5,120,140,124,204,204,116, + 0,252,252,10,8,16,11,0,1,29,192,59,128,119,0,238, + 0,238,0,119,0,59,128,29,192,9,5,10,11,1,3,255, + 128,255,128,1,128,1,128,1,128,5,3,3,6,0,4,248, + 248,248,13,14,28,15,1,0,15,128,48,96,96,16,95,144, + 153,200,152,200,153,200,159,8,153,136,153,136,88,208,96,48, + 56,224,15,128,5,2,2,7,1,12,248,248,6,6,6,7, + 0,7,120,252,204,204,252,120,9,9,18,11,1,0,28,0, + 28,0,255,128,255,128,28,0,28,0,0,0,255,128,255,128, + 6,8,8,6,0,5,120,252,204,28,120,224,252,252,6,8, + 8,6,0,5,120,252,204,56,60,204,252,120,5,3,3,5, + 0,11,56,112,224,9,14,28,11,1,252,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,231,128,255,128,251,128,224, + 0,224,0,224,0,224,0,9,18,36,10,0,252,63,128,123, + 0,251,0,251,0,251,0,251,0,251,0,123,0,59,0,27, + 0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27, + 0,2,2,2,5,1,6,192,192,5,5,5,7,1,251,96, + 112,24,248,240,4,8,8,6,0,5,48,240,240,48,48,48, + 48,48,6,9,9,8,1,5,120,204,204,204,204,120,0,252, + 252,10,8,16,11,0,1,238,0,119,0,59,128,29,192,29, + 192,59,128,119,0,238,0,14,13,26,15,0,0,48,96,240, + 96,240,192,48,192,49,128,49,152,51,56,54,56,6,120,12, + 216,12,252,24,24,24,24,15,13,26,15,0,0,48,96,240, + 96,240,192,48,192,49,128,49,188,51,126,54,102,6,14,12, + 60,12,112,24,126,24,126,14,13,26,15,0,0,120,48,252, + 48,204,96,56,96,60,192,204,216,253,184,123,56,3,120,6, + 216,6,252,12,24,12,24,8,14,14,10,1,252,28,28,28, + 0,28,28,28,56,120,112,231,231,255,126,12,18,36,14,1, + 0,56,0,28,0,6,0,0,0,15,0,15,0,31,128,25, + 128,25,128,57,192,57,192,48,192,112,224,127,224,127,224,224, + 112,224,112,224,112,12,18,36,14,1,0,1,192,3,128,6, + 0,0,0,15,0,15,0,31,128,25,128,25,128,57,192,57, + 192,48,192,112,224,127,224,127,224,224,112,224,112,224,112,12, + 18,36,14,1,0,7,0,15,128,29,192,0,0,15,0,15, + 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, + 224,127,224,224,112,224,112,224,112,12,18,36,14,1,0,14, + 32,31,192,35,128,0,0,15,0,15,0,31,128,25,128,25, + 128,57,192,57,192,48,192,112,224,127,224,127,224,224,112,224, + 112,224,112,12,18,36,14,1,0,25,128,25,128,25,128,0, + 0,15,0,15,0,31,128,25,128,25,128,57,192,57,192,48, + 192,112,224,127,224,127,224,224,112,224,112,224,112,12,18,36, + 14,1,0,15,0,25,128,25,128,15,0,15,0,15,0,31, + 128,25,128,25,128,57,192,57,192,48,192,112,224,127,224,127, + 224,224,112,224,112,224,112,16,14,28,18,1,0,15,255,15, + 255,31,128,27,128,59,128,59,128,51,254,115,254,115,128,127, + 128,255,128,227,128,227,255,227,255,12,19,38,14,1,251,15, + 128,63,224,120,224,112,112,240,112,224,0,224,0,224,0,224, + 0,240,112,112,112,120,224,63,224,15,128,12,0,14,0,3, + 0,31,0,30,0,10,18,36,13,2,0,56,0,28,0,6, + 0,0,0,255,192,255,192,224,0,224,0,224,0,224,0,255, + 128,255,128,224,0,224,0,224,0,224,0,255,192,255,192,10, + 18,36,13,2,0,3,128,7,0,12,0,0,0,255,192,255, + 192,224,0,224,0,224,0,224,0,255,128,255,128,224,0,224, + 0,224,0,224,0,255,192,255,192,10,18,36,13,2,0,14, + 0,31,0,59,128,0,0,255,192,255,192,224,0,224,0,224, + 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,255, + 192,255,192,10,18,36,13,2,0,51,0,51,0,51,0,0, + 0,255,192,255,192,224,0,224,0,224,0,224,0,255,128,255, + 128,224,0,224,0,224,0,224,0,255,192,255,192,5,18,18, + 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,5,18,18,5,1,0,56,112,192,0,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,7,18,18, + 5,255,0,56,124,238,0,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,6,18,18,5,0,0,204,204,204,0,112, + 112,112,112,112,112,112,112,112,112,112,112,112,112,14,14,28, + 14,255,0,63,192,63,240,56,120,56,56,56,28,56,28,255, + 28,255,28,56,28,56,28,56,56,56,120,63,240,63,192,12, + 18,36,14,1,0,14,32,31,192,35,128,0,0,224,112,240, + 112,240,112,248,112,252,112,236,112,238,112,230,112,231,112,227, + 112,225,240,225,240,224,240,224,112,13,18,36,15,1,0,28, + 0,14,0,3,0,0,0,15,128,63,224,120,240,112,112,240, + 120,224,56,224,56,224,56,224,56,240,120,112,112,120,240,63, + 224,15,128,13,18,36,15,1,0,1,192,3,128,6,0,0, + 0,15,128,63,224,120,240,112,112,240,120,224,56,224,56,224, + 56,224,56,240,120,112,112,120,240,63,224,15,128,13,18,36, + 15,1,0,7,0,15,128,29,192,0,0,15,128,63,224,120, + 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, + 112,120,240,63,224,15,128,13,18,36,15,1,0,7,16,15, + 224,17,192,0,0,15,128,63,224,120,240,112,112,240,120,224, + 56,224,56,224,56,224,56,240,120,112,112,120,240,63,224,15, + 128,13,18,36,15,1,0,12,192,12,192,12,192,0,0,15, + 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, + 56,240,120,112,112,120,240,63,224,15,128,10,8,16,11,0, + 1,225,192,115,128,63,0,30,0,30,0,63,0,115,128,225, + 192,15,14,28,15,0,0,7,198,31,252,60,56,56,120,120, + 220,113,156,113,28,115,28,118,28,124,60,56,56,60,120,127, + 240,199,192,12,18,36,14,1,0,28,0,14,0,3,0,0, + 0,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,112,224,127,224,31,128,12,18,36, + 14,1,0,1,192,3,128,6,0,0,0,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,112,224,127,224,31,128,12,18,36,14,1,0,7,0,15, + 128,29,192,0,0,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,112,224,127,224,31, + 128,12,18,36,14,1,0,25,128,25,128,25,128,0,0,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,112,224,127,224,31,128,13,18,36,13,0, + 0,1,192,3,128,6,0,0,0,224,56,224,56,112,112,56, + 224,56,224,29,192,29,192,15,128,7,0,7,0,7,0,7, + 0,7,0,7,0,11,14,28,13,1,0,224,0,224,0,224, + 0,255,0,255,192,225,224,224,224,224,224,225,224,255,192,255, + 0,224,0,224,0,224,0,8,14,14,10,1,0,60,126,231, + 231,231,231,238,238,231,231,231,231,239,238,10,14,28,11,1, + 0,112,0,56,0,12,0,0,0,62,0,127,0,115,128,7, + 128,63,128,123,128,227,128,231,128,251,128,123,192,10,14,28, + 11,1,0,3,128,7,0,12,0,0,0,62,0,127,0,115, + 128,7,128,63,128,123,128,227,128,231,128,251,128,123,192,10, + 14,28,11,1,0,28,0,62,0,119,0,0,0,62,0,127, + 0,115,128,7,128,63,128,123,128,227,128,231,128,251,128,123, + 192,10,14,28,11,1,0,59,0,127,0,110,0,0,0,62, + 0,127,0,115,128,7,128,63,128,123,128,227,128,231,128,251, + 128,123,192,10,14,28,11,1,0,51,0,51,0,51,0,0, + 0,62,0,127,0,115,128,7,128,63,128,123,128,227,128,231, + 128,251,128,123,192,10,14,28,11,1,0,60,0,102,0,102, + 0,60,0,62,0,127,0,115,128,7,128,63,128,123,128,227, + 128,231,128,251,128,123,192,14,10,20,16,1,0,61,240,127, + 248,103,28,15,28,63,252,119,0,231,0,239,156,255,252,121, + 240,9,15,30,10,1,251,30,0,127,128,115,128,224,0,224, + 0,224,0,224,0,115,128,127,128,30,0,24,0,28,0,6, + 0,62,0,60,0,9,14,28,11,1,0,112,0,56,0,12, + 0,0,0,30,0,127,0,115,128,225,128,255,128,255,128,224, + 0,115,128,127,128,30,0,9,14,28,11,1,0,3,128,7, + 0,12,0,0,0,30,0,127,0,115,128,225,128,255,128,255, + 128,224,0,115,128,127,128,30,0,9,14,28,11,1,0,28, + 0,62,0,119,0,0,0,30,0,127,0,115,128,225,128,255, + 128,255,128,224,0,115,128,127,128,30,0,9,14,28,11,1, + 0,51,0,51,0,51,0,0,0,30,0,127,0,115,128,225, + 128,255,128,255,128,224,0,115,128,127,128,30,0,5,14,14, + 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, + 56,5,14,14,5,1,0,56,112,192,0,224,224,224,224,224, + 224,224,224,224,224,7,14,14,5,255,0,56,124,238,0,56, + 56,56,56,56,56,56,56,56,56,5,14,14,5,0,0,216, + 216,216,0,112,112,112,112,112,112,112,112,112,112,10,14,28, + 12,1,0,96,0,55,0,60,0,102,0,31,0,127,128,115, + 128,225,192,225,192,225,192,225,192,115,128,127,128,30,0,9, + 14,28,11,1,0,59,0,127,0,110,0,0,0,239,0,255, + 128,243,128,227,128,227,128,227,128,227,128,227,128,227,128,227, + 128,10,14,28,12,1,0,112,0,56,0,12,0,0,0,30, + 0,127,128,115,128,225,192,225,192,225,192,225,192,115,128,127, + 128,30,0,10,14,28,12,1,0,3,128,7,0,12,0,0, + 0,30,0,127,128,115,128,225,192,225,192,225,192,225,192,115, + 128,127,128,30,0,10,14,28,12,1,0,28,0,62,0,119, + 0,0,0,30,0,127,128,115,128,225,192,225,192,225,192,225, + 192,115,128,127,128,30,0,10,14,28,12,1,0,59,0,127, + 0,110,0,0,0,30,0,127,128,115,128,225,192,225,192,225, + 192,225,192,115,128,127,128,30,0,10,14,28,12,1,0,51, + 0,51,0,51,0,0,0,30,0,127,128,115,128,225,192,225, + 192,225,192,225,192,115,128,127,128,30,0,9,8,16,11,1, + 1,28,0,28,0,0,0,255,128,255,128,0,0,28,0,28, + 0,12,10,20,12,0,0,15,48,63,224,57,192,115,224,119, + 224,126,224,124,224,57,192,127,192,207,0,9,14,28,11,1, + 0,112,0,56,0,12,0,0,0,227,128,227,128,227,128,227, + 128,227,128,227,128,227,128,231,128,255,128,123,128,9,14,28, + 11,1,0,3,128,7,0,12,0,0,0,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, + 14,28,11,1,0,28,0,62,0,119,0,0,0,227,128,227, + 128,227,128,227,128,227,128,227,128,227,128,231,128,255,128,123, + 128,9,14,28,11,1,0,51,0,51,0,51,0,0,0,227, + 128,227,128,227,128,227,128,227,128,227,128,227,128,231,128,255, + 128,123,128,9,18,36,11,1,252,7,0,14,0,24,0,0, + 0,227,128,227,128,227,128,119,0,119,0,119,0,62,0,62, + 0,28,0,28,0,28,0,24,0,120,0,112,0,10,18,36, + 12,1,252,224,0,224,0,224,0,224,0,239,0,255,128,243, + 128,225,192,225,192,225,192,225,192,243,128,255,128,239,0,224, + 0,224,0,224,0,224,0,9,18,36,11,1,252,51,0,51, + 0,51,0,0,0,227,128,227,128,227,128,119,0,119,0,119, + 0,62,0,62,0,28,0,28,0,28,0,24,0,120,0,112, + 0}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 13 + Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 + Font Bounding box w=22 h=29 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB14r[2548] U8G_SECTION(".progmem.u8g_font_helvB14r") = { + 0,22,29,254,249,14,3,23,6,234,32,127,252,14,252,14, + 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, + 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, + 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, + 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, + 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, + 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, + 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, + 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, + 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, + 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, + 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, + 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, + 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, + 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, + 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, + 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, + 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, + 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, + 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, + 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, + 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, + 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, + 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, + 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, + 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, + 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, + 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, + 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, + 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, + 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, + 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, + 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, + 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, + 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, + 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, + 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, + 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, + 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, + 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, + 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, + 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, + 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, + 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, + 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, + 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, + 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, + 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, + 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, + 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, + 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, + 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, + 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, + 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, + 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, + 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, + 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, + 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, + 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, + 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, + 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, + 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, + 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, + 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, + 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, + 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, + 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, + 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, + 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, + 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, + 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, + 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, + 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, + 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, + 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, + 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, + 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, + 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, + 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, + 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, + 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, + 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, + 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, + 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, + 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, + 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, + 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, + 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, + 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, + 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, + 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, + 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, + 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, + 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, + 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, + 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, + 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, + 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, + 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, + 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, + 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, + 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, + 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, + 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, + 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, + 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, + 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, + 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, + 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, + 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, + 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, + 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, + 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, + 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, + 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, + 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, + 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, + 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, + 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, + 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, + 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, + 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, + 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, + 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, + 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, + 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, + 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, + 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, + 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, + 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, + 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, + 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, + 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, + 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, + 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, + 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, + 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, + 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, + 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, + 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, + 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, + 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, + 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, + 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, + 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, + 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, + 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, + 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, + 128,207,0,255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y=17 dx=24 dy= 0 ascent=24 len=72 + Font Bounding box w=28 h=37 x=-2 y=-8 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent=-5 + X Font ascent =19 descent=-5 + Max Font ascent =24 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB18[7527] U8G_SECTION(".progmem.u8g_font_helvB18") = { + 0,28,37,254,248,19,4,35,9,107,32,255,251,24,251,19, + 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, + 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, + 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, + 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, + 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, + 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, + 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, + 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, + 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, + 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, + 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, + 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, + 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, + 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, + 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, + 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, + 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, + 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, + 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, + 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, + 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, + 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, + 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, + 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, + 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, + 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, + 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, + 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, + 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, + 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, + 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, + 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, + 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, + 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, + 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, + 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, + 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, + 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, + 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, + 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, + 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, + 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, + 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, + 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, + 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, + 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, + 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, + 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, + 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, + 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, + 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, + 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, + 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, + 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, + 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, + 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, + 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, + 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, + 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, + 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, + 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, + 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, + 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, + 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, + 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, + 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, + 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, + 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, + 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, + 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, + 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, + 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, + 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, + 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, + 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, + 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, + 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, + 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, + 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, + 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, + 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, + 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, + 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, + 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, + 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, + 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, + 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, + 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, + 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, + 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, + 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, + 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, + 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, + 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, + 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, + 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, + 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, + 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, + 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, + 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, + 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, + 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, + 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, + 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, + 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, + 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, + 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, + 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, + 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, + 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, + 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, + 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, + 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, + 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, + 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, + 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, + 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, + 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, + 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, + 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, + 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, + 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, + 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, + 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, + 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, + 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, + 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, + 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, + 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, + 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, + 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, + 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, + 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, + 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, + 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, + 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, + 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, + 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, + 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, + 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, + 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, + 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, + 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, + 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, + 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, + 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, + 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, + 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, + 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, + 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, + 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, + 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, + 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, + 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, + 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, + 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, + 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, + 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, + 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, + 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, + 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, + 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, + 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, + 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, + 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, + 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, + 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, + 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, + 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, + 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, + 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, + 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, + 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, + 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, + 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, + 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, + 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, + 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, + 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, + 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, + 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, + 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, + 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, + 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, + 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, + 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, + 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, + 8,14,1,5,120,224,254,224,239,224,227,192,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, + 6,0,1,3,19,19,7,2,251,224,224,224,0,0,96,96, + 96,224,224,224,224,224,224,224,224,224,224,224,11,18,36,14, + 1,254,1,128,1,128,31,128,63,192,123,224,115,96,227,0, + 230,0,230,0,230,0,230,0,236,0,236,224,125,224,127,192, + 63,128,24,0,24,0,13,18,36,14,1,0,31,128,63,192, + 112,224,112,224,112,0,120,0,56,0,28,0,255,192,255,192, + 28,0,28,0,28,0,56,0,56,0,127,56,255,248,241,240, + 12,12,24,14,1,3,192,48,239,112,127,224,57,192,112,224, + 112,224,112,224,112,224,57,192,127,224,239,112,192,48,13,18, + 36,14,0,0,224,56,224,56,112,112,112,112,56,224,56,224, + 29,192,29,192,127,240,127,240,7,0,127,240,127,240,7,0, + 7,0,7,0,7,0,7,0,2,24,24,7,3,251,192,192, + 192,192,192,192,192,192,192,192,0,0,0,0,192,192,192,192, + 192,192,192,192,192,192,12,24,48,14,1,251,31,128,63,192, + 121,224,112,224,120,224,60,0,30,0,127,0,247,128,227,192, + 225,224,224,224,112,112,120,112,60,112,30,224,15,192,7,128, + 3,192,113,224,112,224,121,224,63,192,31,128,7,2,2,9, + 1,16,238,238,19,19,57,19,0,0,1,240,0,15,254,0, + 30,15,0,56,3,128,112,1,192,97,240,192,227,184,224,198, + 12,96,198,0,96,198,0,96,198,0,96,198,12,96,227,184, + 224,97,240,192,112,1,192,56,3,128,30,15,0,15,254,0, + 1,240,0,8,12,12,10,1,7,124,254,198,30,126,230,198, + 255,123,0,255,255,10,8,16,13,1,3,29,192,59,128,119, + 0,238,0,238,0,119,0,59,128,29,192,12,7,14,15,1, + 4,255,240,255,240,0,48,0,48,0,48,0,48,0,48,7, + 3,3,8,0,6,254,254,254,19,19,57,19,0,0,3,248, + 0,15,254,0,28,15,0,56,3,128,115,249,192,99,28,192, + 227,12,224,195,12,96,195,24,96,195,240,96,195,48,96,195, + 24,96,227,24,96,99,12,224,112,0,192,56,1,192,30,3, + 128,15,254,0,3,248,0,7,2,2,9,1,17,254,254,8, + 7,7,9,0,11,60,102,195,195,195,102,60,11,13,26,15, + 2,0,14,0,14,0,14,0,14,0,255,224,255,224,14,0, + 14,0,14,0,14,0,0,0,255,224,255,224,6,10,10,7, + 0,8,120,252,204,12,28,120,224,192,252,252,6,10,10,7, + 0,8,120,252,204,12,56,56,12,204,252,120,6,4,4,8, + 1,15,28,56,112,224,11,19,38,15,2,251,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 225,224,243,224,254,224,236,224,224,0,224,0,224,0,224,0, + 224,0,11,24,48,13,1,251,15,224,63,224,124,192,124,192, + 252,192,252,192,252,192,252,192,252,192,124,192,124,192,60,192, + 28,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,192,12,192,3,3,3,7,2,6,224,224, + 224,6,6,6,8,1,251,112,120,28,28,252,120,4,10,10, + 7,1,8,48,48,240,240,48,48,48,48,48,48,8,12,12, + 10,1,7,60,126,231,195,195,195,231,126,60,0,255,255,10, + 8,16,13,1,3,238,0,119,0,59,128,29,192,29,192,59, + 128,119,0,238,0,17,18,54,19,1,0,48,24,0,48,24, + 0,240,48,0,240,48,0,48,96,0,48,96,0,48,192,0, + 48,192,0,49,134,0,49,142,0,3,30,0,3,30,0,6, + 54,0,6,102,0,12,127,128,12,127,128,24,6,0,24,6, + 0,16,18,36,19,1,0,48,24,48,24,240,48,240,48,48, + 96,48,96,48,192,48,192,49,158,49,191,3,51,3,3,6, + 7,6,30,12,56,12,48,24,63,24,63,17,18,54,19,1, + 0,120,24,0,252,24,0,204,48,0,12,48,0,56,96,0, + 56,96,0,12,192,0,204,192,0,253,134,0,121,142,0,3, + 30,0,3,30,0,6,54,0,6,102,0,12,127,128,12,127, + 128,24,6,0,24,6,0,11,19,38,15,2,251,14,0,14, + 0,14,0,0,0,0,0,14,0,14,0,14,0,14,0,28, + 0,60,0,120,0,112,0,240,224,224,224,225,224,243,192,127, + 192,63,0,16,24,48,18,1,0,14,0,7,0,3,128,1, + 192,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, + 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, + 14,112,14,224,7,224,7,224,7,16,24,48,18,1,0,0, + 112,0,224,1,192,3,128,0,0,3,192,3,192,7,224,7, + 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, + 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,16, + 24,48,18,1,0,1,192,3,224,7,112,14,56,0,0,3, + 192,3,192,7,224,7,224,14,96,14,112,14,112,28,56,28, + 56,28,56,56,28,56,28,63,252,127,254,112,14,112,14,224, + 7,224,7,224,7,16,23,46,18,1,0,7,152,15,248,12, + 240,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, + 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, + 14,112,14,224,7,224,7,224,7,16,23,46,18,1,0,14, + 112,14,112,0,0,0,0,3,192,3,192,7,224,7,224,14, + 96,14,112,14,112,28,56,28,56,28,56,56,28,56,28,63, + 252,127,254,112,14,112,14,224,7,224,7,224,7,16,24,48, + 18,1,0,3,192,6,96,4,32,6,96,3,192,3,192,3, + 192,7,224,7,224,14,96,14,112,14,112,28,56,28,56,28, + 56,56,28,56,28,63,252,127,254,112,14,112,14,224,7,224, + 7,224,7,22,19,57,24,1,0,3,255,248,3,255,248,7, + 112,0,7,112,0,14,112,0,14,112,0,14,112,0,28,112, + 0,28,127,240,28,127,240,56,112,0,56,112,0,63,240,0, + 127,240,0,112,112,0,112,112,0,224,112,0,224,127,252,224, + 127,252,16,24,48,18,1,251,7,240,31,252,62,62,120,15, + 112,7,240,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,240,7,112,7,120,15,62,62,31,252,7,240,3,192, + 0,224,0,224,7,224,3,192,13,24,48,16,2,0,56,0, + 28,0,14,0,7,0,0,0,255,240,255,240,224,0,224,0, + 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,255,248,255,248,13,24, + 48,16,2,0,1,192,3,128,7,0,14,0,0,0,255,240, + 255,240,224,0,224,0,224,0,224,0,224,0,224,0,255,224, + 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,248,255,248,13,24,48,16,2,0,7,0,15,128,29,192, + 56,224,0,0,255,240,255,240,224,0,224,0,224,0,224,0, + 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,255,248,255,248,13,23,46,16,2,0, + 56,224,56,224,0,0,0,0,255,240,255,240,224,0,224,0, + 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,255,248,255,248,6,24, + 24,7,0,0,224,112,56,28,0,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,6,24,24,7, + 1,0,28,56,112,224,0,112,112,112,112,112,112,112,112,112, + 112,112,112,112,112,112,112,112,112,112,9,24,48,7,255,0, + 28,0,62,0,119,0,227,128,0,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 7,23,23,7,0,0,238,238,0,0,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,19,19,57, + 19,255,0,31,252,0,31,255,0,28,15,128,28,3,192,28, + 1,192,28,1,224,28,0,224,28,0,224,255,192,224,255,192, + 224,28,0,224,28,0,224,28,0,224,28,1,224,28,1,192, + 28,3,192,28,15,128,31,255,0,31,252,0,15,23,46,19, + 2,0,15,48,31,240,25,224,0,0,224,14,240,14,240,14, + 248,14,248,14,252,14,238,14,238,14,231,14,227,142,227,142, + 225,206,224,206,224,238,224,126,224,62,224,62,224,30,224,14, + 17,24,72,19,1,0,14,0,0,7,0,0,3,128,0,1, + 192,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, + 0,112,7,0,240,7,128,224,3,128,224,3,128,224,3,128, + 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,112, + 7,0,120,15,0,62,62,0,31,252,0,7,240,0,17,24, + 72,19,1,0,0,56,0,0,112,0,0,224,0,1,192,0, + 0,0,0,7,240,0,31,252,0,62,62,0,120,15,0,112, + 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,224,3,128,240,7,128,112,7,0, + 120,15,0,62,62,0,31,252,0,7,240,0,17,24,72,19, + 1,0,1,192,0,3,224,0,7,112,0,14,56,0,0,0, + 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, + 240,7,128,224,3,128,224,3,128,224,3,128,224,3,128,224, + 3,128,224,3,128,224,3,128,240,7,128,112,7,0,120,15, + 0,62,62,0,31,252,0,7,240,0,17,23,69,19,1,0, + 7,152,0,15,248,0,12,240,0,0,0,0,7,240,0,31, + 252,0,62,62,0,120,15,0,112,7,0,240,7,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, + 224,3,128,240,7,128,112,7,0,120,15,0,62,62,0,31, + 252,0,7,240,0,17,23,69,19,1,0,14,56,0,14,56, + 0,0,0,0,0,0,0,7,240,0,31,252,0,62,62,0, + 120,15,0,112,7,0,240,7,128,224,3,128,224,3,128,224, + 3,128,224,3,128,224,3,128,224,3,128,224,3,128,240,7, + 128,112,7,0,120,15,0,62,62,0,31,252,0,7,240,0, + 12,12,24,15,1,1,64,32,224,112,112,224,57,192,31,128, + 15,0,15,0,31,128,57,192,112,224,224,112,64,32,19,19, + 57,19,0,0,3,248,96,15,254,224,31,31,192,60,3,128, + 56,7,128,120,15,192,112,29,192,112,57,192,112,113,192,112, + 225,192,113,193,192,115,129,192,119,1,192,126,3,192,60,3, + 128,60,7,128,127,31,0,239,254,0,195,248,0,15,24,48, + 19,2,0,14,0,7,0,3,128,1,192,0,0,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, + 248,15,224,15,24,48,19,2,0,0,112,0,224,1,192,3, + 128,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, + 30,112,28,124,124,63,248,15,224,15,24,48,19,2,0,3, + 128,7,192,14,224,28,112,0,0,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,240,30,112,28,124,124,63,248,15,224,15, + 23,46,19,2,0,28,112,28,112,0,0,0,0,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, + 248,15,224,15,24,48,17,1,0,0,112,0,224,1,192,3, + 128,0,0,224,14,240,30,112,28,120,60,56,56,60,120,28, + 112,30,240,14,224,15,224,7,192,7,192,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,14,19,38,17,2,0,224, + 0,224,0,224,0,224,0,255,224,255,248,224,56,224,28,224, + 28,224,28,224,28,224,56,255,248,255,240,224,0,224,0,224, + 0,224,0,224,0,11,19,38,14,2,0,30,0,127,128,243, + 128,225,192,225,192,225,192,225,192,227,128,239,0,239,128,227, + 192,225,192,224,224,224,224,224,224,224,224,225,192,239,192,239, + 128,12,19,38,14,1,0,28,0,14,0,7,0,3,128,0, + 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, + 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, + 14,1,0,1,192,3,128,7,0,14,0,0,0,31,128,63, + 192,113,224,112,224,0,224,7,224,63,224,124,224,240,224,224, + 224,225,224,243,224,127,240,62,112,12,19,38,14,1,0,7, + 0,15,128,29,192,56,224,0,0,31,128,63,192,113,224,112, + 224,0,224,7,224,63,224,124,224,240,224,224,224,225,224,243, + 224,127,240,62,112,12,19,38,14,1,0,60,192,127,192,103, + 128,0,0,0,0,31,128,63,192,113,224,112,224,0,224,7, + 224,63,224,124,224,240,224,224,224,225,224,243,224,127,240,62, + 112,12,18,36,14,1,0,57,192,57,192,0,0,0,0,31, + 128,63,192,113,224,112,224,0,224,7,224,63,224,124,224,240, + 224,224,224,225,224,243,224,127,240,62,112,12,19,38,14,1, + 0,7,0,13,128,8,128,13,128,7,0,31,128,63,192,113, + 224,112,224,0,224,7,224,63,224,124,224,240,224,224,224,225, + 224,243,224,127,240,62,112,20,14,42,22,1,0,31,143,0, + 63,255,192,113,249,224,112,240,224,0,224,112,7,224,112,63, + 255,240,124,255,240,240,224,0,224,224,0,225,240,112,243,248, + 240,127,63,224,62,15,128,11,19,38,13,1,251,31,128,63, + 192,121,224,112,224,224,0,224,0,224,0,224,0,224,0,224, + 0,112,224,121,224,63,192,31,128,30,0,7,0,7,0,63, + 0,30,0,12,19,38,14,1,0,28,0,14,0,7,0,3, + 128,0,0,15,0,63,192,121,224,112,224,224,112,224,112,255, + 240,255,240,224,0,224,0,112,112,120,240,63,224,15,128,12, + 19,38,14,1,0,3,128,7,0,14,0,28,0,0,0,15, + 0,63,192,121,224,112,224,224,112,224,112,255,240,255,240,224, + 0,224,0,112,112,120,240,63,224,15,128,12,19,38,14,1, + 0,7,0,15,128,29,192,56,224,0,0,15,0,63,192,121, + 224,112,224,224,112,224,112,255,240,255,240,224,0,224,0,112, + 112,120,240,63,224,15,128,12,18,36,14,1,0,57,192,57, + 192,0,0,0,0,15,0,63,192,121,224,112,224,224,112,224, + 112,255,240,255,240,224,0,224,0,112,112,120,240,63,224,15, + 128,6,19,19,7,0,0,224,112,56,28,0,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,6,19,19,7,1,0, + 28,56,112,224,0,112,112,112,112,112,112,112,112,112,112,112, + 112,112,112,9,19,38,7,255,0,28,0,62,0,119,0,227, + 128,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,7, + 18,18,7,0,0,238,238,0,0,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,12,19,38,14,1,0,112,0,29, + 192,7,0,31,0,97,128,15,192,63,192,121,224,112,224,224, + 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, + 192,15,0,11,19,38,15,2,0,60,192,127,192,103,128,0, + 0,0,0,239,128,255,192,241,192,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,12, + 19,38,14,1,0,28,0,14,0,7,0,3,128,0,0,15, + 0,63,192,121,224,112,224,224,112,224,112,224,112,224,112,224, + 112,224,112,112,224,121,224,63,192,15,0,12,19,38,14,1, + 0,3,128,7,0,14,0,28,0,0,0,15,0,63,192,121, + 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,112, + 224,121,224,63,192,15,0,12,19,38,14,1,0,14,0,31, + 0,59,128,113,192,0,0,15,0,63,192,121,224,112,224,224, + 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, + 192,15,0,12,19,38,14,1,0,60,192,127,192,103,128,0, + 0,0,0,15,0,63,192,121,224,112,224,224,112,224,112,224, + 112,224,112,224,112,224,112,112,224,121,224,63,192,15,0,12, + 18,36,14,1,0,57,192,57,192,0,0,0,0,15,0,63, + 192,121,224,112,224,224,112,224,112,224,112,224,112,224,112,224, + 112,112,224,121,224,63,192,15,0,11,12,24,15,2,1,14, + 0,14,0,14,0,0,0,0,0,255,224,255,224,0,0,0, + 0,14,0,14,0,14,0,14,14,28,14,0,0,7,140,31, + 252,60,248,56,112,112,248,113,248,115,184,119,56,126,56,124, + 56,56,112,124,240,255,224,199,128,11,19,38,15,2,0,56, + 0,28,0,14,0,7,0,0,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,225,224,115, + 224,126,224,28,224,11,19,38,15,2,0,3,128,7,0,14, + 0,28,0,0,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,225,224,115,224,126,224,28, + 224,11,19,38,15,2,0,14,0,31,0,59,128,113,192,0, + 0,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,225,224,115,224,126,224,28,224,11,18,36, + 15,2,0,57,192,57,192,0,0,0,0,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225, + 224,115,224,126,224,28,224,13,24,48,15,1,251,0,224,1, + 192,3,128,7,0,0,0,224,56,224,56,112,56,120,112,56, + 112,60,240,28,224,28,224,15,192,15,192,7,192,7,128,3, + 128,3,128,7,0,7,0,14,0,62,0,60,0,12,24,48, + 15,2,251,224,0,224,0,224,0,224,0,224,0,239,128,255, + 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, + 112,240,224,249,224,255,192,239,128,224,0,224,0,224,0,224, + 0,224,0,13,23,46,15,1,251,28,224,28,224,0,0,0, + 0,224,56,224,56,112,56,120,112,56,112,60,240,28,224,28, + 224,15,192,15,192,7,192,7,128,3,128,3,128,7,0,7, + 0,14,0,62,0,60,0}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y=15 dx=24 dy= 0 ascent=19 len=66 + Font Bounding box w=28 h=37 x=-2 y=-8 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent=-5 + X Font ascent =19 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB18r[3453] U8G_SECTION(".progmem.u8g_font_helvB18r") = { + 0,28,37,254,248,19,4,35,9,107,32,127,251,19,251,19, + 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, + 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, + 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, + 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, + 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, + 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, + 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, + 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, + 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, + 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, + 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, + 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, + 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, + 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, + 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, + 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, + 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, + 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, + 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, + 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, + 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, + 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, + 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, + 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, + 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, + 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, + 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, + 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, + 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, + 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, + 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, + 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, + 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, + 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, + 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, + 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, + 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, + 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, + 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, + 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, + 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, + 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, + 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, + 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, + 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, + 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, + 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, + 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, + 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, + 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, + 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, + 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, + 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, + 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, + 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, + 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, + 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, + 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, + 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, + 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, + 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, + 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, + 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, + 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, + 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, + 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, + 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, + 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, + 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, + 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, + 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, + 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, + 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, + 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, + 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, + 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, + 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, + 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, + 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, + 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, + 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, + 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, + 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, + 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, + 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, + 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, + 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, + 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, + 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, + 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, + 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, + 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, + 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, + 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, + 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, + 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, + 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, + 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, + 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, + 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, + 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, + 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, + 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, + 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, + 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, + 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, + 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, + 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, + 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, + 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, + 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, + 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, + 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, + 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, + 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, + 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, + 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, + 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, + 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, + 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, + 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, + 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, + 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, + 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, + 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, + 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, + 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, + 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, + 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, + 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, + 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, + 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, + 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, + 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, + 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, + 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, + 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, + 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, + 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, + 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, + 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, + 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, + 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, + 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, + 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, + 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, + 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, + 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, + 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, + 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, + 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, + 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, + 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, + 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, + 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, + 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, + 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, + 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, + 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, + 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, + 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, + 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, + 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, + 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, + 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, + 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, + 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, + 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, + 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, + 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, + 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, + 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, + 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, + 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, + 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, + 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, + 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, + 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, + 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, + 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, + 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, + 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, + 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, + 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, + 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, + 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, + 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, + 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, + 8,14,1,5,120,224,254,224,239,224,227,192,255}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 23 + Calculated Max Values w=31 h=32 x= 4 y=21 dx=33 dy= 0 ascent=31 len=120 + Font Bounding box w=40 h=49 x=-6 y=-12 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =31 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB24[11554] U8G_SECTION(".progmem.u8g_font_helvB24") = { + 0,40,49,250,244,25,5,252,14,144,32,255,249,31,249,25, + 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, + 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, + 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, + 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, + 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, + 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, + 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, + 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, + 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, + 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, + 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, + 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, + 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, + 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, + 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, + 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, + 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, + 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, + 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, + 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, + 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, + 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, + 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, + 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, + 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, + 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, + 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, + 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, + 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, + 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, + 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, + 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, + 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, + 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, + 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, + 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, + 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, + 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, + 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, + 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, + 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, + 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, + 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, + 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, + 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, + 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, + 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, + 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, + 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, + 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, + 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, + 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, + 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, + 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, + 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, + 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, + 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, + 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, + 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, + 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, + 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, + 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, + 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, + 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, + 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, + 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, + 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, + 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, + 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, + 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, + 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, + 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, + 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, + 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, + 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, + 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, + 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, + 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, + 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, + 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, + 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, + 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, + 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, + 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, + 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, + 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, + 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, + 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, + 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, + 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, + 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, + 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, + 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, + 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, + 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, + 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, + 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, + 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, + 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, + 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, + 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, + 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, + 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, + 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, + 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, + 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, + 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, + 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, + 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, + 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, + 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, + 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, + 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, + 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, + 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, + 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, + 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, + 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, + 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, + 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, + 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, + 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, + 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, + 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, + 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, + 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, + 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, + 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, + 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, + 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, + 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, + 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, + 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, + 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, + 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, + 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, + 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, + 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, + 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, + 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, + 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, + 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, + 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, + 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, + 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, + 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, + 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, + 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, + 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, + 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, + 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, + 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, + 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, + 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, + 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, + 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, + 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, + 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, + 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, + 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, + 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, + 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, + 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, + 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, + 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, + 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, + 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, + 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, + 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, + 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, + 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, + 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, + 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, + 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, + 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, + 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, + 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, + 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, + 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, + 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, + 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, + 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, + 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, + 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, + 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, + 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, + 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, + 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, + 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, + 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, + 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, + 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, + 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, + 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, + 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, + 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, + 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, + 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, + 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, + 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, + 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, + 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, + 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, + 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, + 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, + 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, + 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, + 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, + 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, + 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, + 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, + 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, + 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, + 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, + 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, + 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, + 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, + 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, + 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, + 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, + 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, + 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, + 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, + 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, + 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, + 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, + 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, + 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, + 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, + 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, + 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, + 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, + 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, + 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, + 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, + 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, + 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, + 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, + 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, + 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, + 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, + 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, + 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, + 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, + 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, + 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, + 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, + 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, + 5,56,0,126,12,255,156,231,252,193,248,0,112,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, + 0,9,0,1,5,24,24,11,2,250,248,248,248,248,248,0, + 0,112,112,112,112,112,112,248,248,248,248,248,248,248,248,248, + 248,248,15,24,48,18,1,253,0,32,0,32,0,96,7,240, + 31,248,63,252,127,252,124,190,248,158,249,158,241,128,241,128, + 243,0,243,0,243,30,250,30,126,62,127,252,63,248,31,240, + 15,192,12,0,8,0,8,0,17,24,72,18,0,0,3,240, + 0,31,252,0,63,254,0,63,255,0,126,31,0,124,15,128, + 124,15,128,124,7,128,124,0,0,126,0,0,62,0,0,255, + 240,0,255,240,0,31,0,0,15,0,0,15,0,0,15,0, + 0,31,0,0,30,0,0,61,227,0,127,255,128,255,255,128, + 255,255,0,96,126,0,15,15,30,18,1,4,224,14,247,222, + 255,254,127,252,60,120,120,60,112,28,112,28,112,28,120,60, + 60,120,127,252,255,254,247,222,224,14,18,24,72,18,0,0, + 248,7,192,248,7,192,124,15,128,60,15,0,30,30,0,30, + 30,0,15,60,0,15,60,0,7,248,0,7,248,0,3,240, + 0,1,224,0,63,255,0,63,255,0,1,224,0,1,224,0, + 63,255,0,63,255,0,1,224,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,3,31,31,9,3,250,224,224, + 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, + 0,224,224,224,224,224,224,224,224,224,224,224,224,16,32,64, + 18,1,249,15,240,31,248,63,248,126,124,124,60,124,60,126, + 0,127,0,63,192,31,224,63,248,127,252,113,254,240,255,240, + 63,248,31,252,15,127,15,127,159,63,254,31,248,7,252,1, + 254,0,126,0,62,120,30,120,30,124,62,63,252,63,252,31, + 248,7,224,10,4,8,11,0,21,243,192,243,192,243,192,243, + 192,26,25,100,24,0,0,0,127,128,0,3,255,224,0,7, + 128,248,0,31,0,60,0,28,0,14,0,56,0,7,0,112, + 63,3,0,112,127,131,128,224,243,193,128,225,192,225,192,193, + 192,224,192,195,128,0,192,195,128,0,192,195,128,0,192,195, + 128,0,192,193,192,224,192,225,192,225,192,224,243,195,128,96, + 127,131,128,112,63,7,0,56,0,14,0,30,0,60,0,15, + 128,248,0,7,255,224,0,1,255,128,0,9,16,32,12,1, + 9,62,0,127,0,227,128,195,128,31,128,127,128,243,128,227, + 128,227,128,255,128,123,128,0,0,0,0,255,128,255,128,255, + 128,12,13,26,18,3,2,8,16,24,48,56,112,120,240,241, + 224,225,192,225,192,241,224,249,240,120,240,56,112,24,48,8, + 16,16,10,20,19,1,4,255,255,255,255,255,255,255,255,0, + 15,0,15,0,15,0,15,0,15,0,15,9,5,10,11,1, + 7,255,128,255,128,255,128,255,128,255,128,26,25,100,24,0, + 0,0,255,128,0,3,255,224,0,7,128,248,0,30,0,60, + 0,28,0,14,0,56,255,135,0,112,255,195,0,112,225,227, + 128,224,224,225,128,224,224,225,128,192,224,225,192,192,225,193, + 192,192,255,129,192,192,255,1,192,192,227,129,192,192,227,193, + 192,224,225,193,128,224,224,227,128,112,224,243,128,112,224,119, + 0,56,0,14,0,30,0,28,0,15,128,120,0,7,255,224, + 0,1,255,128,0,10,3,6,11,0,21,255,192,255,192,255, + 192,9,10,20,13,2,14,62,0,127,0,99,0,193,128,193, + 128,193,128,193,128,99,0,127,0,62,0,16,22,44,19,1, + 0,3,192,3,192,3,192,3,192,3,192,3,192,255,255,255, + 255,255,255,255,255,3,192,3,192,3,192,3,192,3,192,3, + 192,0,0,0,0,255,255,255,255,255,255,255,255,10,15,30, + 11,0,9,63,0,127,128,243,192,225,192,225,192,1,192,3, + 192,7,128,15,0,62,0,120,0,112,0,255,192,255,192,255, + 192,10,15,30,11,0,9,30,0,127,128,243,192,225,192,225, + 192,3,192,15,128,15,128,3,192,1,192,225,192,225,192,243, + 192,127,128,62,0,6,5,5,11,4,20,60,120,112,224,224, + 15,25,50,20,2,249,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, + 248,126,255,254,255,254,255,222,247,158,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,17,31,93,18,0,250,15,255, + 128,31,255,128,63,140,0,127,140,0,127,140,0,255,140,0, + 255,140,0,255,140,0,255,140,0,255,140,0,127,140,0,127, + 140,0,63,140,0,63,140,0,15,140,0,1,140,0,1,140, + 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, + 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, + 140,0,1,140,0,1,140,0,1,140,0,4,5,5,9,2, + 11,96,240,240,240,96,7,8,8,11,2,249,48,48,48,124, + 30,14,252,248,6,15,15,11,2,9,28,60,252,252,28,28, + 28,28,28,28,28,28,28,28,28,10,16,32,12,1,9,63, + 0,127,128,115,128,225,192,225,192,225,192,225,192,225,192,115, + 128,127,128,63,0,0,0,0,0,255,192,255,192,255,192,12, + 12,24,18,3,3,129,0,193,128,225,192,241,224,120,240,56, + 112,56,112,120,240,241,224,225,192,193,128,129,0,26,24,96, + 28,0,0,0,0,56,0,6,0,112,0,30,0,112,0,254, + 0,224,0,254,1,192,0,14,1,192,0,14,3,128,0,14, + 3,128,0,14,7,0,0,14,7,0,0,14,14,7,0,14, + 28,15,0,14,28,31,0,14,56,31,0,0,56,55,0,0, + 112,103,0,0,112,231,0,0,224,199,0,1,193,135,0,1, + 193,255,192,3,129,255,192,3,128,7,0,7,0,7,0,7, + 0,7,0,25,24,96,28,1,0,0,0,224,0,12,1,192, + 0,28,1,192,0,252,3,128,0,252,3,128,0,28,7,0, + 0,28,14,0,0,28,14,0,0,28,28,0,0,28,28,0, + 0,28,56,126,0,28,48,255,0,28,113,231,128,28,225,195, + 128,0,225,195,128,1,192,7,128,1,192,15,0,3,128,30, + 0,7,0,60,0,7,0,120,0,14,0,240,0,14,1,255, + 128,28,1,255,128,28,1,255,128,25,24,96,27,1,0,63, + 0,28,0,127,128,56,0,243,192,56,0,225,192,112,0,225, + 192,224,0,3,192,224,0,15,129,192,0,15,129,192,0,15, + 195,128,0,1,199,0,0,225,199,14,0,225,206,30,0,243, + 206,30,0,127,156,62,0,63,28,126,0,0,56,238,0,0, + 112,206,0,0,113,142,0,0,227,142,0,0,227,255,128,1, + 195,255,128,1,192,14,0,3,128,14,0,3,128,14,0,16, + 24,48,20,1,250,3,224,3,224,3,224,3,224,0,0,0, + 0,3,192,3,192,3,192,7,192,31,128,63,128,127,0,126, + 0,252,0,248,15,248,15,248,15,252,31,126,127,127,254,63, + 254,63,252,15,240,22,31,93,23,0,0,3,192,0,1,224, + 0,0,240,0,0,120,0,0,60,0,0,0,0,0,252,0, + 0,252,0,1,254,0,1,254,0,1,254,0,3,255,0,3, + 255,0,3,255,0,7,207,128,7,207,128,7,207,128,15,135, + 128,15,135,192,15,135,192,31,3,192,31,3,224,31,255,224, + 31,255,224,63,255,240,63,255,240,62,1,240,124,0,248,124, + 0,248,252,0,252,248,0,124,22,31,93,23,0,0,0,15, + 0,0,30,0,0,60,0,0,120,0,0,240,0,0,0,0, + 0,252,0,0,252,0,1,254,0,1,254,0,1,254,0,3, + 255,0,3,255,0,3,255,0,7,207,128,7,207,128,7,207, + 128,15,135,128,15,135,192,15,135,192,31,3,192,31,3,224, + 31,255,224,31,255,224,63,255,240,63,255,240,62,1,240,124, + 0,248,124,0,248,252,0,252,248,0,124,22,31,93,23,0, + 0,0,48,0,0,120,0,0,252,0,1,206,0,3,135,0, + 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, + 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, + 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, + 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, + 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,30, + 90,23,0,0,0,241,128,1,255,128,3,255,0,3,30,0, + 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, + 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, + 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, + 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, + 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,31, + 93,23,0,0,3,207,0,3,207,0,3,207,0,3,207,0, + 0,0,0,0,0,0,0,252,0,0,252,0,1,254,0,1, + 254,0,1,254,0,3,255,0,3,255,0,3,255,0,7,207, + 128,7,207,128,7,207,128,15,135,128,15,135,192,15,135,192, + 31,3,192,31,3,224,31,255,224,31,255,224,63,255,240,63, + 255,240,62,1,240,124,0,248,124,0,248,252,0,252,248,0, + 124,22,31,93,23,0,0,0,120,0,0,204,0,0,132,0, + 0,132,0,0,204,0,0,120,0,0,0,0,0,252,0,1, + 254,0,1,254,0,1,254,0,3,255,0,3,255,0,3,255, + 0,7,207,128,7,207,128,7,207,128,15,135,128,15,135,192, + 15,135,192,31,3,192,31,3,224,31,255,224,31,255,224,63, + 255,240,63,255,240,62,1,240,124,0,248,124,0,248,252,0, + 252,248,0,124,31,25,100,32,0,0,0,255,255,252,0,255, + 255,252,0,255,255,252,1,255,255,252,1,243,192,0,1,227, + 192,0,3,227,192,0,3,227,192,0,3,195,192,0,7,195, + 192,0,7,195,192,0,7,195,255,248,15,131,255,248,15,131, + 255,248,15,131,255,248,31,3,192,0,31,255,192,0,31,255, + 192,0,63,255,192,0,63,255,192,0,62,3,192,0,124,3, + 255,254,124,3,255,254,248,3,255,254,248,3,255,254,21,32, + 96,23,1,249,1,254,0,7,255,128,15,255,192,31,255,224, + 63,135,240,62,1,240,124,1,240,124,0,248,124,0,248,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, + 63,135,240,31,255,224,15,255,192,7,255,128,1,252,0,0, + 96,0,0,96,0,0,248,0,0,28,0,0,28,0,1,248, + 0,1,240,0,18,31,93,22,2,0,30,0,0,15,0,0, + 7,128,0,3,192,0,1,224,0,0,0,0,255,255,128,255, + 255,128,255,255,128,255,255,128,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,255,255,0,255,255,0, + 255,255,0,255,255,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, + 192,255,255,192,255,255,192,18,31,93,22,2,0,0,120,0, + 0,240,0,1,224,0,3,192,0,7,128,0,0,0,0,255, + 255,128,255,255,128,255,255,128,255,255,128,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,0, + 255,255,0,255,255,0,255,255,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, + 192,255,255,192,255,255,192,255,255,192,18,31,93,22,2,0, + 0,192,0,1,224,0,3,240,0,7,56,0,14,28,0,0, + 0,0,255,255,128,255,255,128,255,255,128,255,255,128,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,255,255,192,255,255,192,255,255,192,255,255,192,18,31,93, + 22,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, + 0,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, + 128,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,255,192,255,255,192,255,255,192,255,255,192, + 8,31,31,9,0,0,240,120,60,30,15,0,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,62,8,31,31,9,2,0,15,30,60,120,240, + 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,10,31,62,9,0,0, + 12,0,30,0,63,0,115,128,225,192,0,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,10,31, + 62,9,0,0,243,192,243,192,243,192,243,192,0,0,0,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,23,25,75,23,255,0,31,255,128,31,255,224,31,255, + 240,31,255,248,31,7,248,31,0,252,31,0,252,31,0,124, + 31,0,126,31,0,62,31,0,62,255,240,62,255,240,62,255, + 240,62,31,0,62,31,0,62,31,0,124,31,0,124,31,0, + 124,31,0,248,31,3,248,31,255,240,31,255,240,31,255,192, + 31,255,128,19,30,90,24,2,0,3,198,0,7,254,0,15, + 252,0,12,120,0,0,0,0,248,3,224,252,3,224,252,3, + 224,254,3,224,254,3,224,255,3,224,255,3,224,255,131,224, + 255,195,224,251,195,224,251,227,224,249,227,224,249,243,224,248, + 243,224,248,251,224,248,123,224,248,63,224,248,63,224,248,31, + 224,248,31,224,248,15,224,248,15,224,248,7,224,248,7,224, + 248,3,224,23,31,93,25,1,0,1,224,0,0,240,0,0, + 120,0,0,60,0,0,30,0,0,0,0,1,255,0,7,255, + 192,15,255,224,31,255,240,63,199,248,63,1,248,126,0,252, + 124,0,124,124,0,124,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, + 124,126,0,252,63,1,248,63,199,248,31,255,240,15,255,224, + 7,255,192,1,255,0,23,31,93,25,1,0,0,7,128,0, + 15,0,0,30,0,0,60,0,0,120,0,0,0,0,1,255, + 0,7,255,192,15,255,224,31,255,240,63,199,248,63,1,248, + 126,0,252,124,0,124,124,0,124,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,124,0, + 124,124,0,124,126,0,252,63,1,248,63,199,248,31,255,240, + 15,255,224,7,255,192,1,255,0,23,31,93,25,1,0,0, + 24,0,0,60,0,0,126,0,0,231,0,1,195,128,0,0, + 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, + 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, + 31,255,240,15,255,224,7,255,192,1,255,0,23,30,90,25, + 1,0,0,120,192,0,255,192,1,255,128,1,143,0,0,0, + 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, + 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, + 31,255,240,15,255,224,7,255,192,1,255,0,23,31,93,25, + 1,0,1,231,128,1,231,128,1,231,128,1,231,128,0,0, + 0,0,0,0,1,255,0,7,255,192,15,255,224,31,255,240, + 63,199,248,63,1,248,126,0,252,124,0,124,124,0,124,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, + 62,248,0,62,124,0,124,124,0,124,126,0,252,63,1,248, + 63,199,248,31,255,240,15,255,224,7,255,192,1,255,0,15, + 16,32,19,2,0,32,8,112,28,248,62,252,126,126,252,63, + 248,31,240,15,224,15,224,31,240,63,248,126,252,252,126,248, + 62,112,28,32,8,24,25,75,25,1,0,1,255,7,7,255, + 206,15,255,252,31,255,248,63,199,248,63,0,248,126,1,252, + 124,3,252,124,7,188,248,7,62,248,14,62,248,28,62,248, + 56,62,248,112,62,248,224,62,248,224,62,125,192,124,127,128, + 124,127,0,252,63,1,248,63,199,248,63,255,240,63,255,224, + 119,255,192,225,255,0,19,31,93,24,2,0,7,128,0,3, + 192,0,1,224,0,0,240,0,0,120,0,0,0,0,248,3, + 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,252,7,224,127,31,192,127,255,192, + 63,255,128,31,255,0,7,252,0,19,31,93,24,2,0,0, + 30,0,0,60,0,0,120,0,0,240,0,1,224,0,0,0, + 0,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,252,7,224,127,31,192, + 127,255,192,63,255,128,31,255,0,7,252,0,19,31,93,24, + 2,0,0,96,0,0,240,0,1,248,0,3,156,0,7,14, + 0,0,0,0,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,248,3,224,252,7,224, + 127,31,192,127,255,192,63,255,128,31,255,0,7,252,0,19, + 31,93,24,2,0,15,30,0,15,30,0,15,30,0,15,30, + 0,0,0,0,0,0,0,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 252,7,224,127,31,192,127,255,192,63,255,128,31,255,0,7, + 252,0,20,31,93,22,1,0,0,30,0,0,60,0,0,120, + 0,0,240,0,1,224,0,0,0,0,252,3,240,252,3,240, + 126,7,224,62,7,192,63,15,192,63,15,128,31,15,128,31, + 159,0,15,159,0,15,254,0,7,254,0,7,252,0,3,252, + 0,3,248,0,3,248,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,18,25,75,22,2,0,248,0,0,248,0, + 0,248,0,0,255,248,0,255,254,0,255,255,0,255,255,128, + 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,254, + 0,255,252,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,17,25,75,20,2,0,15,192,0,63, + 240,0,127,252,0,255,252,0,248,126,0,248,62,0,240,62, + 0,240,62,0,240,124,0,240,252,0,241,248,0,241,252,0, + 241,254,0,240,127,0,240,31,0,240,31,128,240,15,128,240, + 15,128,240,15,128,240,31,128,240,63,0,241,255,0,241,254, + 0,241,252,0,241,240,0,15,25,50,18,1,0,15,0,7, + 128,3,128,1,192,0,224,0,0,0,0,15,240,63,252,127, + 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, + 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, + 25,50,18,1,0,0,120,0,240,0,224,1,192,3,128,0, + 0,0,0,15,240,63,252,127,252,124,62,248,30,248,30,1, + 254,15,254,63,254,127,30,248,30,240,30,240,62,248,126,255, + 254,255,254,127,222,63,30,15,25,50,18,1,0,1,128,3, + 192,7,224,14,112,28,56,0,0,0,0,15,240,63,252,127, + 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, + 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, + 24,48,18,1,0,7,140,15,252,31,248,24,240,0,0,0, + 0,15,240,63,252,127,252,124,62,248,30,248,30,1,254,15, + 254,63,254,127,30,248,30,240,30,240,62,248,126,255,254,255, + 254,127,222,63,30,15,24,48,18,1,0,30,120,30,120,30, + 120,30,120,0,0,0,0,15,240,63,252,127,252,124,62,248, + 30,248,30,1,254,15,254,63,254,127,30,248,30,240,30,240, + 62,248,126,255,254,255,254,127,222,63,30,15,25,50,18,1, + 0,3,192,6,96,4,32,4,32,6,96,3,192,0,0,15, + 240,63,252,127,252,124,62,248,30,248,30,1,254,15,254,63, + 254,127,30,248,30,248,30,240,62,248,126,255,254,255,254,127, + 222,63,30,26,19,76,29,1,0,7,224,248,0,31,251,254, + 0,63,255,255,0,63,255,255,0,124,63,15,128,120,30,7, + 128,120,30,7,192,0,62,7,192,7,255,255,192,63,255,255, + 192,127,255,255,192,124,30,0,0,248,30,0,0,248,30,7, + 192,252,63,15,192,255,255,255,128,127,247,255,0,63,227,254, + 0,15,129,248,0,15,25,50,18,1,249,7,224,31,248,63, + 252,63,252,124,62,120,30,248,30,240,0,240,0,240,0,240, + 0,248,30,248,30,124,62,127,252,63,248,31,248,7,224,3, + 0,3,0,7,192,0,224,0,224,15,192,15,128,16,25,50, + 18,1,0,15,0,7,128,3,128,1,192,0,224,0,0,0, + 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, + 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, + 252,31,240,7,192,16,25,50,18,1,0,0,120,0,240,0, + 224,1,192,3,128,0,0,0,0,7,224,31,248,63,252,127, + 254,124,62,248,30,240,31,255,255,255,255,255,255,240,0,240, + 0,248,30,124,62,127,254,63,252,31,240,7,192,16,25,50, + 18,1,0,1,128,3,192,7,224,14,112,28,56,0,0,0, + 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, + 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, + 252,31,240,7,192,16,24,48,18,1,0,30,120,30,120,30, + 120,30,120,0,0,0,0,7,224,31,248,63,252,127,254,124, + 62,248,30,240,31,255,255,255,255,255,255,240,0,240,0,248, + 30,124,62,127,254,63,252,31,240,7,192,7,25,25,9,1, + 0,240,120,56,28,14,0,0,30,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,6,25,25,9,2,0, + 60,56,112,112,224,0,0,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,10,25,50,9,255,0,12, + 0,30,0,63,0,115,128,225,192,0,0,0,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,10,24,48,9,255,0,243,192,243,192,243,192,243,192,0, + 0,0,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,17,26,78,20,1,0,48,0,0, + 120,32,0,124,240,0,63,224,0,31,192,0,63,224,0,115, + 240,0,33,248,0,7,252,0,31,254,0,63,254,0,127,255, + 0,124,31,0,248,15,128,248,15,128,240,7,128,240,7,128, + 240,7,128,248,15,128,248,15,128,252,31,128,126,63,0,127, + 255,0,63,254,0,31,252,0,7,240,0,15,24,48,20,2, + 0,15,24,31,248,63,240,49,224,0,0,0,0,243,240,247, + 248,255,252,255,254,252,62,248,62,240,30,240,30,240,30,240, + 30,240,30,240,30,240,30,240,30,240,30,240,30,240,30,240, + 30,17,25,75,20,1,0,7,128,0,3,192,0,1,192,0, + 1,224,0,0,240,0,0,0,0,0,0,0,7,240,0,31, + 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, + 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, + 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, + 240,0,17,25,75,20,1,0,0,120,0,0,240,0,0,224, + 0,1,192,0,3,192,0,0,0,0,0,0,0,7,240,0, + 31,252,0,63,254,0,127,255,0,124,31,0,248,15,128,248, + 15,128,240,7,128,240,7,128,240,7,128,240,7,128,248,15, + 128,248,15,128,124,31,0,127,255,0,63,254,0,31,252,0, + 7,240,0,17,25,75,20,1,0,0,192,0,1,224,0,3, + 240,0,7,56,0,14,28,0,0,0,0,0,0,0,7,240, + 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, + 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, + 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, + 0,7,240,0,17,24,72,20,1,0,7,140,0,15,252,0, + 31,248,0,24,240,0,0,0,0,0,0,0,7,240,0,31, + 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, + 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, + 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, + 240,0,17,24,72,20,1,0,30,60,0,30,60,0,30,60, + 0,30,60,0,0,0,0,0,0,0,7,240,0,31,252,0, + 63,254,0,127,255,0,124,31,0,248,15,128,248,15,128,240, + 7,128,240,7,128,240,7,128,240,7,128,248,15,128,248,15, + 128,124,31,0,127,255,0,63,254,0,31,252,0,7,240,0, + 16,16,32,19,1,0,3,192,3,192,3,192,3,192,0,0, + 0,0,255,255,255,255,255,255,255,255,0,0,0,0,3,192, + 3,192,3,192,3,192,21,18,54,20,255,0,1,252,56,7, + 255,112,15,255,224,31,255,192,31,143,192,62,7,224,62,15, + 224,60,29,224,60,57,224,60,113,224,62,227,224,63,131,224, + 63,7,224,31,143,192,31,255,192,63,255,128,119,255,0,225, + 252,0,15,25,50,20,2,0,30,0,15,0,7,0,3,128, + 1,192,0,0,0,0,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, + 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, + 0,240,1,224,1,192,3,128,7,0,0,0,0,0,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, + 31,30,15,25,50,20,2,0,3,0,7,128,15,192,28,224, + 56,112,0,0,0,0,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, + 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, + 60,120,60,120,60,120,60,120,0,0,0,0,0,0,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, + 31,30,16,32,64,19,1,249,0,120,0,240,1,224,1,192, + 3,128,0,0,0,0,248,31,248,31,248,31,120,30,124,62, + 124,60,60,60,60,60,62,120,62,120,30,120,31,240,31,240, + 15,240,15,224,7,224,7,224,7,192,7,192,7,192,15,128, + 63,128,63,0,63,0,60,0,16,32,64,20,2,249,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,243,240,247,252, + 255,254,255,254,252,63,248,31,248,31,240,15,240,15,240,15, + 240,15,248,31,248,31,252,62,255,254,255,252,247,248,241,240, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,31, + 62,19,1,249,30,120,30,120,30,120,30,120,0,0,0,0, + 248,31,248,31,248,31,120,62,124,62,124,60,124,60,62,124, + 62,120,62,120,30,120,31,240,31,240,15,240,15,224,7,224, + 7,224,7,192,7,192,7,192,15,128,63,128,63,0,63,0, + 60,0}; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 23 + Calculated Max Values w=17 h=25 x= 2 y=13 dx=19 dy= 0 ascent=25 len=72 + Font Bounding box w=40 h=49 x=-6 y=-12 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =23 descent= 0 + X Font ascent =23 descent= 0 + Max Font ascent =25 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB24n[720] U8G_SECTION(".progmem.u8g_font_helvB24n") = { + 0,40,49,250,244,23,0,0,0,0,42,57,0,25,250,23, + 0,10,11,22,13,1,13,12,0,12,0,76,128,237,192,255, + 192,127,128,30,0,63,0,127,128,115,128,33,0,16,16,32, + 19,1,0,3,192,3,192,3,192,3,192,3,192,3,192,255, + 255,255,255,255,255,255,255,3,192,3,192,3,192,3,192,3, + 192,3,192,5,11,11,9,2,250,248,248,248,248,248,24,24, + 56,112,224,128,9,5,10,11,1,7,255,128,255,128,255,128, + 255,128,255,128,5,5,5,9,2,0,248,248,248,248,248,8, + 25,25,9,0,0,3,3,3,3,6,6,6,14,12,12,12, + 28,24,24,24,48,48,48,112,96,96,96,192,192,192,15,24, + 48,18,1,0,15,224,31,240,63,248,127,252,124,124,248,62, + 248,62,248,62,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,248,62,248,62,248,62,124,124,127,252,63,248, + 31,240,15,224,10,23,46,18,2,0,1,192,3,192,7,192, + 31,192,255,192,255,192,255,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,16,24,48,18,1,0,15,224, + 63,248,127,252,127,254,252,126,248,63,248,31,240,31,240,31, + 0,63,0,62,0,126,0,252,1,248,7,240,15,224,31,128, + 63,0,126,0,252,0,255,255,255,255,255,255,255,255,16,24, + 48,18,1,0,15,224,63,248,127,252,127,252,248,62,240,62, + 240,30,240,30,0,62,0,124,3,248,3,240,3,252,0,126, + 0,63,0,31,240,31,240,31,240,63,248,62,127,254,127,252, + 63,248,15,224,16,24,48,18,1,0,0,248,0,248,1,248, + 3,248,3,248,7,248,15,120,14,120,30,120,28,120,60,120, + 120,120,112,120,240,120,224,120,255,255,255,255,255,255,255,255, + 0,120,0,120,0,120,0,120,0,120,15,24,48,18,1,0, + 63,252,63,252,63,252,63,252,56,0,120,0,120,0,120,0, + 123,224,127,248,127,252,127,252,120,126,0,62,0,62,0,30, + 0,30,240,62,240,62,248,124,127,252,127,248,63,240,15,192, + 15,24,48,18,1,0,7,224,31,248,63,252,63,254,124,62, + 120,30,240,0,240,0,243,224,247,248,255,252,255,252,252,126, + 248,62,240,30,240,30,240,30,240,30,248,62,124,124,127,252, + 63,248,31,240,7,192,16,24,48,18,1,0,255,255,255,255, + 255,255,255,255,0,30,0,62,0,60,0,120,0,248,0,240, + 1,240,1,224,3,224,3,192,7,192,7,192,7,128,15,128, + 15,128,15,128,31,0,31,0,31,0,31,0,17,24,72,18, + 0,0,7,240,0,31,252,0,63,254,0,62,62,0,124,31, + 0,120,15,0,120,15,0,120,15,0,124,31,0,62,62,0, + 31,252,0,31,252,0,63,254,0,124,31,0,248,15,128,240, + 7,128,240,7,128,240,7,128,248,15,128,126,63,0,127,254, + 0,63,254,0,31,252,0,7,240,0,15,24,48,18,1,0, + 7,192,31,240,63,248,127,252,124,124,248,62,240,30,240,30, + 240,30,240,30,248,62,252,126,127,254,127,254,63,222,7,158, + 0,30,0,30,240,60,248,124,127,248,127,248,31,240,7,192 + }; +/* + Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 23 + Calculated Max Values w=29 h=32 x= 3 y=20 dx=33 dy= 0 ascent=25 len=120 + Font Bounding box w=40 h=49 x=-6 y=-12 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =25 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvB24r[5214] U8G_SECTION(".progmem.u8g_font_helvB24r") = { + 0,40,49,250,244,25,5,252,14,144,32,127,249,25,249,25, + 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, + 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, + 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, + 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, + 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, + 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, + 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, + 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, + 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, + 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, + 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, + 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, + 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, + 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, + 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, + 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, + 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, + 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, + 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, + 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, + 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, + 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, + 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, + 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, + 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, + 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, + 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, + 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, + 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, + 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, + 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, + 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, + 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, + 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, + 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, + 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, + 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, + 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, + 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, + 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, + 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, + 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, + 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, + 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, + 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, + 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, + 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, + 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, + 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, + 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, + 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, + 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, + 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, + 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, + 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, + 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, + 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, + 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, + 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, + 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, + 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, + 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, + 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, + 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, + 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, + 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, + 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, + 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, + 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, + 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, + 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, + 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, + 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, + 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, + 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, + 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, + 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, + 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, + 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, + 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, + 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, + 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, + 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, + 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, + 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, + 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, + 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, + 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, + 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, + 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, + 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, + 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, + 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, + 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, + 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, + 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, + 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, + 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, + 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, + 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, + 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, + 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, + 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, + 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, + 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, + 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, + 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, + 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, + 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, + 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, + 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, + 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, + 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, + 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, + 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, + 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, + 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, + 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, + 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, + 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, + 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, + 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, + 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, + 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, + 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, + 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, + 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, + 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, + 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, + 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, + 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, + 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, + 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, + 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, + 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, + 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, + 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, + 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, + 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, + 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, + 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, + 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, + 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, + 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, + 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, + 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, + 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, + 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, + 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, + 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, + 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, + 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, + 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, + 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, + 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, + 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, + 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, + 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, + 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, + 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, + 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, + 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, + 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, + 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, + 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, + 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, + 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, + 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, + 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, + 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, + 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, + 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, + 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, + 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, + 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, + 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, + 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, + 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, + 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, + 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, + 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, + 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, + 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, + 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, + 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, + 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, + 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, + 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, + 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, + 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, + 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, + 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, + 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, + 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, + 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, + 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, + 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, + 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, + 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, + 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, + 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, + 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, + 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, + 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, + 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, + 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, + 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, + 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, + 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, + 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, + 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, + 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, + 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, + 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, + 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, + 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, + 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, + 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, + 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, + 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, + 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, + 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, + 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, + 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, + 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, + 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, + 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, + 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, + 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, + 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, + 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, + 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, + 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, + 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, + 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, + 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, + 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, + 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, + 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, + 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, + 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, + 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, + 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, + 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, + 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, + 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, + 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, + 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, + 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, + 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, + 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, + 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, + 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, + 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, + 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, + 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, + 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, + 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, + 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, + 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, + 5,56,0,126,12,255,156,231,252,193,248,0,112,255}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 + Font Bounding box w=13 h=18 x=-2 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR08[2687] U8G_SECTION(".progmem.u8g_font_helvR08") = { + 0,13,18,254,252,8,1,178,3,111,32,255,254,11,254,8, + 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, + 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, + 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, + 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, + 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, + 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, + 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, + 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, + 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, + 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, + 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, + 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, + 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, + 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, + 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, + 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, + 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, + 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, + 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, + 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, + 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, + 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, + 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, + 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, + 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, + 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, + 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, + 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, + 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, + 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, + 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, + 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, + 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, + 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, + 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, + 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, + 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, + 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, + 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, + 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, + 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, + 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, + 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, + 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, + 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, + 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, + 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, + 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, + 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, + 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, + 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, + 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, + 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, + 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, + 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, + 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, + 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, + 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, + 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, + 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, + 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, + 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, + 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, + 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, + 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, + 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, + 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, + 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, + 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, + 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, + 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, + 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, + 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, + 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, + 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, + 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, + 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, + 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, + 64,64,128,6,2,2,7,0,3,100,152,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,3, + 0,1,1,8,8,3,1,254,128,0,128,128,128,128,128,128, + 5,8,8,6,1,255,16,112,168,160,160,168,112,64,5,8, + 8,6,0,0,48,72,64,224,64,64,72,176,4,6,6,5, + 0,1,144,96,144,144,96,144,5,8,8,6,0,0,136,136, + 136,80,248,32,248,32,1,10,10,3,1,254,128,128,128,128, + 0,0,128,128,128,128,5,10,10,6,0,254,112,136,192,112, + 152,200,112,24,136,112,3,1,1,3,0,7,160,7,7,7, + 9,1,0,56,68,154,162,154,68,56,3,5,5,4,0,3, + 224,32,160,0,224,5,5,5,6,0,0,40,80,160,80,40, + 5,3,3,7,1,2,248,8,8,3,1,1,4,0,3,224, + 7,7,7,9,1,0,56,68,186,178,170,68,56,3,1,1, + 3,0,7,224,4,4,4,4,0,4,96,144,144,96,5,7, + 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, + 4,96,160,64,224,3,4,4,3,0,4,224,64,32,192,2, + 2,2,3,0,7,64,128,4,8,8,5,0,254,144,144,144, + 144,144,240,128,128,6,10,10,6,0,254,124,232,232,232,104, + 40,40,40,40,40,2,1,1,3,0,3,192,2,2,2,3, + 0,254,64,192,2,4,4,3,0,4,64,192,64,64,3,5, + 5,4,0,3,224,160,224,0,224,5,5,5,6,0,0,160, + 80,40,80,160,9,8,16,9,0,0,68,0,196,0,72,0, + 72,0,17,0,19,0,39,128,33,0,8,8,8,9,0,0, + 68,196,72,72,19,21,34,39,9,8,16,9,0,0,224,0, + 68,0,36,0,200,0,9,0,19,0,23,128,33,0,4,8, + 8,6,1,254,32,0,32,32,64,128,144,96,7,11,11,7, + 0,0,32,16,0,16,16,40,40,68,124,130,130,7,11,11, + 7,0,0,8,16,0,16,16,40,40,68,124,130,130,7,11, + 11,7,0,0,16,40,0,16,16,40,40,68,124,130,130,7, + 11,11,7,0,0,20,40,0,16,16,40,40,68,124,130,130, + 7,10,10,7,0,0,40,0,16,16,40,40,68,124,130,130, + 7,11,11,7,0,0,16,40,16,16,16,40,40,68,124,130, + 130,9,8,16,10,0,0,31,128,24,0,40,0,47,128,72, + 0,120,0,136,0,143,128,6,10,10,8,1,254,120,132,128, + 128,128,128,132,120,16,48,5,11,11,7,1,0,64,32,0, + 248,128,128,248,128,128,128,248,5,11,11,7,1,0,16,32, + 0,248,128,128,248,128,128,128,248,5,11,11,7,1,0,32, + 80,0,248,128,128,248,128,128,128,248,5,10,10,7,1,0, + 80,0,248,128,128,248,128,128,128,248,2,11,11,3,0,0, + 128,64,0,64,64,64,64,64,64,64,64,2,11,11,3,1, + 0,64,128,0,128,128,128,128,128,128,128,128,3,11,11,3, + 0,0,64,160,0,64,64,64,64,64,64,64,64,3,10,10, + 3,0,0,160,0,64,64,64,64,64,64,64,64,7,8,8, + 8,0,0,120,68,66,242,66,66,68,120,6,11,11,8,1, + 0,40,80,0,196,196,164,164,148,148,140,140,6,11,11,8, + 1,0,32,16,0,120,132,132,132,132,132,132,120,6,11,11, + 8,1,0,8,16,0,120,132,132,132,132,132,132,120,6,11, + 11,8,1,0,32,80,0,120,132,132,132,132,132,132,120,6, + 11,11,8,1,0,40,80,0,120,132,132,132,132,132,132,120, + 6,10,10,8,1,0,72,0,120,132,132,132,132,132,132,120, + 5,5,5,6,0,1,136,80,32,80,136,6,10,10,8,1, + 255,4,120,140,148,148,164,164,196,120,128,6,11,11,8,1, + 0,32,16,0,132,132,132,132,132,132,132,120,6,11,11,8, + 1,0,8,16,0,132,132,132,132,132,132,132,120,6,11,11, + 8,1,0,32,80,0,132,132,132,132,132,132,132,120,6,10, + 10,8,1,0,72,0,132,132,132,132,132,132,132,120,7,11, + 11,7,0,0,8,16,0,130,68,68,40,40,16,16,16,5, + 8,8,7,1,0,128,128,240,136,136,240,128,128,4,8,8, + 5,0,0,96,144,144,160,144,144,144,160,5,9,9,5,0, + 0,64,32,0,224,16,112,144,144,104,5,9,9,5,0,0, + 32,64,0,224,16,112,144,144,104,5,9,9,5,0,0,32, + 80,0,224,16,112,144,144,104,5,9,9,5,0,0,80,160, + 0,224,16,112,144,144,104,5,8,8,5,0,0,80,0,224, + 16,112,144,144,104,5,9,9,5,0,0,32,80,32,224,16, + 112,144,144,104,7,6,6,8,0,0,236,18,126,144,146,108, + 4,8,8,5,0,254,96,144,128,128,144,96,32,96,4,9, + 9,5,0,0,64,32,0,96,144,240,128,144,96,4,9,9, + 5,0,0,32,64,0,96,144,240,128,144,96,4,9,9,5, + 0,0,64,160,0,96,144,240,128,144,96,4,8,8,5,0, + 0,160,0,96,144,240,128,144,96,2,9,9,2,255,0,128, + 64,0,64,64,64,64,64,64,2,9,9,2,0,0,64,128, + 0,128,128,128,128,128,128,3,9,9,2,255,0,64,160,0, + 64,64,64,64,64,64,3,8,8,2,255,0,160,0,64,64, + 64,64,64,64,5,9,9,6,0,0,64,120,144,120,136,136, + 136,136,112,4,9,9,5,0,0,80,160,0,224,144,144,144, + 144,144,5,9,9,6,0,0,64,32,0,112,136,136,136,136, + 112,5,9,9,6,0,0,16,32,0,112,136,136,136,136,112, + 5,9,9,6,0,0,32,80,0,112,136,136,136,136,112,5, + 9,9,6,0,0,40,80,0,112,136,136,136,136,112,5,8, + 8,6,0,0,80,0,112,136,136,136,136,112,5,5,5,6, + 0,1,32,0,248,0,32,7,6,6,6,255,0,58,76,84, + 100,68,184,4,9,9,5,0,0,64,32,0,144,144,144,144, + 144,112,4,9,9,5,0,0,16,32,0,144,144,144,144,144, + 112,4,9,9,5,0,0,64,160,0,144,144,144,144,144,112, + 4,8,8,5,0,0,160,0,144,144,144,144,144,112,5,11, + 11,5,255,254,8,16,0,72,72,80,80,48,32,32,192,5, + 10,10,6,0,254,128,128,176,200,136,136,200,176,128,128,5, + 10,10,5,255,254,80,0,72,72,80,80,48,32,32,192}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 + Font Bounding box w=13 h=18 x=-2 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR08r[1276] U8G_SECTION(".progmem.u8g_font_helvR08r") = { + 0,13,18,254,252,8,1,178,3,111,32,127,254,9,254,8, + 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, + 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, + 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, + 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, + 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, + 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, + 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, + 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, + 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, + 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, + 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, + 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, + 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, + 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, + 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, + 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, + 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, + 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, + 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, + 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, + 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, + 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, + 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, + 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, + 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, + 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, + 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, + 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, + 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, + 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, + 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, + 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, + 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, + 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, + 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, + 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, + 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, + 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, + 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, + 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, + 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, + 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, + 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, + 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, + 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, + 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, + 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, + 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, + 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, + 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, + 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, + 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, + 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, + 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, + 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, + 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, + 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, + 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, + 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, + 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, + 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, + 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, + 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, + 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, + 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, + 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, + 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, + 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, + 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, + 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, + 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, + 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, + 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, + 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, + 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, + 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, + 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, + 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, + 64,64,128,6,2,2,7,0,3,100,152,255}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=13 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 + Font Bounding box w=17 h=22 x=-2 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR10[3527] U8G_SECTION(".progmem.u8g_font_helvR10") = { + 0,17,22,254,251,11,2,10,4,133,32,255,253,14,253,11, + 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, + 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, + 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, + 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, + 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, + 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, + 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, + 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, + 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, + 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, + 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, + 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, + 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, + 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, + 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, + 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, + 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, + 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, + 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, + 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, + 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, + 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, + 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, + 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, + 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, + 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, + 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, + 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, + 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, + 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, + 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, + 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, + 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, + 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, + 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, + 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, + 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, + 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, + 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, + 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, + 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, + 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, + 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, + 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, + 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, + 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, + 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, + 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, + 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, + 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, + 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, + 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, + 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, + 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, + 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, + 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, + 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, + 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, + 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, + 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, + 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, + 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, + 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, + 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, + 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, + 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, + 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, + 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, + 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, + 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, + 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, + 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, + 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, + 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, + 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, + 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, + 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, + 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, + 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, + 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, + 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, + 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, + 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, + 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, + 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, + 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, + 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, + 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, + 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, + 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, + 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, + 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, + 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, + 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, + 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, + 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, + 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0,0,0,4,0,1,1,11,11,4,1,253,128,128,0,128, + 128,128,128,128,128,128,128,6,10,10,8,1,255,4,120,204, + 144,144,160,164,204,120,128,7,11,11,8,0,0,56,68,64, + 64,248,32,32,32,64,98,220,6,6,6,8,1,2,132,120, + 72,72,120,132,7,11,11,7,0,0,130,130,130,68,68,40, + 254,16,254,16,16,1,14,14,3,1,253,128,128,128,128,128, + 128,0,0,128,128,128,128,128,128,5,14,14,8,2,253,112, + 216,136,192,112,152,136,136,200,112,24,136,216,112,5,1,1, + 5,0,9,216,10,11,22,12,1,0,30,0,97,128,92,128, + 162,192,162,64,160,64,162,64,156,64,64,128,97,128,30,0, + 4,7,7,6,1,4,224,16,112,144,208,0,240,6,5,5, + 8,1,2,36,72,144,72,36,7,4,4,9,1,2,254,2, + 2,2,3,1,1,4,0,4,224,10,11,22,12,1,0,30, + 0,97,128,92,128,146,64,146,64,156,64,146,64,146,64,64, + 128,97,128,30,0,4,1,1,4,0,9,240,4,4,4,6, + 1,7,96,144,144,96,7,9,9,9,1,0,16,16,16,254, + 16,16,16,0,254,4,6,6,5,0,5,96,144,16,32,64, + 240,4,6,6,5,0,5,96,144,32,16,144,96,2,2,2, + 5,2,9,64,128,6,11,11,8,1,253,132,132,132,132,132, + 132,204,180,128,128,128,7,14,14,8,0,253,62,116,244,244, + 244,116,52,20,20,20,20,20,20,20,2,1,1,4,1,4, + 192,4,3,3,5,0,253,32,144,96,2,6,6,5,1,5, + 64,192,64,64,64,64,4,7,7,6,1,4,96,144,144,144, + 96,0,240,6,5,5,8,1,2,144,72,36,72,144,10,11, + 22,12,1,0,66,0,194,0,68,0,68,0,72,0,72,128, + 9,128,18,128,20,128,39,192,32,128,9,11,22,12,1,0, + 66,0,194,0,68,0,68,0,72,0,75,0,20,128,16,128, + 17,0,34,0,39,128,11,11,22,12,0,0,97,0,145,0, + 34,0,18,0,148,0,100,64,4,192,9,64,10,64,19,224, + 16,64,6,11,11,8,1,253,16,16,0,16,32,64,128,132, + 132,204,48,9,14,28,9,0,0,16,0,8,0,0,0,8, + 0,28,0,20,0,20,0,34,0,34,0,65,0,127,0,65, + 0,128,128,128,128,9,14,28,9,0,0,4,0,8,0,0, + 0,8,0,28,0,20,0,20,0,34,0,34,0,65,0,127, + 0,65,0,128,128,128,128,9,14,28,9,0,0,12,0,18, + 0,0,0,8,0,28,0,20,0,20,0,34,0,34,0,65, + 0,127,0,65,0,128,128,128,128,9,14,28,9,0,0,26, + 0,44,0,0,0,8,0,28,0,20,0,20,0,34,0,34, + 0,65,0,127,0,65,0,128,128,128,128,9,13,26,9,0, + 0,54,0,0,0,8,0,28,0,20,0,20,0,34,0,34, + 0,65,0,127,0,65,0,128,128,128,128,9,14,28,9,0, + 0,12,0,18,0,18,0,12,0,12,0,20,0,20,0,34, + 0,34,0,65,0,127,0,65,0,128,128,128,128,12,11,22, + 14,1,0,31,240,18,0,18,0,34,0,34,0,35,240,126, + 0,66,0,66,0,130,0,131,240,8,14,14,10,1,253,28, + 99,65,128,128,128,128,128,65,99,28,8,36,24,7,14,14, + 9,1,0,32,16,0,254,128,128,128,128,252,128,128,128,128, + 254,7,14,14,9,1,0,8,16,0,254,128,128,128,128,252, + 128,128,128,128,254,7,14,14,9,1,0,24,36,0,254,128, + 128,128,128,252,128,128,128,128,254,7,13,13,9,1,0,108, + 0,254,128,128,128,128,252,128,128,128,128,254,2,14,14,4, + 1,0,128,64,0,64,64,64,64,64,64,64,64,64,64,64, + 2,14,14,4,2,0,64,128,0,128,128,128,128,128,128,128, + 128,128,128,128,4,14,14,4,1,0,96,144,0,64,64,64, + 64,64,64,64,64,64,64,64,5,13,13,4,0,0,216,0, + 32,32,32,32,32,32,32,32,32,32,32,9,11,22,10,0, + 0,124,0,67,0,65,0,64,128,64,128,240,128,64,128,64, + 128,65,0,67,0,124,0,8,14,14,10,1,0,26,44,0, + 193,161,161,145,145,137,137,133,133,131,131,9,14,28,11,1, + 0,16,0,8,0,0,0,28,0,99,0,65,0,128,128,128, + 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, + 11,1,0,4,0,8,0,0,0,28,0,99,0,65,0,128, + 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, + 14,28,11,1,0,12,0,18,0,0,0,28,0,99,0,65, + 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, + 0,9,14,28,11,1,0,26,0,44,0,0,0,28,0,99, + 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, + 0,28,0,9,13,26,11,1,0,51,0,0,0,28,0,99, + 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, + 0,28,0,7,7,7,9,1,1,130,68,40,16,40,68,130, + 11,11,22,11,0,0,14,32,49,192,32,128,65,64,66,64, + 68,64,72,64,80,64,32,128,113,128,142,0,8,14,14,10, + 1,0,16,8,0,129,129,129,129,129,129,129,129,129,66,60, + 8,14,14,10,1,0,4,8,0,129,129,129,129,129,129,129, + 129,129,66,60,8,14,14,10,1,0,24,36,0,129,129,129, + 129,129,129,129,129,129,66,60,8,13,13,10,1,0,102,0, + 129,129,129,129,129,129,129,129,129,66,60,9,14,28,9,0, + 0,4,0,8,0,0,0,128,128,193,128,65,0,34,0,34, + 0,20,0,28,0,8,0,8,0,8,0,8,0,7,11,11, + 9,1,0,128,128,252,134,130,130,134,252,128,128,128,5,11, + 11,7,1,0,112,136,136,136,176,144,136,136,136,136,176,7, + 11,11,8,1,0,32,16,0,120,204,4,124,196,132,204,118, + 7,11,11,8,1,0,16,32,0,120,204,4,124,196,132,204, + 118,7,11,11,8,1,0,48,72,0,120,204,4,124,196,132, + 204,118,7,11,11,8,1,0,52,88,0,120,204,4,124,196, + 132,204,118,7,11,11,8,1,0,72,72,0,120,204,4,124, + 196,132,204,118,7,12,12,8,1,0,48,72,48,0,120,204, + 4,124,196,132,204,118,11,8,16,13,1,0,123,192,198,96, + 4,32,127,224,196,0,132,0,206,96,123,192,6,11,11,8, + 1,253,120,204,128,128,128,132,204,120,16,72,48,6,11,11, + 8,1,0,32,16,0,120,204,132,252,128,128,204,120,6,11, + 11,8,1,0,16,32,0,120,204,132,252,128,128,204,120,6, + 11,11,8,1,0,48,72,0,120,204,132,252,128,128,204,120, + 6,11,11,8,1,0,72,72,0,120,204,132,252,128,128,204, + 120,2,11,11,3,1,0,128,64,0,128,128,128,128,128,128, + 128,128,2,11,11,3,1,0,64,128,0,128,128,128,128,128, + 128,128,128,4,11,11,3,0,0,96,144,0,64,64,64,64, + 64,64,64,64,3,11,11,3,0,0,160,160,0,64,64,64, + 64,64,64,64,64,6,11,11,8,1,0,216,112,144,120,204, + 132,132,132,132,204,120,6,11,11,8,1,0,104,176,0,184, + 204,132,132,132,132,132,132,6,11,11,8,1,0,32,16,0, + 120,204,132,132,132,132,204,120,6,11,11,8,1,0,16,32, + 0,120,204,132,132,132,132,204,120,6,11,11,8,1,0,48, + 72,0,120,204,132,132,132,132,204,120,6,11,11,8,1,0, + 104,176,0,120,204,132,132,132,132,204,120,6,11,11,8,1, + 0,72,72,0,120,204,132,132,132,132,204,120,7,7,7,9, + 1,1,16,16,0,254,0,16,16,8,8,8,8,0,0,61, + 98,70,74,82,98,70,188,6,11,11,8,1,0,32,16,0, + 132,132,132,132,132,132,204,116,6,11,11,8,1,0,16,32, + 0,132,132,132,132,132,132,204,116,6,11,11,8,1,0,48, + 72,0,132,132,132,132,132,132,204,116,6,11,11,8,1,0, + 72,72,0,132,132,132,132,132,132,204,116,7,14,14,7,0, + 253,8,16,0,130,194,68,68,36,40,24,16,16,48,96,6, + 14,14,8,1,253,128,128,128,184,204,132,132,132,132,204,184, + 128,128,128,7,14,14,7,0,253,36,36,0,130,194,68,68, + 36,40,24,16,16,48,96}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=13 h=14 x= 2 y= 9 dx=13 dy= 0 ascent=12 len=24 + Font Bounding box w=17 h=22 x=-2 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR10r[1648] U8G_SECTION(".progmem.u8g_font_helvR10r") = { + 0,17,22,254,251,11,2,10,4,133,32,127,253,12,253,11, + 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, + 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, + 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, + 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, + 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, + 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, + 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, + 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, + 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, + 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, + 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, + 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, + 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, + 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, + 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, + 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, + 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, + 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, + 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, + 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, + 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, + 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, + 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, + 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, + 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, + 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, + 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, + 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, + 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, + 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, + 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, + 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, + 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, + 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, + 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, + 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, + 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, + 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, + 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, + 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, + 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, + 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, + 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, + 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, + 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, + 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, + 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, + 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, + 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, + 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, + 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, + 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, + 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, + 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, + 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, + 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, + 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, + 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, + 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, + 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, + 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, + 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, + 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, + 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, + 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, + 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, + 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, + 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, + 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, + 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, + 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, + 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, + 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, + 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, + 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, + 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, + 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, + 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, + 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, + 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, + 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, + 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, + 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, + 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, + 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, + 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, + 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, + 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, + 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, + 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, + 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, + 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, + 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, + 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, + 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, + 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, + 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255 + }; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=14 h=16 x= 3 y=10 dx=17 dy= 0 ascent=16 len=32 + Font Bounding box w=20 h=26 x=-2 y=-6 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR12[4077] U8G_SECTION(".progmem.u8g_font_helvR12") = { + 0,20,26,254,250,12,2,91,5,99,32,255,252,16,252,12, + 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, + 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, + 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, + 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, + 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, + 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, + 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, + 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, + 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, + 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, + 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, + 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, + 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, + 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, + 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, + 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, + 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, + 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, + 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, + 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, + 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, + 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, + 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, + 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, + 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, + 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, + 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, + 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, + 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, + 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, + 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, + 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, + 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, + 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, + 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, + 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, + 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, + 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, + 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, + 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, + 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, + 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, + 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, + 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, + 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, + 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, + 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, + 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, + 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, + 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, + 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, + 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, + 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, + 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, + 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, + 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, + 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, + 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, + 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, + 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, + 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, + 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, + 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, + 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, + 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, + 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, + 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, + 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, + 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, + 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, + 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, + 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, + 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, + 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, + 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, + 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, + 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, + 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, + 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, + 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, + 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, + 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, + 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, + 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, + 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, + 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, + 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, + 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, + 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, + 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, + 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, + 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, + 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, + 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, + 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, + 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, + 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, + 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, + 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, + 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, + 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, + 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, + 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, + 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, + 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, + 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, + 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, + 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, + 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, + 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, + 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, + 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, + 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, + 113,142,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,5,0,1,1,12,12,6,2,253,128, + 128,0,128,128,128,128,128,128,128,128,128,7,13,13,9,1, + 254,4,4,56,76,138,144,144,144,162,100,56,64,64,8,12, + 12,9,0,0,14,17,33,32,32,16,126,8,16,32,121,134, + 8,7,7,9,0,3,189,102,66,66,66,102,189,9,12,24, + 9,0,0,128,128,65,0,65,0,34,0,34,0,20,0,127, + 0,8,0,127,0,8,0,8,0,8,0,1,16,16,4,1, + 252,128,128,128,128,128,128,0,0,0,0,128,128,128,128,128, + 128,7,15,15,9,1,253,56,68,70,96,152,140,134,194,98, + 50,28,4,196,68,56,3,2,2,5,1,10,160,160,12,12, + 24,12,0,0,15,0,48,192,71,32,72,160,144,16,144,16, + 144,16,144,16,72,160,71,32,48,192,15,0,5,7,7,6, + 1,5,96,144,112,144,120,0,248,6,6,6,9,1,2,36, + 72,144,144,72,36,8,5,5,10,0,1,255,1,1,1,1, + 4,1,1,5,0,4,240,12,12,24,12,0,0,15,0,48, + 192,64,32,79,32,136,144,136,144,143,16,138,16,73,32,72, + 160,48,192,15,0,5,1,1,6,0,10,248,5,5,5,7, + 1,7,112,136,136,136,112,9,11,22,10,0,0,8,0,8, + 0,8,0,8,0,255,128,8,0,8,0,8,0,8,0,0, + 0,255,128,5,7,7,6,0,5,112,136,136,16,96,128,248, + 5,7,7,6,0,5,112,136,8,48,8,136,112,3,3,3, + 6,1,10,32,96,128,7,13,13,9,1,252,130,130,130,130, + 130,130,130,134,250,128,128,128,128,7,15,15,9,1,253,62, + 116,244,244,244,244,116,52,20,20,20,20,20,20,20,1,2, + 2,5,2,4,128,128,4,4,4,6,0,252,32,32,144,96, + 3,7,7,6,0,5,32,224,32,32,32,32,32,4,7,7, + 6,1,5,96,144,144,144,96,0,240,6,6,6,9,1,2, + 144,72,36,36,72,144,12,12,24,14,0,0,32,64,224,128, + 32,128,33,0,34,0,34,32,36,96,4,160,9,32,17,240, + 16,32,32,32,12,13,26,14,0,0,0,64,32,128,224,128, + 33,0,34,0,34,0,36,224,37,16,9,16,8,32,16,192, + 33,0,33,240,13,12,24,14,0,0,112,64,136,64,8,128, + 48,128,9,0,137,16,114,48,2,80,4,144,4,248,8,16, + 8,16,7,12,12,10,1,253,16,16,0,16,16,32,64,128, + 130,130,68,56,10,16,32,11,0,0,16,0,24,0,4,0, + 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, + 127,128,64,128,64,128,128,64,128,64,10,16,32,11,0,0, + 2,0,6,0,8,0,0,0,12,0,12,0,18,0,18,0, + 18,0,33,0,33,0,127,128,64,128,64,128,128,64,128,64, + 10,16,32,11,0,0,4,0,14,0,17,0,0,0,12,0, + 12,0,18,0,18,0,18,0,33,0,33,0,127,128,64,128, + 64,128,128,64,128,64,10,15,30,11,0,0,26,0,44,0, + 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, + 127,128,64,128,64,128,128,64,128,64,10,15,30,11,0,0, + 18,0,18,0,0,0,12,0,12,0,18,0,18,0,18,0, + 33,0,33,0,127,128,64,128,64,128,128,64,128,64,10,15, + 30,11,0,0,12,0,18,0,18,0,12,0,12,0,18,0, + 18,0,18,0,33,0,33,0,127,128,64,128,64,128,128,64, + 128,64,14,12,24,16,0,0,7,252,9,0,9,0,17,0, + 17,0,33,252,33,0,127,0,65,0,65,0,129,0,129,252, + 10,16,32,12,1,252,15,0,48,128,64,64,64,0,128,0, + 128,0,128,0,128,0,64,0,64,64,48,128,15,0,4,0, + 4,0,18,0,12,0,8,16,16,11,1,0,32,48,8,0, + 255,128,128,128,128,255,128,128,128,128,128,255,8,16,16,11, + 1,0,4,12,16,0,255,128,128,128,128,255,128,128,128,128, + 128,255,8,16,16,11,1,0,16,56,68,0,255,128,128,128, + 128,255,128,128,128,128,128,255,8,15,15,11,1,0,36,36, + 0,255,128,128,128,128,255,128,128,128,128,128,255,3,16,16, + 4,0,0,128,192,32,0,64,64,64,64,64,64,64,64,64, + 64,64,64,3,16,16,4,0,0,32,96,128,0,64,64,64, + 64,64,64,64,64,64,64,64,64,5,16,16,4,255,0,32, + 112,136,0,32,32,32,32,32,32,32,32,32,32,32,32,3, + 15,15,4,0,0,160,160,0,64,64,64,64,64,64,64,64, + 64,64,64,64,12,12,24,12,0,0,63,0,32,192,32,32, + 32,32,32,16,248,16,32,16,32,16,32,32,32,32,32,192, + 63,0,9,15,30,12,1,0,26,0,44,0,0,0,128,128, + 192,128,160,128,160,128,144,128,136,128,136,128,132,128,130,128, + 130,128,129,128,128,128,11,16,32,13,1,0,8,0,12,0, + 2,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, + 128,32,128,32,64,64,64,64,49,128,14,0,11,16,32,13, + 1,0,1,0,3,0,4,0,0,0,14,0,49,128,64,64, + 64,64,128,32,128,32,128,32,128,32,64,64,64,64,49,128, + 14,0,11,16,32,13,1,0,4,0,14,0,17,0,0,0, + 14,0,49,128,64,64,64,64,128,32,128,32,128,32,128,32, + 64,64,64,64,49,128,14,0,11,15,30,13,1,0,13,0, + 22,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, + 128,32,128,32,64,64,64,64,49,128,14,0,11,15,30,13, + 1,0,17,0,17,0,0,0,14,0,49,128,64,64,64,64, + 128,32,128,32,128,32,128,32,64,64,64,64,49,128,14,0, + 8,8,8,10,1,0,129,66,36,24,24,36,66,129,11,14, + 28,13,1,255,0,64,14,128,49,128,65,64,66,64,130,32, + 132,32,132,32,136,32,72,64,80,64,49,128,46,0,64,0, + 9,16,32,12,1,0,32,0,48,0,8,0,0,0,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,65,0,62,0,9,16,32,12,1,0,2,0,6,0, + 8,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,65,0,62,0,9,16,32,12, + 1,0,8,0,28,0,34,0,0,0,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, + 62,0,9,15,30,12,1,0,34,0,34,0,0,0,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,65,0,62,0,9,16,32,11,1,0,2,0,6,0, + 8,0,0,0,128,128,65,0,65,0,34,0,34,0,20,0, + 28,0,8,0,8,0,8,0,8,0,8,0,8,12,12,11, + 2,0,128,128,252,130,129,129,130,252,128,128,128,128,7,12, + 12,10,2,0,120,132,130,130,132,188,134,130,130,130,132,184, + 8,13,13,9,1,0,32,48,8,0,124,130,2,6,122,130, + 130,134,123,8,13,13,9,1,0,4,12,16,0,124,130,2, + 6,122,130,130,134,123,8,13,13,9,1,0,16,56,68,0, + 124,130,2,6,122,130,130,134,123,8,12,12,9,1,0,52, + 88,0,124,130,2,6,122,130,130,134,123,8,12,12,9,1, + 0,40,40,0,124,130,2,6,122,130,130,134,123,8,13,13, + 9,1,0,16,40,16,0,124,130,2,6,122,130,130,134,123, + 13,9,18,15,1,0,124,224,131,16,2,8,6,8,123,248, + 130,0,130,8,135,16,120,224,7,13,13,8,1,252,56,68, + 130,128,128,128,130,68,56,16,16,72,48,7,13,13,9,1, + 0,64,96,16,0,56,68,130,130,254,128,130,68,56,7,13, + 13,9,1,0,8,24,32,0,56,68,130,130,254,128,130,68, + 56,7,13,13,9,1,0,16,56,68,0,56,68,130,130,254, + 128,130,68,56,7,12,12,9,1,0,40,40,0,56,68,130, + 130,254,128,130,68,56,3,13,13,4,1,0,128,192,32,0, + 64,64,64,64,64,64,64,64,64,3,13,13,4,1,0,32, + 96,128,0,64,64,64,64,64,64,64,64,64,5,13,13,4, + 0,0,32,112,136,0,32,32,32,32,32,32,32,32,32,3, + 12,12,4,1,0,160,160,0,64,64,64,64,64,64,64,64, + 64,7,12,12,9,1,0,72,48,88,60,68,130,130,130,130, + 130,68,56,7,12,12,9,1,0,52,88,0,188,194,130,130, + 130,130,130,130,130,7,13,13,9,1,0,32,48,8,0,56, + 68,130,130,130,130,130,68,56,7,13,13,9,1,0,8,24, + 32,0,56,68,130,130,130,130,130,68,56,7,13,13,9,1, + 0,16,56,68,0,56,68,130,130,130,130,130,68,56,7,12, + 12,9,1,0,52,88,0,56,68,130,130,130,130,130,68,56, + 7,12,12,9,1,0,40,40,0,56,68,130,130,130,130,130, + 68,56,7,9,9,10,1,0,16,16,0,0,254,0,0,16, + 16,7,10,10,10,1,0,2,60,68,138,146,146,162,162,68, + 184,7,13,13,9,1,0,32,48,8,0,130,130,130,130,130, + 130,130,134,122,7,13,13,9,1,0,4,12,16,0,130,130, + 130,130,130,130,130,134,122,7,13,13,9,1,0,16,56,68, + 0,130,130,130,130,130,130,130,134,122,7,12,12,9,1,0, + 40,40,0,130,130,130,130,130,130,130,134,122,7,16,16,8, + 0,253,8,24,32,0,130,130,68,68,40,40,56,16,16,32, + 32,192,7,16,16,9,1,252,128,128,128,184,196,130,130,130, + 130,130,196,184,128,128,128,128,7,15,15,8,0,253,40,40, + 0,130,130,68,68,40,40,56,16,16,32,32,192}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=13 h=16 x= 3 y=10 dx=17 dy= 0 ascent=13 len=28 + Font Bounding box w=20 h=26 x=-2 y=-6 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR12r[1907] U8G_SECTION(".progmem.u8g_font_helvR12r") = { + 0,20,26,254,250,12,2,91,5,99,32,127,252,13,252,12, + 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, + 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, + 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, + 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, + 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, + 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, + 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, + 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, + 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, + 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, + 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, + 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, + 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, + 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, + 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, + 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, + 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, + 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, + 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, + 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, + 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, + 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, + 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, + 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, + 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, + 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, + 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, + 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, + 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, + 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, + 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, + 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, + 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, + 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, + 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, + 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, + 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, + 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, + 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, + 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, + 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, + 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, + 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, + 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, + 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, + 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, + 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, + 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, + 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, + 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, + 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, + 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, + 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, + 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, + 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, + 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, + 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, + 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, + 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, + 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, + 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, + 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, + 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, + 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, + 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, + 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, + 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, + 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, + 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, + 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, + 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, + 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, + 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, + 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, + 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, + 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, + 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, + 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, + 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, + 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, + 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, + 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, + 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, + 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, + 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, + 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, + 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, + 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, + 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, + 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, + 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, + 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, + 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, + 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, + 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, + 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, + 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, + 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, + 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, + 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, + 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, + 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, + 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, + 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, + 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, + 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, + 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, + 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, + 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, + 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, + 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, + 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, + 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, + 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, + 113,142,255}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 13 + Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=18 len=36 + Font Bounding box w=22 h=29 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =18 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR14[4920] U8G_SECTION(".progmem.u8g_font_helvR14") = { + 0,22,29,254,249,14,2,149,6,82,32,255,252,18,252,14, + 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, + 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, + 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, + 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, + 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, + 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, + 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, + 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, + 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, + 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, + 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, + 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, + 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, + 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, + 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, + 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, + 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, + 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, + 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, + 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, + 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, + 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, + 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, + 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, + 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, + 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, + 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, + 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, + 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, + 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, + 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, + 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, + 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, + 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, + 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, + 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, + 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, + 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, + 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, + 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, + 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, + 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, + 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, + 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, + 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, + 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, + 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, + 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, + 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, + 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, + 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, + 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, + 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, + 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, + 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, + 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, + 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, + 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, + 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, + 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, + 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, + 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, + 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, + 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, + 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, + 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, + 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, + 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, + 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, + 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, + 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, + 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, + 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, + 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, + 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, + 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, + 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, + 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, + 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, + 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, + 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, + 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, + 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, + 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, + 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, + 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, + 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, + 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, + 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, + 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, + 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, + 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, + 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, + 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, + 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, + 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, + 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, + 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, + 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, + 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, + 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, + 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, + 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, + 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, + 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, + 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, + 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, + 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, + 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, + 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, + 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, + 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, + 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, + 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, + 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, + 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, + 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, + 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, + 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, + 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, + 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, + 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, + 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, + 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, + 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, + 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, + 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, + 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, + 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, + 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, + 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, + 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, + 3,3,10,1,4,115,255,206,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,5,0,1,2, + 14,14,6,2,252,192,192,0,0,64,64,192,192,192,192,192, + 192,192,192,8,14,14,10,1,254,4,4,62,127,107,200,200, + 200,200,107,127,62,16,16,9,13,26,10,0,0,30,0,63, + 0,97,128,97,128,96,0,48,0,126,0,24,0,24,0,48, + 0,96,128,255,128,223,0,8,7,7,10,1,3,195,255,102, + 102,102,255,195,8,13,13,10,1,0,195,195,102,102,102,60, + 255,24,255,24,24,24,24,2,18,18,5,1,252,192,192,192, + 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,8, + 18,18,10,1,252,60,126,195,195,240,124,110,199,195,227,115, + 62,14,7,195,195,126,60,5,2,2,6,0,12,216,216,13, + 14,28,15,1,0,15,128,48,96,64,16,71,16,136,136,144, + 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, + 128,5,8,8,7,1,6,112,152,56,72,216,104,0,248,7, + 6,6,9,1,2,54,108,216,216,108,54,9,5,10,11,1, + 3,255,128,255,128,1,128,1,128,1,128,5,1,1,6,0, + 5,248,13,14,28,14,0,0,15,128,48,96,64,16,79,144, + 136,72,136,72,136,72,143,136,137,8,136,136,72,80,64,16, + 48,96,15,128,5,1,1,5,0,12,248,5,5,5,7,1, + 8,112,216,136,216,112,8,11,11,10,1,0,24,24,24,255, + 255,24,24,24,0,255,255,5,8,8,6,0,5,112,248,152, + 24,48,96,248,248,5,8,8,6,0,5,112,248,152,48,48, + 152,248,112,4,3,3,4,0,11,48,96,192,8,14,14,10, + 1,252,195,195,195,195,195,195,195,231,255,219,192,192,192,192, + 8,18,18,10,1,252,63,114,242,242,242,242,242,114,50,18, + 18,18,18,18,18,18,18,18,2,2,2,4,1,4,192,192, + 5,5,5,5,0,252,96,112,24,216,240,4,8,8,6,0, + 5,48,240,240,48,48,48,48,48,5,8,8,7,1,6,112, + 216,136,136,216,112,0,248,7,6,6,9,1,2,216,108,54, + 54,108,216,14,13,26,15,0,0,48,48,240,48,240,96,48, + 192,48,192,49,136,49,24,51,56,6,120,6,216,12,252,24, + 24,24,24,14,13,26,15,0,0,48,48,240,48,240,96,48, + 192,48,192,49,184,49,124,51,76,6,12,6,24,12,48,24, + 124,24,124,14,13,26,15,0,0,112,48,248,48,152,96,48, + 192,48,192,153,136,249,24,115,56,6,120,6,216,12,252,24, + 24,24,24,7,14,14,10,1,252,24,24,0,0,24,24,24, + 56,112,224,198,198,254,124,12,18,36,13,0,0,24,0,12, + 0,6,0,0,0,6,0,6,0,15,0,15,0,25,128,25, + 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, + 48,12,18,36,13,0,0,1,128,3,0,6,0,0,0,6, + 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, + 192,127,224,96,96,96,96,192,48,192,48,12,18,36,13,0, + 0,6,0,15,0,25,128,0,0,6,0,6,0,15,0,15, + 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, + 96,192,48,192,48,12,18,36,13,0,0,12,128,22,128,19, + 0,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, + 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, + 17,34,13,0,0,25,128,25,128,0,0,6,0,6,0,15, + 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, + 96,96,96,192,48,192,48,12,17,34,13,0,0,6,0,9, + 0,9,0,6,0,6,0,15,0,15,0,25,128,25,128,48, + 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,16, + 14,28,18,1,0,7,255,7,255,13,128,13,128,25,128,25, + 128,49,254,49,254,63,128,127,128,97,128,97,128,193,255,193, + 255,12,18,36,14,1,252,15,128,63,224,112,112,96,48,224, + 0,192,0,192,0,192,0,192,0,224,0,96,48,112,112,63, + 224,15,128,6,0,3,0,27,0,30,0,10,18,36,13,2, + 0,48,0,24,0,12,0,0,0,255,192,255,192,192,0,192, + 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, + 0,255,192,255,192,10,18,36,13,2,0,3,0,6,0,12, + 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, + 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, + 18,36,13,2,0,12,0,30,0,51,0,0,0,255,192,255, + 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, + 0,192,0,192,0,255,192,255,192,10,17,34,13,2,0,51, + 0,51,0,0,0,255,192,255,192,192,0,192,0,192,0,192, + 0,255,128,255,128,192,0,192,0,192,0,192,0,255,192,255, + 192,4,18,18,6,0,0,192,96,48,0,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,4,18,18,6,2,0,48, + 96,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,6,18,18,6,0,0,48,120,132,0,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,6,17,17,6,0,0,204, + 204,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 14,14,28,14,255,0,63,224,63,240,48,56,48,24,48,12, + 48,12,254,12,254,12,48,12,48,12,48,24,48,56,63,240, + 63,224,11,18,36,14,1,0,12,128,22,128,19,0,0,0, + 192,96,224,96,240,96,240,96,216,96,204,96,204,96,198,96, + 198,96,195,96,193,224,193,224,192,224,192,96,13,18,36,15, + 1,0,24,0,12,0,6,0,0,0,15,128,63,224,112,112, + 96,48,224,56,192,24,192,24,192,24,192,24,224,56,96,48, + 112,112,63,224,15,128,13,18,36,15,1,0,1,128,3,0, + 6,0,0,0,15,128,63,224,112,112,96,48,224,56,192,24, + 192,24,192,24,192,24,224,56,96,48,112,112,63,224,15,128, + 13,18,36,15,1,0,3,0,7,128,12,192,0,0,15,128, + 63,224,112,112,96,48,224,56,192,24,192,24,192,24,192,24, + 224,56,96,48,112,112,63,224,15,128,13,18,36,15,1,0, + 6,64,11,64,9,128,0,0,15,128,63,224,112,112,96,48, + 224,56,192,24,192,24,192,24,192,24,224,56,96,48,112,112, + 63,224,15,128,13,17,34,15,1,0,12,192,12,192,0,0, + 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, + 192,24,224,56,96,48,112,112,63,224,15,128,10,9,18,10, + 0,0,192,192,97,128,51,0,30,0,12,0,30,0,51,0, + 97,128,192,192,14,14,28,15,0,0,7,204,31,248,56,48, + 48,120,112,220,97,140,99,12,98,12,102,12,108,28,56,24, + 56,56,111,240,199,192,11,18,36,14,1,0,24,0,12,0, + 6,0,0,0,192,96,192,96,192,96,192,96,192,96,192,96, + 192,96,192,96,192,96,192,96,192,96,96,192,127,192,31,0, + 11,18,36,14,1,0,3,0,6,0,12,0,0,0,192,96, + 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, + 192,96,192,96,96,192,127,192,31,0,11,18,36,14,1,0, + 6,0,15,0,25,128,0,0,192,96,192,96,192,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,96,192,96,96,192, + 127,192,31,0,11,17,34,14,1,0,49,128,49,128,0,0, + 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, + 192,96,192,96,192,96,96,192,127,192,31,0,12,18,36,13, + 0,0,1,128,3,0,6,0,0,0,192,48,192,48,96,96, + 96,96,48,192,57,192,25,128,15,0,6,0,6,0,6,0, + 6,0,6,0,6,0,10,14,28,12,1,0,192,0,192,0, + 192,0,255,0,255,128,193,192,192,192,192,192,193,192,255,128, + 255,0,192,0,192,0,192,0,7,14,14,9,1,0,56,124, + 198,198,198,198,220,220,198,198,198,198,222,220,9,14,28,11, + 1,0,48,0,24,0,12,0,0,0,126,0,231,0,195,0, + 7,0,127,0,227,0,195,0,195,0,231,128,121,128,9,14, + 28,11,1,0,12,0,24,0,48,0,0,0,126,0,231,0, + 195,0,7,0,127,0,227,0,195,0,195,0,231,128,121,128, + 9,14,28,11,1,0,24,0,60,0,102,0,0,0,126,0, + 231,0,195,0,7,0,127,0,227,0,195,0,195,0,231,128, + 121,128,9,14,28,11,1,0,50,0,90,0,76,0,0,0, + 126,0,231,0,195,0,7,0,127,0,227,0,195,0,195,0, + 231,128,121,128,9,14,28,11,1,0,102,0,102,0,0,0, + 0,0,126,0,231,0,195,0,7,0,127,0,227,0,195,0, + 195,0,231,128,121,128,9,14,28,11,1,0,24,0,36,0, + 36,0,24,0,126,0,231,0,195,0,7,0,127,0,227,0, + 195,0,195,0,231,128,121,128,14,10,20,17,2,0,126,240, + 231,248,195,12,7,12,127,252,227,0,195,0,195,140,231,252, + 122,240,8,14,14,10,1,252,62,127,99,192,192,192,192,99, + 127,62,24,12,108,120,8,14,14,10,1,0,48,24,12,0, + 60,126,195,195,255,192,192,227,127,60,8,14,14,10,1,0, + 12,24,48,0,60,126,195,195,255,192,192,227,127,60,8,14, + 14,10,1,0,24,60,102,0,60,126,195,195,255,192,192,227, + 127,60,8,14,14,10,1,0,102,102,0,0,60,126,195,195, + 255,192,192,227,127,60,4,14,14,4,0,0,192,96,48,0, + 96,96,96,96,96,96,96,96,96,96,4,14,14,4,0,0, + 48,96,192,0,96,96,96,96,96,96,96,96,96,96,6,14, + 14,4,255,0,48,120,204,0,48,48,48,48,48,48,48,48, + 48,48,5,14,14,4,0,0,216,216,0,0,96,96,96,96, + 96,96,96,96,96,96,9,14,28,11,1,0,96,0,54,0, + 56,0,76,0,62,0,127,0,99,0,193,128,193,128,193,128, + 193,128,99,0,127,0,62,0,8,14,14,10,1,0,50,90, + 76,0,222,255,227,195,195,195,195,195,195,195,9,14,28,11, + 1,0,48,0,24,0,12,0,0,0,62,0,127,0,99,0, + 193,128,193,128,193,128,193,128,99,0,127,0,62,0,9,14, + 28,11,1,0,6,0,12,0,24,0,0,0,62,0,127,0, + 99,0,193,128,193,128,193,128,193,128,99,0,127,0,62,0, + 9,14,28,11,1,0,24,0,60,0,102,0,0,0,62,0, + 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, + 62,0,9,14,28,11,1,0,50,0,90,0,76,0,0,0, + 62,0,127,0,99,0,193,128,193,128,193,128,193,128,99,0, + 127,0,62,0,9,14,28,11,1,0,51,0,51,0,0,0, + 0,0,62,0,127,0,99,0,193,128,193,128,193,128,193,128, + 99,0,127,0,62,0,8,8,8,10,1,1,24,24,0,255, + 255,0,24,24,11,10,20,11,0,0,14,96,63,192,49,128, + 99,192,102,192,108,192,120,192,49,128,127,128,206,0,8,14, + 14,10,1,0,48,24,12,0,195,195,195,195,195,195,195,199, + 255,123,8,14,14,10,1,0,6,12,24,0,195,195,195,195, + 195,195,195,199,255,123,8,14,14,10,1,0,24,60,102,0, + 195,195,195,195,195,195,195,199,255,123,8,14,14,10,1,0, + 102,102,0,0,195,195,195,195,195,195,195,199,255,123,8,18, + 18,10,1,252,6,12,24,0,195,195,195,102,102,102,36,60, + 24,24,24,24,112,112,9,18,36,11,1,252,192,0,192,0, + 192,0,192,0,222,0,255,0,227,0,193,128,193,128,193,128, + 193,128,227,0,255,0,222,0,192,0,192,0,192,0,192,0, + 8,18,18,10,1,252,102,102,0,0,195,195,195,102,102,102, + 36,60,24,24,24,24,112,112}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 13 + Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 + Font Bounding box w=22 h=29 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR14r[2281] U8G_SECTION(".progmem.u8g_font_helvR14r") = { + 0,22,29,254,249,14,2,149,6,82,32,127,252,14,252,14, + 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, + 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, + 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, + 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, + 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, + 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, + 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, + 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, + 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, + 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, + 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, + 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, + 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, + 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, + 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, + 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, + 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, + 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, + 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, + 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, + 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, + 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, + 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, + 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, + 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, + 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, + 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, + 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, + 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, + 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, + 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, + 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, + 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, + 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, + 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, + 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, + 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, + 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, + 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, + 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, + 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, + 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, + 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, + 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, + 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, + 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, + 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, + 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, + 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, + 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, + 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, + 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, + 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, + 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, + 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, + 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, + 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, + 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, + 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, + 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, + 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, + 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, + 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, + 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, + 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, + 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, + 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, + 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, + 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, + 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, + 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, + 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, + 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, + 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, + 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, + 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, + 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, + 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, + 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, + 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, + 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, + 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, + 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, + 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, + 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, + 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, + 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, + 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, + 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, + 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, + 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, + 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, + 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, + 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, + 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, + 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, + 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, + 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, + 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, + 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, + 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, + 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, + 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, + 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, + 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, + 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, + 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, + 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, + 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, + 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, + 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, + 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, + 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, + 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, + 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, + 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, + 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, + 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, + 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, + 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, + 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, + 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, + 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, + 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, + 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, + 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, + 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, + 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, + 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, + 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, + 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, + 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, + 3,3,10,1,4,115,255,206,255}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 + Font Bounding box w=28 h=37 x=-3 y=-8 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent=-5 + X Font ascent =19 descent=-5 + Max Font ascent =24 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR18[7307] U8G_SECTION(".progmem.u8g_font_helvR18") = { + 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19, + 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, + 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, + 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, + 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, + 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, + 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, + 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, + 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, + 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, + 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, + 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, + 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, + 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, + 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, + 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, + 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, + 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, + 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, + 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, + 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, + 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, + 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, + 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, + 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, + 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, + 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, + 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, + 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, + 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, + 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, + 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, + 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, + 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, + 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, + 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, + 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, + 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, + 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, + 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, + 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, + 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, + 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, + 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, + 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, + 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, + 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, + 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, + 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, + 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, + 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, + 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, + 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, + 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, + 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, + 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, + 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, + 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, + 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, + 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, + 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, + 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, + 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, + 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, + 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, + 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, + 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, + 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, + 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, + 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, + 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, + 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, + 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, + 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, + 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, + 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, + 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, + 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, + 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, + 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, + 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, + 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, + 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, + 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, + 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, + 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, + 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, + 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, + 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, + 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, + 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, + 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, + 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, + 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, + 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, + 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, + 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, + 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, + 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, + 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, + 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, + 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, + 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, + 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, + 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, + 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, + 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, + 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, + 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, + 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, + 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, + 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, + 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, + 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, + 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, + 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, + 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, + 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, + 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, + 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, + 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, + 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, + 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, + 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, + 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, + 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, + 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, + 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, + 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, + 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, + 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, + 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, + 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, + 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, + 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, + 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, + 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, + 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, + 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, + 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, + 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, + 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, + 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, + 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, + 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, + 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, + 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, + 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, + 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, + 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, + 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, + 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, + 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, + 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, + 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, + 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, + 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, + 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, + 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, + 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, + 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, + 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, + 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, + 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, + 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, + 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, + 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, + 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, + 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, + 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, + 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, + 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, + 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, + 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, + 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, + 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, + 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, + 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, + 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, + 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, + 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, + 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, + 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, + 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, + 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, + 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, + 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, + 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, + 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, + 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, + 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, + 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, + 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, + 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, + 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, + 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, + 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, + 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, + 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, + 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, + 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, + 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, + 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, + 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, + 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, + 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, + 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, + 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, + 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, + 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, + 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, + 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, + 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, + 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, + 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, + 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, + 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, + 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, + 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, + 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, + 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, + 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, + 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, + 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, + 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, + 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, + 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, + 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, + 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, + 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, + 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, + 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, + 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, + 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, + 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, + 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, + 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, + 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, + 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, + 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, + 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, + 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, + 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, + 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, + 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, + 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, + 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, + 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, + 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, + 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, + 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, + 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, + 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, + 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, + 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, + 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, + 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, + 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, + 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, + 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, + 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, + 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, + 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, + 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, + 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, + 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, + 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, + 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, + 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, + 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, + 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, + 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, + 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, + 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, + 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, + 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, + 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, + 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, + 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, + 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, + 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, + 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, + 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, + 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, + 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, + 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, + 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, + 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, + 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, + 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, + 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, + 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, + 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, + 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, + 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, + 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, + 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, + 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, + 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, + 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, + 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, + 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, + 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, + 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, + 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, + 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, + 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, + 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, + 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, + 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, + 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, + 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, + 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, + 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, + 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, + 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, + 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, + 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, + 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, + 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, + 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, + 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, + 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, + 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, + 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, + 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, + 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, + 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, + 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, + 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, + 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, + 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, + 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, + 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, + 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, + 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, + 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, + 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, + 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, + 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, + 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, + 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, + 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, + 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, + 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, + 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, + 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, + 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, + 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, + 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, + 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, + 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, + 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, + 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, + 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, + 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, + 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, + 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, + 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, + 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, + 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, + 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, + 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, + 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, + 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, + 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, + 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, + 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, + 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, + 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, + 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, + 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, + 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, + 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, + 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, + 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, + 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, + 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, + 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, + 0,6,0,6,0,12,0,60,0,56,0}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y=15 dx=25 dy= 0 ascent=20 len=69 + Font Bounding box w=28 h=37 x=-3 y=-8 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent=-5 + X Font ascent =19 descent=-5 + Max Font ascent =20 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR18r[3381] U8G_SECTION(".progmem.u8g_font_helvR18r") = { + 0,28,37,253,248,19,4,37,9,49,32,127,251,20,251,19, + 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, + 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, + 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, + 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, + 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, + 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, + 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, + 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, + 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, + 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, + 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, + 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, + 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, + 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, + 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, + 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, + 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, + 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, + 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, + 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, + 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, + 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, + 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, + 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, + 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, + 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, + 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, + 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, + 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, + 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, + 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, + 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, + 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, + 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, + 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, + 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, + 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, + 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, + 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, + 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, + 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, + 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, + 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, + 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, + 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, + 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, + 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, + 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, + 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, + 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, + 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, + 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, + 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, + 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, + 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, + 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, + 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, + 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, + 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, + 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, + 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, + 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, + 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, + 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, + 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, + 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, + 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, + 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, + 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, + 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, + 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, + 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, + 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, + 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, + 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, + 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, + 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, + 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, + 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, + 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, + 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, + 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, + 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, + 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, + 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, + 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, + 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, + 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, + 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, + 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, + 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, + 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, + 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, + 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, + 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, + 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, + 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, + 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, + 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, + 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, + 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, + 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, + 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, + 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, + 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, + 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, + 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, + 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, + 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, + 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, + 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, + 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, + 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, + 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, + 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, + 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, + 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, + 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, + 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, + 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, + 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, + 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, + 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, + 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, + 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, + 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, + 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, + 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, + 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, + 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, + 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, + 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, + 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, + 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, + 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, + 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, + 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, + 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, + 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, + 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, + 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, + 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, + 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, + 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, + 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, + 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, + 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, + 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, + 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, + 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, + 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, + 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, + 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, + 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, + 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, + 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, + 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, + 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, + 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, + 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, + 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, + 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, + 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, + 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, + 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, + 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, + 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, + 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, + 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, + 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, + 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, + 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, + 207,192,195,128,255}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=29 h=32 x= 4 y=22 dx=34 dy= 0 ascent=31 len=120 + Font Bounding box w=39 h=48 x=-5 y=-11 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =31 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR24[10931] U8G_SECTION(".progmem.u8g_font_helvR24") = { + 0,39,48,251,245,25,5,215,14,105,32,255,249,31,249,25, + 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, + 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, + 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, + 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, + 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, + 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, + 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, + 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, + 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, + 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, + 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, + 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, + 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, + 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, + 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, + 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, + 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, + 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, + 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, + 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, + 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, + 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, + 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, + 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, + 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, + 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, + 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, + 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, + 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, + 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, + 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, + 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, + 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, + 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, + 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, + 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, + 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, + 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, + 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, + 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, + 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, + 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, + 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, + 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, + 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, + 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, + 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, + 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, + 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, + 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, + 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, + 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, + 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, + 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, + 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, + 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, + 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, + 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, + 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, + 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, + 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, + 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, + 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, + 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, + 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, + 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, + 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, + 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, + 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, + 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, + 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, + 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, + 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, + 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, + 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, + 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, + 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, + 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, + 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, + 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, + 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, + 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, + 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, + 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, + 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, + 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, + 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, + 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, + 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, + 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, + 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, + 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, + 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, + 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, + 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, + 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, + 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, + 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, + 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, + 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, + 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, + 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, + 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, + 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, + 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, + 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, + 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, + 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, + 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, + 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, + 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, + 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, + 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, + 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, + 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, + 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, + 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, + 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, + 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, + 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, + 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, + 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, + 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, + 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, + 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, + 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, + 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, + 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, + 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, + 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, + 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, + 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, + 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, + 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, + 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, + 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, + 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, + 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, + 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, + 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, + 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, + 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, + 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, + 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, + 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, + 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, + 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, + 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, + 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, + 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, + 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, + 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, + 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, + 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, + 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, + 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, + 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, + 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, + 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, + 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, + 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, + 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, + 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, + 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, + 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, + 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, + 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, + 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, + 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, + 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, + 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, + 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, + 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, + 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, + 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, + 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, + 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, + 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, + 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, + 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, + 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, + 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, + 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, + 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, + 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, + 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, + 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, + 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, + 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, + 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, + 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, + 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, + 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, + 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, + 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, + 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, + 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, + 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, + 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, + 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, + 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, + 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, + 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, + 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, + 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, + 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, + 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, + 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, + 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, + 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, + 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, + 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, + 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, + 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, + 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, + 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, + 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, + 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, + 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, + 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, + 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, + 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, + 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, + 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, + 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, + 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, + 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, + 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, + 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, + 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, + 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, + 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, + 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, + 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, + 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, + 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, + 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, + 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, + 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, + 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, + 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0,0,0,9,0,1,3,25,25,11,4,249,224,224,224,224, + 0,0,64,64,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,14,25,50,19,2,252,0,32,0,96,0, + 64,7,224,31,240,60,248,120,188,112,156,112,156,225,128,225, + 0,225,0,227,0,227,0,226,12,226,28,118,28,124,60,60, + 120,31,240,15,224,8,0,24,0,16,0,16,0,15,24,48, + 19,1,0,3,192,15,248,31,252,60,60,120,30,112,14,112, + 14,112,0,112,0,56,0,56,0,255,192,255,192,12,0,14, + 0,14,0,12,0,28,0,24,0,56,0,115,134,255,254,255, + 254,96,124,12,13,26,18,3,5,230,48,255,240,127,240,112, + 224,96,96,224,112,224,112,224,112,96,96,112,224,127,240,255, + 240,230,48,16,24,48,18,1,0,224,7,224,7,112,14,112, + 14,56,28,56,28,28,56,28,56,14,112,14,112,7,224,127, + 254,127,254,127,254,1,192,1,192,127,254,127,254,127,254,1, + 192,1,192,1,192,1,192,1,192,2,32,32,9,3,249,192, + 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,15, + 32,64,18,1,249,3,192,15,240,31,248,28,120,56,60,56, + 28,56,28,60,0,30,0,31,128,63,224,113,240,224,248,224, + 124,224,28,224,30,112,14,124,14,62,14,31,28,15,156,3, + 248,1,240,0,240,0,120,112,56,112,56,120,56,56,112,63, + 240,31,224,7,128,8,3,3,11,1,22,231,231,231,24,25, + 75,25,0,0,0,254,0,3,255,128,7,1,224,12,0,112, + 24,0,24,48,126,12,96,255,134,97,193,198,195,128,195,195, + 0,3,199,0,3,134,0,1,134,0,1,134,0,1,134,0, + 1,199,0,3,195,128,195,97,225,198,96,255,134,48,62,12, + 24,0,24,28,0,56,7,1,224,3,255,128,0,254,0,10, + 15,30,12,1,10,63,0,119,128,97,128,1,128,7,128,127, + 128,225,128,193,128,195,128,231,128,125,192,0,0,0,0,255, + 192,255,192,12,9,18,18,3,5,28,112,56,224,113,192,227, + 128,195,0,227,128,113,192,56,224,28,112,16,9,18,19,1, + 3,255,255,255,255,255,255,0,7,0,7,0,7,0,7,0, + 7,0,7,8,2,2,11,1,8,255,255,24,25,75,25,0, + 0,0,126,0,3,255,128,7,1,224,12,0,112,24,0,24, + 48,0,12,97,255,6,97,255,134,193,129,195,193,128,195,193, + 128,195,129,129,129,129,255,1,129,252,1,129,142,1,193,134, + 3,193,131,3,97,129,134,97,129,198,48,0,12,24,0,24, + 28,0,56,7,1,224,3,255,128,0,126,0,9,2,4,11, + 1,22,255,128,255,128,9,9,18,13,2,15,62,0,127,0, + 227,128,193,128,193,128,193,128,227,128,127,0,62,0,17,21, + 63,19,1,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,1,192,0,255,255,128,255,255,128,255, + 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,0,0,0,0,0,0,255,255,128,255,255,128, + 255,255,128,9,15,30,11,1,9,30,0,127,0,99,0,193, + 128,193,128,1,128,3,0,7,0,30,0,56,0,112,0,224, + 0,192,0,255,128,255,128,9,15,30,11,1,9,62,0,127, + 0,227,128,193,128,193,128,3,128,15,0,15,0,3,128,1, + 128,193,128,193,128,227,128,127,0,62,0,7,5,5,11,3, + 22,30,60,56,112,224,14,24,48,19,2,250,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,60,240,124,255,252,255,220,255,28, + 224,0,224,0,224,0,224,0,224,0,224,0,16,30,60,17, + 1,251,7,255,31,255,63,140,63,140,127,140,127,140,255,140, + 255,140,255,140,255,140,127,140,127,140,63,140,63,140,31,140, + 3,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, + 1,140,1,140,1,140,1,140,1,140,1,140,1,140,4,4, + 4,9,3,11,96,240,240,96,7,7,7,11,2,249,24,24, + 60,14,6,206,124,5,15,15,11,2,9,24,56,248,248,24, + 24,24,24,24,24,24,24,24,24,24,10,15,30,12,1,10, + 30,0,127,128,97,128,225,192,192,192,192,192,192,192,192,192, + 225,192,97,128,127,128,30,0,0,0,255,192,255,192,12,9, + 18,18,3,5,227,128,113,192,56,224,28,112,12,48,28,112, + 56,224,113,192,227,128,25,25,100,28,1,0,0,0,48,0, + 24,0,112,0,56,0,96,0,248,0,224,0,248,1,192,0, + 24,1,128,0,24,3,128,0,24,3,0,0,24,7,0,0, + 24,14,0,0,24,12,0,0,24,28,6,0,24,24,14,0, + 24,56,30,0,24,112,62,0,24,96,118,0,0,224,102,0, + 1,192,198,0,1,129,198,0,3,131,134,0,3,3,255,128, + 7,3,255,128,6,0,6,0,14,0,6,0,12,0,6,0, + 25,25,100,28,1,0,0,0,96,0,24,0,224,0,56,0, + 192,0,248,1,128,0,248,3,128,0,24,3,0,0,24,6, + 0,0,24,14,0,0,24,12,0,0,24,28,0,0,24,24, + 0,0,24,56,60,0,24,48,255,0,24,112,195,128,24,97, + 129,128,24,193,129,128,1,192,3,128,1,128,7,0,3,128, + 14,0,3,0,60,0,6,0,112,0,14,0,224,0,12,1, + 192,0,28,1,255,128,24,1,255,128,25,24,96,28,1,0, + 62,0,14,0,127,0,12,0,99,128,24,0,193,128,56,0, + 193,128,48,0,3,128,96,0,15,0,224,0,15,128,192,0, + 1,193,128,0,0,195,128,0,192,195,6,0,192,199,14,0, + 97,206,30,0,127,140,62,0,30,24,118,0,0,56,102,0, + 0,48,198,0,0,97,198,0,0,227,134,0,1,195,255,128, + 1,131,255,128,3,0,6,0,7,0,6,0,6,0,6,0, + 14,25,50,19,3,249,3,128,3,128,3,128,3,128,0,0, + 0,0,3,128,3,128,3,128,7,128,7,0,15,0,30,0, + 60,0,120,0,112,0,240,0,224,28,224,28,224,28,240,60, + 120,120,127,240,63,224,7,128,20,31,93,22,1,0,3,192, + 0,1,224,0,0,224,0,0,112,0,0,56,0,0,0,0, + 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,3, + 252,0,3,156,0,3,156,0,7,158,0,7,14,0,7,14, + 0,15,15,0,14,15,0,14,7,0,30,7,128,31,255,128, + 31,255,128,63,255,192,60,3,192,56,1,192,120,1,224,120, + 1,224,112,0,224,240,0,240,240,0,240,20,31,93,22,1, + 0,0,60,0,0,120,0,0,112,0,0,224,0,1,192,0, + 0,0,0,0,240,0,0,240,0,0,240,0,1,248,0,1, + 248,0,3,252,0,3,156,0,3,156,0,7,158,0,7,14, + 0,7,14,0,15,15,0,15,15,0,14,7,0,30,7,128, + 31,255,128,31,255,128,63,255,192,60,3,192,120,1,192,120, + 1,224,120,1,224,112,0,224,240,0,240,240,0,240,20,31, + 93,22,1,0,0,64,0,0,224,0,1,240,0,3,184,0, + 7,28,0,0,0,0,0,240,0,0,240,0,0,240,0,1, + 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, + 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, + 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, + 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, + 240,20,30,90,22,1,0,1,198,0,3,254,0,7,252,0, + 6,56,0,0,0,0,0,240,0,0,240,0,0,240,0,1, + 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, + 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, + 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, + 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, + 240,20,30,90,22,1,0,3,156,0,3,156,0,3,156,0, + 0,0,0,0,0,0,0,240,0,0,240,0,0,240,0,1, + 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, + 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, + 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, + 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, + 240,20,31,93,22,1,0,0,240,0,1,152,0,1,8,0, + 1,8,0,1,152,0,0,240,0,0,0,0,0,240,0,0, + 240,0,1,248,0,1,248,0,3,252,0,3,156,0,3,156, + 0,7,158,0,7,14,0,7,14,0,15,15,0,14,15,0, + 14,7,0,30,7,128,31,255,128,31,255,128,63,255,192,60, + 3,192,56,1,192,120,1,224,120,1,224,112,0,224,240,0, + 240,240,0,240,29,25,100,32,1,0,0,127,255,248,0,127, + 255,248,0,255,255,248,0,227,128,0,1,195,128,0,1,195, + 128,0,3,195,128,0,3,131,128,0,3,131,128,0,7,131, + 128,0,7,3,128,0,7,3,255,240,15,3,255,240,14,3, + 255,240,30,3,128,0,31,255,128,0,31,255,128,0,63,255, + 128,0,56,3,128,0,120,3,128,0,120,3,128,0,112,3, + 128,0,240,3,255,248,224,3,255,248,224,3,255,248,20,32, + 96,23,2,249,1,248,0,7,254,0,15,255,128,31,7,128, + 60,3,192,120,1,224,112,0,224,112,0,224,240,0,0,240, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,240,0,112,240,0,112,112,0,240,112,0,224,120,1,224, + 60,3,192,31,7,192,15,255,128,7,254,0,1,248,0,0, + 96,0,0,96,0,0,240,0,0,56,0,0,24,0,3,56, + 0,1,240,0,17,31,93,22,3,0,15,0,0,7,128,0, + 3,128,0,1,192,0,0,224,0,0,0,0,255,255,0,255, + 255,0,255,255,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,255,255,0, + 255,255,0,255,255,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,255,255, + 128,255,255,128,255,255,128,17,31,93,22,3,0,0,120,0, + 0,240,0,0,224,0,1,192,0,3,128,0,0,0,0,255, + 255,0,255,255,0,255,255,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 255,255,0,255,255,0,255,255,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,255,255,128,255,255,128,255,255,128,17,31,93,22,3,0, + 0,128,0,1,192,0,3,224,0,7,112,0,14,56,0,0, + 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,255,255,128,255,255,128,255,255,128,17,30,90, + 22,3,0,28,56,0,28,56,0,28,56,0,0,0,0,0, + 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,255,255,128,255,255,128,255,255,128,7,31,31, + 9,0,0,240,120,56,28,14,0,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,7,31,31,9,2,0,30,60,56,112,224,0,112,112, + 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, + 112,112,112,112,112,112,112,9,31,62,9,0,0,8,0,28, + 0,62,0,119,0,227,128,0,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,9,30,60,9,0, + 0,227,128,227,128,227,128,0,0,0,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,21,25,75, + 23,0,0,31,254,0,31,255,128,31,255,192,28,3,224,28, + 0,224,28,0,240,28,0,112,28,0,112,28,0,56,28,0, + 56,28,0,56,255,192,56,255,192,56,28,0,56,28,0,56, + 28,0,56,28,0,120,28,0,112,28,0,112,28,0,240,28, + 0,224,28,3,192,31,255,192,31,255,128,31,254,0,19,30, + 90,24,2,0,1,198,0,3,254,0,7,252,0,6,56,0, + 0,0,0,240,0,224,248,0,224,248,0,224,252,0,224,252, + 0,224,254,0,224,239,0,224,231,0,224,231,128,224,227,192, + 224,227,192,224,225,224,224,224,224,224,224,240,224,224,120,224, + 224,56,224,224,60,224,224,28,224,224,30,224,224,15,224,224, + 7,224,224,7,224,224,3,224,224,1,224,224,1,224,23,31, + 93,25,1,0,0,240,0,0,120,0,0,56,0,0,28,0, + 0,14,0,0,0,0,0,254,0,3,255,128,15,255,224,31, + 1,240,62,0,248,60,0,120,120,0,60,112,0,28,112,0, + 28,240,0,30,224,0,14,224,0,14,224,0,14,224,0,14, + 224,0,14,240,0,30,240,0,30,112,0,28,120,0,60,60, + 0,120,62,0,248,31,1,240,15,255,224,3,255,128,0,254, + 0,23,31,93,25,1,0,0,15,0,0,30,0,0,28,0, + 0,56,0,0,112,0,0,0,0,0,254,0,3,255,128,15, + 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, + 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, + 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, + 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, + 128,0,254,0,23,31,93,25,1,0,0,16,0,0,56,0, + 0,124,0,0,238,0,1,199,0,0,0,0,0,254,0,3, + 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, + 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, + 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, + 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, + 224,3,255,128,0,254,0,23,30,90,25,1,0,0,113,128, + 0,255,128,1,255,0,1,142,0,0,0,0,0,254,0,3, + 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, + 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, + 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, + 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, + 224,3,255,128,0,254,0,23,29,87,25,1,0,1,195,128, + 1,195,128,1,195,128,0,0,0,0,254,0,3,255,128,15, + 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, + 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, + 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, + 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, + 128,0,254,0,15,15,30,19,2,1,64,4,224,14,240,30, + 120,60,60,120,31,240,15,224,7,192,7,192,15,224,30,240, + 60,120,120,60,240,30,96,12,23,25,75,25,1,0,0,254, + 6,3,255,140,15,255,248,31,1,240,62,0,248,60,0,248, + 120,1,188,112,3,28,112,6,28,240,6,30,224,12,14,224, + 24,14,224,48,14,224,96,14,224,192,14,225,128,30,243,0, + 30,118,0,28,124,0,60,60,0,120,62,0,248,63,1,240, + 111,255,224,195,255,128,0,254,0,18,31,93,24,3,0,7, + 128,0,3,192,0,1,192,0,0,224,0,0,112,0,0,0, + 0,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,240,3,192,120,7,128, + 124,15,128,63,255,0,31,254,0,3,240,0,18,31,93,24, + 3,0,0,120,0,0,240,0,0,224,0,1,192,0,3,128, + 0,0,0,0,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,240,3,192, + 120,7,128,124,15,128,63,255,0,31,254,0,3,240,0,18, + 31,93,24,3,0,0,64,0,0,224,0,1,240,0,3,184, + 0,7,28,0,0,0,0,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, + 240,0,18,30,90,24,3,0,14,28,0,14,28,0,14,28, + 0,0,0,0,0,0,0,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, + 240,0,19,31,93,22,1,0,0,60,0,0,120,0,0,112, + 0,0,224,0,1,192,0,0,0,0,224,0,224,240,1,224, + 112,1,192,120,3,192,56,3,128,60,7,128,28,15,0,30, + 15,0,15,30,0,7,28,0,7,188,0,3,184,0,3,248, + 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,17,25,75,22,3,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,255,248,0,255,254,0, + 255,255,0,224,15,0,224,7,0,224,7,128,224,3,128,224, + 3,128,224,7,128,224,7,0,224,15,0,255,254,0,255,252, + 0,255,248,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,14,25,50,20,4,0,15,128,63,224, + 127,240,120,240,240,120,224,56,224,56,224,56,224,120,224,240, + 227,224,227,224,227,240,224,120,224,60,224,28,224,28,224,28, + 224,28,224,28,224,56,224,120,231,240,231,224,231,128,16,25, + 50,18,1,0,15,0,7,128,3,128,1,192,0,224,0,0, + 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, + 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, + 121,252,127,223,63,143,16,25,50,18,1,0,0,240,1,224, + 1,192,3,128,7,0,0,0,0,0,15,224,63,248,60,124, + 112,28,112,28,0,28,0,28,0,252,31,252,127,156,120,28, + 240,28,224,28,224,60,224,124,120,252,127,223,63,143,16,25, + 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, + 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, + 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, + 120,252,127,223,63,143,16,24,48,18,1,0,7,24,15,248, + 31,240,24,224,0,0,0,0,15,224,63,248,60,124,112,28, + 112,28,0,28,0,28,0,252,31,252,127,156,120,28,240,28, + 224,28,224,60,224,124,120,252,127,223,63,143,16,23,46,18, + 1,0,14,112,14,112,14,112,0,0,0,0,15,224,63,248, + 60,252,112,28,112,28,0,28,0,28,0,252,31,252,127,156, + 120,28,240,28,224,28,224,60,224,124,121,252,127,223,63,143, + 16,25,50,18,1,0,3,128,6,192,4,64,4,64,6,192, + 3,128,0,0,15,224,63,248,60,124,112,28,112,28,0,28, + 0,28,0,252,31,252,127,156,120,28,240,28,224,28,224,60, + 224,124,120,252,127,223,63,143,26,18,72,29,1,0,7,192, + 248,0,31,241,254,0,60,127,143,0,112,62,3,128,112,30, + 3,128,0,28,1,192,0,28,1,192,0,252,1,192,15,255, + 255,192,63,255,255,192,126,31,255,192,240,28,0,0,224,28, + 1,192,224,30,1,192,224,126,3,128,248,247,143,0,127,231, + 255,0,63,129,252,0,14,25,50,17,1,249,7,192,31,240, + 63,248,56,56,112,28,112,28,224,0,224,0,224,0,224,0, + 224,0,224,28,224,28,112,56,120,120,63,240,31,224,7,128, + 3,0,3,0,7,128,1,192,0,192,25,192,15,128,15,25, + 50,18,1,0,30,0,15,0,7,0,3,128,1,192,0,0, + 0,0,7,192,31,240,62,120,120,28,112,28,240,14,224,14, + 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, + 60,124,31,240,15,224,15,25,50,18,1,0,1,224,3,192, + 3,128,7,0,14,0,0,0,0,0,7,192,31,240,60,120, + 120,28,112,28,240,14,224,14,224,14,255,254,255,254,224,0, + 224,0,224,14,112,14,120,28,60,124,31,240,15,224,15,25, + 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, + 0,0,7,192,31,240,60,120,120,28,112,28,240,14,224,14, + 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, + 60,124,31,240,7,192,15,23,46,18,1,0,28,112,28,112, + 28,112,0,0,0,0,7,192,31,240,60,120,120,28,112,28, + 240,14,224,14,224,14,255,254,255,254,224,0,224,0,224,14, + 112,14,120,28,60,124,31,240,7,192,7,25,25,9,0,0, + 240,120,56,28,14,0,0,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,7,25,25,9,2,0,30, + 60,56,112,224,0,0,112,112,112,112,112,112,112,112,112,112, + 112,112,112,112,112,112,112,112,9,25,50,9,0,0,8,0, + 28,0,62,0,119,0,227,128,0,0,0,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 8,23,23,9,1,0,231,231,231,0,0,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,15,25,50, + 19,1,0,120,64,60,224,31,192,15,128,31,128,59,192,17, + 224,7,240,31,248,63,248,120,60,112,28,112,28,224,14,224, + 14,224,14,224,14,224,14,224,14,112,28,112,28,120,60,63, + 248,31,240,7,192,14,24,48,18,2,0,14,48,31,240,63, + 224,49,192,0,0,0,0,3,192,239,240,255,248,248,60,240, + 28,240,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,28,224,28,15,25,50,19,1, + 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,7, + 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, + 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, + 240,7,192,15,25,50,19,1,0,1,224,3,192,3,128,7, + 0,14,0,0,0,0,0,7,192,31,240,63,248,120,60,112, + 28,112,28,224,14,224,14,224,14,224,14,224,14,224,14,112, + 28,112,28,120,60,63,248,31,240,7,192,15,25,50,19,1, + 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,7, + 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, + 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, + 240,7,192,15,24,48,19,1,0,14,48,31,240,63,224,49, + 192,0,0,0,0,7,192,31,240,63,248,120,60,112,28,112, + 28,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, + 28,120,60,63,248,31,240,7,192,15,23,46,19,1,0,28, + 112,28,112,28,112,0,0,0,0,7,192,31,240,63,248,120, + 60,112,28,112,28,224,14,224,14,224,14,224,14,224,14,224, + 14,112,28,112,28,120,60,63,248,31,240,7,192,15,15,30, + 19,2,1,3,128,3,128,3,128,0,0,0,0,0,0,255, + 254,255,254,255,254,0,0,0,0,0,0,3,128,3,128,3, + 128,16,18,36,19,2,0,7,195,31,246,63,252,120,120,112, + 28,112,60,224,110,224,206,225,142,227,14,230,14,236,14,120, + 28,112,28,56,60,127,248,223,240,135,192,14,25,50,19,2, + 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,224, + 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, + 220,15,0,14,25,50,19,2,0,1,224,3,192,3,128,7, + 0,14,0,0,0,0,0,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 60,224,60,240,252,127,252,63,220,15,0,14,25,50,19,2, + 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,224, + 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, + 220,15,0,14,23,46,19,2,0,28,224,28,224,28,224,0, + 0,0,0,224,28,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,28,224,28,224,60,224,60,240, + 252,127,252,63,220,15,0,14,32,64,17,1,249,0,240,1, + 224,1,192,3,128,7,0,0,0,0,0,224,28,224,28,224, + 60,112,56,112,56,112,56,120,112,56,112,56,240,60,224,28, + 224,29,192,29,192,15,192,15,128,15,128,7,0,7,0,7, + 0,14,0,14,0,30,0,124,0,124,0,112,0,15,31,62, + 19,2,250,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,231,224,239,240,255,248,248,60,240,28,240,30,224,14,224, + 14,224,14,224,14,224,14,224,14,240,28,240,28,248,60,255, + 248,239,240,227,192,224,0,224,0,224,0,224,0,224,0,224, + 0,14,30,60,17,1,249,28,112,28,112,28,112,0,0,0, + 0,224,28,224,28,224,60,112,56,112,56,112,120,120,112,56, + 112,56,240,60,224,28,224,29,192,29,192,15,192,15,128,15, + 128,7,0,7,0,7,0,14,0,14,0,30,0,124,0,124, + 0,112,0}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=17 h=24 x= 3 y=15 dx=19 dy= 0 ascent=26 len=48 + Font Bounding box w=39 h=48 x=-5 y=-11 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =26 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR24n[702] U8G_SECTION(".progmem.u8g_font_helvR24n") = { + 0,39,48,251,245,24,0,0,0,0,42,57,0,26,251,24, + 0,10,11,22,13,1,15,12,0,12,0,76,128,237,192,127, + 128,63,0,30,0,63,0,115,128,225,192,64,128,17,16,48, + 19,1,1,1,192,0,1,192,0,1,192,0,1,192,0,1, + 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, + 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,3,9,9,9,3,251,224,224,224,224,32,96,96, + 192,128,8,2,2,11,1,8,255,255,3,4,4,9,3,0, + 224,224,224,224,9,24,48,9,0,0,1,128,1,128,1,128, + 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, + 12,0,8,0,24,0,24,0,24,0,48,0,48,0,48,0, + 96,0,96,0,96,0,192,0,192,0,15,24,48,18,1,0, + 7,192,31,240,63,248,60,120,120,60,112,28,112,28,224,14, + 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, + 224,14,112,28,112,28,112,60,60,120,63,248,31,240,7,192, + 8,24,24,18,3,0,3,7,7,15,63,255,255,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,24, + 48,18,1,0,7,192,31,240,63,248,120,60,112,28,240,14, + 224,14,224,14,0,14,0,28,0,60,0,120,0,240,3,224, + 7,192,31,0,60,0,120,0,112,0,224,0,224,0,255,254, + 255,254,255,254,15,24,48,18,1,0,7,192,31,240,63,248, + 56,56,112,28,112,28,112,28,112,28,0,28,0,56,3,248, + 3,240,3,248,0,60,0,30,0,14,224,14,224,14,224,14, + 112,28,120,60,63,248,31,240,7,192,16,24,48,18,0,0, + 0,24,0,56,0,120,0,120,0,248,1,248,3,184,3,184, + 7,56,14,56,14,56,28,56,56,56,56,56,112,56,224,56, + 255,255,255,255,255,255,0,56,0,56,0,56,0,56,0,56, + 15,24,48,18,1,0,63,252,63,252,63,252,56,0,56,0, + 56,0,112,0,112,0,119,192,127,240,127,248,120,124,112,28, + 0,30,0,14,0,14,0,14,224,14,224,30,240,28,120,124, + 127,248,63,240,15,128,15,24,48,18,1,0,3,192,15,240, + 31,248,60,56,56,28,112,28,112,0,112,0,96,0,227,192, + 239,240,255,248,248,60,240,28,240,14,224,14,224,14,96,14, + 112,14,112,28,56,60,63,248,31,240,7,192,15,24,48,18, + 1,0,255,254,255,254,255,254,0,14,0,28,0,24,0,56, + 0,112,0,112,0,224,0,224,1,192,1,192,3,128,3,128, + 7,0,7,0,7,0,14,0,14,0,14,0,28,0,28,0, + 28,0,15,24,48,18,1,0,7,192,31,240,63,248,56,60, + 112,28,112,28,112,28,112,28,120,60,60,120,31,240,15,224, + 63,248,120,60,112,28,224,14,224,14,224,14,224,14,240,28, + 120,60,63,248,31,240,7,192,15,24,48,18,1,0,7,192, + 31,240,63,248,120,124,112,60,240,28,224,30,224,14,224,14, + 224,14,224,30,224,30,112,62,127,254,63,238,15,206,0,14, + 0,28,224,28,240,60,120,120,63,240,63,224,15,128}; +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=29 h=32 x= 4 y=20 dx=34 dy= 0 ascent=27 len=120 + Font Bounding box w=39 h=48 x=-5 y=-11 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =27 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_helvR24r[4992] U8G_SECTION(".progmem.u8g_font_helvR24r") = { + 0,39,48,251,245,25,5,215,14,105,32,127,249,27,249,25, + 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, + 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, + 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, + 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, + 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, + 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, + 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, + 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, + 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, + 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, + 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, + 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, + 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, + 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, + 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, + 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, + 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, + 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, + 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, + 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, + 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, + 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, + 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, + 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, + 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, + 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, + 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, + 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, + 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, + 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, + 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, + 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, + 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, + 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, + 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, + 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, + 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, + 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, + 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, + 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, + 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, + 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, + 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, + 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, + 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, + 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, + 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, + 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, + 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, + 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, + 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, + 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, + 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, + 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, + 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, + 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, + 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, + 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, + 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, + 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, + 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, + 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, + 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, + 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, + 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, + 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, + 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, + 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, + 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, + 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, + 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, + 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, + 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, + 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, + 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, + 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, + 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, + 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, + 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, + 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, + 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, + 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, + 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, + 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, + 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, + 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, + 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, + 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, + 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, + 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, + 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, + 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, + 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, + 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, + 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, + 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, + 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, + 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, + 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, + 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, + 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, + 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, + 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, + 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, + 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, + 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, + 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, + 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, + 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, + 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, + 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, + 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, + 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, + 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, + 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, + 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, + 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, + 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, + 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, + 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, + 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, + 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, + 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, + 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, + 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, + 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, + 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, + 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, + 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, + 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, + 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, + 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, + 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, + 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, + 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, + 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, + 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, + 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, + 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, + 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, + 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, + 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, + 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, + 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, + 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, + 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, + 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, + 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, + 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, + 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, + 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, + 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, + 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, + 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, + 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, + 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, + 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, + 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, + 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, + 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, + 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, + 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, + 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, + 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, + 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, + 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, + 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, + 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, + 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, + 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, + 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, + 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, + 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, + 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, + 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, + 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, + 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, + 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, + 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, + 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, + 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, + 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, + 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, + 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, + 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, + 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, + 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, + 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, + 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, + 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, + 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, + 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, + 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, + 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, + 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, + 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, + 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, + 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, + 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, + 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, + 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, + 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, + 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, + 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, + 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, + 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, + 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, + 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, + 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, + 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, + 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, + 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, + 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, + 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, + 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, + 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, + 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, + 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, + 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, + 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, + 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, + 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, + 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, + 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, + 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, + 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, + 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, + 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, + 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, + 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, + 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, + 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, + 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, + 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, + 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, + 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, + 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, + 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, + 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, + 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, + 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, + 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, + 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, + 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, + 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, + 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, + 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, + 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, + 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, + 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255 + }; +/* + Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 9 h=10 x= 1 y= 4 dx=10 dy= 0 ascent=10 len=14 + Font Bounding box w= 9 h=11 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-1 + X Font ascent = 7 descent=-1 + Max Font ascent =10 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[2193] U8G_SECTION(".progmem.u8g_font_lucasfont_alternate") = { + 0,9,11,0,255,7,1,148,3,22,32,255,255,10,255,7, + 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, + 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, + 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, + 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, + 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, + 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, + 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, + 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, + 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, + 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, + 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, + 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, + 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, + 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, + 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, + 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, + 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, + 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, + 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, + 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, + 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, + 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, + 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, + 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, + 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, + 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, + 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, + 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, + 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, + 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, + 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, + 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, + 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, + 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, + 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, + 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, + 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, + 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, + 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, + 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, + 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, + 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, + 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, + 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, + 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, + 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, + 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, + 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, + 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, + 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, + 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, + 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, + 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, + 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, + 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, + 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, + 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, + 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, + 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, + 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, + 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, + 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, + 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, + 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, + 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, + 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, + 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, + 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, + 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, + 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, + 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,1,7,7,2,0,0,128,0,0,128,128,128,128, + 5,7,7,6,0,0,32,112,168,160,168,112,32,5,7,7, + 6,0,0,56,64,64,240,64,64,248,255,5,7,7,6,0, + 0,136,136,80,32,248,32,32,1,7,7,2,0,0,128,128, + 128,0,128,128,128,255,255,8,8,8,9,0,255,60,66,153, + 161,161,153,66,60,255,6,5,5,7,0,1,36,72,144,72, + 36,5,3,3,6,0,1,248,8,8,5,1,1,6,0,3, + 248,255,255,255,5,7,7,6,0,0,32,32,248,32,32,0, + 248,255,255,255,255,6,7,7,7,0,0,124,244,244,116,20, + 20,20,1,1,1,2,0,3,128,255,255,255,6,5,5,7, + 0,1,144,72,36,72,144,255,255,255,5,7,7,6,0,0, + 32,0,32,64,128,136,112,5,10,10,6,0,0,64,32,0, + 112,136,136,248,136,136,136,5,10,10,6,0,0,16,32,0, + 112,136,136,248,136,136,136,5,10,10,6,0,0,32,80,0, + 112,136,136,248,136,136,136,5,10,10,6,0,0,104,144,0, + 112,136,136,248,136,136,136,5,9,9,6,0,0,80,0,112, + 136,136,248,136,136,136,5,10,10,6,0,0,32,80,32,112, + 136,136,248,136,136,136,9,7,14,10,0,0,119,128,136,0, + 136,0,255,0,136,0,136,0,143,128,255,5,10,10,6,0, + 0,64,32,0,248,128,128,240,128,128,248,5,10,10,6,0, + 0,16,32,0,248,128,128,240,128,128,248,5,10,10,6,0, + 0,32,80,0,248,128,128,240,128,128,248,5,9,9,6,0, + 0,80,0,248,128,128,240,128,128,248,2,10,10,3,0,0, + 128,64,0,64,64,64,64,64,64,64,2,10,10,4,1,0, + 64,128,0,128,128,128,128,128,128,128,3,10,10,4,0,0, + 64,160,0,64,64,64,64,64,64,64,3,9,9,4,0,0, + 160,0,64,64,64,64,64,64,64,6,7,7,7,0,0,120, + 68,68,244,68,68,120,6,10,10,7,0,0,100,152,0,132, + 196,164,148,140,132,132,5,10,10,6,0,0,64,32,0,112, + 136,136,136,136,136,112,5,10,10,6,0,0,16,32,0,112, + 136,136,136,136,136,112,5,10,10,6,0,0,32,80,0,112, + 136,136,136,136,136,112,5,10,10,6,0,0,104,144,0,112, + 136,136,136,136,136,112,5,8,8,6,0,0,136,112,136,136, + 136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,255, + 5,10,10,6,0,0,64,32,0,136,136,136,136,136,136,112, + 5,10,10,6,0,0,16,32,0,136,136,136,136,136,136,112, + 5,10,10,6,0,0,32,80,0,136,136,136,136,136,136,112, + 5,8,8,6,0,0,136,0,136,136,136,136,136,112,5,10, + 10,6,0,0,16,32,0,136,136,136,80,32,32,32,255,4, + 8,8,5,0,255,96,144,144,160,144,144,160,128,5,8,8, + 6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,0, + 0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,32, + 80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,0, + 112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,120, + 136,120,5,9,9,6,0,0,32,80,32,0,112,8,120,136, + 120,9,5,10,10,0,0,119,0,8,128,127,0,136,0,119, + 128,255,5,8,8,6,0,0,64,32,0,112,136,240,128,120, + 5,8,8,6,0,0,16,32,0,112,136,240,128,120,5,8, + 8,6,0,0,32,80,0,112,136,240,128,120,5,7,7,6, + 0,0,80,0,112,136,240,128,120,2,7,7,3,0,0,128, + 64,0,64,64,64,64,2,7,7,3,0,0,64,128,0,128, + 128,128,128,3,7,7,4,0,0,64,160,0,64,64,64,64, + 3,6,6,4,0,0,160,0,64,64,64,64,255,5,8,8, + 6,0,0,104,144,0,240,136,136,136,136,5,8,8,6,0, + 0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,16, + 32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,0, + 112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,136, + 136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,112, + 5,5,5,6,0,1,32,0,248,0,32,255,5,8,8,6, + 0,0,64,32,0,136,136,136,136,120,5,8,8,6,0,0, + 16,32,0,136,136,136,136,120,5,8,8,6,0,0,32,80, + 0,136,136,136,136,120,5,7,7,6,0,0,80,0,136,136, + 136,136,120,5,9,9,6,0,255,16,32,0,136,136,136,120, + 8,112,255,5,8,8,6,0,255,80,0,136,136,136,120,8, + 112}; +/* + Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) + Capital A Height: 0, '1' Height: 7 + Calculated Max Values w= 7 h= 7 x= 0 y= 3 dx= 8 dy= 0 ascent= 7 len= 7 + Font Bounding box w= 9 h=11 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 7 descent= 0 + X Font ascent = 7 descent= 0 + Max Font ascent = 7 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[206] U8G_SECTION(".progmem.u8g_font_lucasfont_alternaten") = { + 0,9,11,0,255,7,0,0,0,0,42,57,0,7,255,7, + 0,7,5,5,8,0,1,68,40,254,40,68,5,5,5,6, + 0,1,32,32,248,32,32,2,3,3,3,0,255,64,64,128, + 6,1,1,7,0,3,252,1,2,2,2,0,0,128,128,7, + 7,7,8,0,0,2,4,8,16,32,64,128,5,7,7,6, + 0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,32, + 96,32,32,32,32,248,5,7,7,6,0,0,112,136,8,16, + 32,64,248,5,7,7,6,0,0,240,8,8,120,8,8,240, + 5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7, + 6,0,0,248,128,112,8,8,136,112,5,7,7,6,0,0, + 112,136,128,240,136,136,112,5,7,7,6,0,0,248,8,16, + 32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136, + 112,5,7,7,6,0,0,112,136,136,120,8,136,112}; +/* + Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 7 h= 7 x= 0 y= 4 dx= 8 dy= 0 ascent= 7 len= 7 + Font Bounding box w= 9 h=11 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-1 + X Font ascent = 7 descent=-1 + Max Font ascent = 7 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[1138] U8G_SECTION(".progmem.u8g_font_lucasfont_alternater") = { + 0,9,11,0,255,7,1,148,3,22,32,127,255,7,255,7, + 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, + 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, + 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, + 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, + 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, + 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, + 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, + 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, + 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, + 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, + 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, + 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, + 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, + 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, + 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, + 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, + 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, + 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, + 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, + 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, + 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, + 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, + 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, + 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, + 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, + 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, + 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, + 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, + 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, + 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, + 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, + 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, + 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, + 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, + 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, + 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, + 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, + 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, + 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, + 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, + 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, + 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, + 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, + 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, + 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, + 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, + 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, + 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, + 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, + 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, + 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, + 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, + 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, + 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, + 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, + 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, + 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, + 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, + 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, + 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, + 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, + 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, + 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, + 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, + 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, + 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, + 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, + 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, + 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, + 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, + 152,255}; +/* + Fontname: m2icon5 + Copyright: public domain + Capital A Height: 5, '1' Height: 0 + Calculated Max Values w= 9 h= 6 x= 0 y= 0 dx=10 dy= 0 ascent= 5 len=10 + Font Bounding box w= 9 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_m2icon_5[221] U8G_SECTION(".progmem.u8g_font_m2icon_5") = { + 1,9,6,0,255,5,0,17,0,172,65,104,255,5,255,5, + 255,2,117,149,28,254,130,130,254,2,69,133,112,208,144,144, + 240,2,84,100,216,112,112,216,2,117,133,6,12,216,112,32, + 2,68,84,240,144,144,240,2,68,84,240,144,208,240,2,68, + 84,240,240,240,240,2,85,101,248,136,136,136,248,2,85,101, + 248,136,168,136,248,2,85,101,248,248,248,248,248,2,68,84, + 224,176,240,112,2,68,84,224,176,240,112,2,68,84,224,240, + 240,112,2,85,101,240,152,152,248,120,2,85,101,240,152,216, + 248,120,2,85,101,240,248,248,248,120,2,68,84,96,144,144, + 96,2,68,84,96,144,208,96,2,68,84,96,240,240,96,255, + 255,255,255,255,255,255,255,255,255,255,255,255,2,117,133,32, + 64,254,64,32,2,85,101,32,112,168,32,32,255,255,255,2, + 149,170,28,0,254,0,130,0,191,128,255,0,1,22,38,128, + 128,128,128,128,128,2,85,101,32,32,248,32,32}; +/* + Fontname: m2icon_7 + Copyright: public domain + Capital A Height: 7, '1' Height: 0 + Calculated Max Values w=12 h= 8 x= 0 y= 1 dx=13 dy= 0 ascent= 7 len=14 + Font Bounding box w=12 h= 8 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-1 + X Font ascent = 7 descent=-1 + Max Font ascent = 7 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_m2icon_7[275] U8G_SECTION(".progmem.u8g_font_m2icon_7") = { + 1,12,8,0,255,7,0,17,0,214,65,104,255,7,255,7, + 255,2,151,174,15,0,255,128,128,128,128,128,128,128,128,128, + 255,128,2,87,103,56,104,232,136,136,136,248,3,84,100,216, + 112,112,216,2,134,150,3,6,12,216,112,32,2,102,118,252, + 132,132,132,132,252,2,102,118,252,132,180,180,132,252,2,102, + 118,252,252,252,252,252,252,2,119,151,254,130,130,130,130,130, + 254,2,119,151,254,130,186,186,186,130,254,2,119,151,254,254, + 254,254,254,254,254,2,102,118,248,140,140,140,252,124,2,102, + 118,248,140,172,140,252,124,2,102,134,248,252,252,252,252,124, + 2,119,151,252,134,134,134,134,254,126,2,119,151,252,134,182, + 182,134,254,126,2,119,151,252,254,254,254,254,254,126,2,102, + 118,120,204,132,132,204,120,2,102,118,120,204,180,180,204,120, + 2,102,118,120,252,252,252,252,120,255,255,255,255,255,255,255, + 255,255,255,255,255,255,2,135,151,16,48,95,129,95,48,16, + 2,119,135,16,40,68,238,40,40,56,255,255,255,2,199,222, + 15,0,255,128,128,128,159,240,160,32,192,64,255,128,1,24, + 40,128,128,128,128,128,128,128,128,2,119,199,16,0,16,186, + 16,0,16}; +/* + Fontname: m2icon_9 + Copyright: public domain + Capital A Height: 8, '1' Height: 0 + Calculated Max Values w=13 h=11 x= 0 y= 1 dx=12 dy= 0 ascent= 9 len=18 + Font Bounding box w=13 h=11 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_m2icon_9[471] U8G_SECTION(".progmem.u8g_font_m2icon_9") = { + 0,13,11,0,254,8,0,17,1,111,65,105,254,9,254,8, + 254,10,8,16,11,0,0,15,128,255,192,128,64,128,64,128, + 64,128,64,128,64,255,192,6,8,8,7,0,0,60,84,148, + 244,132,132,132,252,6,5,5,7,0,1,204,120,48,120,204, + 10,7,14,12,0,0,0,192,1,128,3,0,198,0,108,0, + 56,0,16,0,8,8,8,9,0,0,255,129,129,129,129,129, + 129,255,8,8,8,9,0,0,255,129,189,189,189,189,129,255, + 8,8,8,9,0,0,255,255,255,255,255,255,255,255,9,9, + 18,10,0,0,255,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,255,128,9,9,18,10,0,0,255,128,128,128, + 190,128,190,128,190,128,190,128,190,128,128,128,255,128,9,9, + 18,11,0,0,255,128,255,128,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,8,8,8,8,0,0,254,131,131,131, + 131,131,255,127,8,8,8,9,0,0,254,131,187,187,187,131, + 255,127,8,8,8,9,0,0,254,255,255,255,255,255,255,127, + 9,9,18,10,0,0,255,0,129,128,129,128,129,128,129,128, + 129,128,129,128,255,128,127,128,9,9,18,10,0,0,255,0, + 129,128,189,128,189,128,189,128,189,128,129,128,255,128,127,128, + 9,9,18,10,0,0,255,0,255,128,255,128,255,128,255,128, + 255,128,255,128,255,128,127,128,8,8,8,9,0,0,60,66, + 129,129,129,129,66,60,8,8,8,9,0,0,60,66,153,189, + 189,153,66,60,8,8,8,9,0,0,60,126,255,255,255,255, + 126,60,255,255,255,255,255,255,255,255,255,255,255,255,255,10, + 8,16,11,0,0,24,0,40,0,79,192,128,64,128,64,79, + 192,40,0,24,0,8,9,9,9,0,0,24,36,66,129,231, + 36,36,36,60,255,255,255,13,8,16,11,0,0,15,128,255, + 192,128,64,128,64,159,248,160,16,192,32,255,192,1,11,11, + 2,0,254,128,128,128,128,128,128,128,128,128,128,128,9,9, + 18,10,0,0,8,0,0,0,8,0,8,0,190,128,8,0, + 8,0,0,0,8,0,255}; +/* + Fontname: micro + Copyright: Public domain font. Share and enjoy. + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 3 h= 5 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 4 h= 5 x= 0 y= 0 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_micro[855] U8G_SECTION(".progmem.u8g_font_micro") = { + 1,4,5,0,0,5,0,255,1,245,32,255,0,5,0,5, + 0,7,0,64,2,37,69,192,192,192,0,192,5,50,66,160, + 160,2,53,69,160,224,160,224,160,2,53,69,64,224,192,96, + 224,3,52,68,160,96,192,160,2,53,69,64,64,224,192,64, + 21,34,66,64,192,18,37,69,64,128,128,128,64,2,37,69, + 128,64,64,64,128,2,53,69,160,64,224,64,160,3,51,67, + 64,224,64,2,34,66,64,192,4,49,65,224,2,34,66,192, + 192,2,53,69,32,32,64,64,128,2,53,69,64,160,160,160, + 64,2,37,69,64,192,64,64,64,2,53,69,192,32,64,128, + 224,2,53,69,192,32,96,32,224,2,53,69,160,160,160,224, + 32,2,53,69,224,128,192,32,192,2,53,69,96,128,224,160, + 224,2,53,69,224,32,32,64,64,2,53,69,224,160,224,160, + 224,2,53,69,224,160,224,32,192,2,37,69,192,192,0,192, + 192,2,37,69,192,192,0,64,192,2,53,69,32,64,128,64, + 32,3,51,67,224,0,224,2,53,69,128,64,32,64,128,2, + 53,69,224,32,96,0,64,2,53,69,96,160,192,128,96,2, + 53,69,224,160,224,160,160,2,53,69,224,160,192,160,224,2, + 53,69,224,128,128,128,224,2,53,69,192,160,160,160,192,2, + 53,69,224,128,224,128,224,2,53,69,224,128,224,128,128,2, + 53,69,224,128,160,160,224,2,53,69,160,160,224,160,160,2, + 53,69,224,64,64,64,224,2,53,69,32,32,32,160,224,2, + 53,69,160,160,192,160,160,2,53,69,128,128,128,128,224,2, + 53,69,160,224,160,160,160,2,53,69,224,160,160,160,160,2, + 53,69,224,160,160,160,224,2,53,69,224,160,224,128,128,2, + 53,69,224,160,160,192,96,2,53,69,224,160,192,160,160,2, + 53,69,224,128,224,32,224,2,53,69,224,64,64,64,64,2, + 53,69,160,160,160,160,224,2,53,69,160,160,160,160,64,2, + 53,69,160,160,160,224,160,2,53,69,160,224,64,224,160,2, + 53,69,160,160,224,64,64,2,53,69,224,32,64,128,224,18, + 37,69,192,128,128,128,192,2,53,69,128,128,64,64,32,2, + 37,69,192,64,64,64,192,5,50,66,64,160,2,49,65,224, + 21,34,66,128,192,2,52,68,224,96,160,224,2,53,69,128, + 224,160,160,224,2,52,68,224,128,128,224,2,53,69,32,224, + 160,160,224,2,52,68,224,160,192,224,2,53,69,96,128,192, + 128,128,2,52,68,224,160,96,224,2,53,69,128,224,160,160, + 160,18,20,68,128,128,128,128,2,52,68,32,32,160,224,2, + 53,69,128,160,192,192,160,2,37,69,192,64,64,64,64,2, + 52,68,160,224,160,160,2,52,68,224,160,160,160,2,52,68, + 224,160,160,224,2,52,68,224,160,224,128,2,52,68,224,160, + 224,32,2,52,68,224,160,128,128,2,52,68,224,192,96,224, + 2,53,69,64,224,64,64,96,2,52,68,160,160,160,224,2, + 52,68,160,160,160,64,2,52,68,160,160,224,160,2,52,68, + 160,64,64,160,2,52,68,160,160,96,192,2,52,68,224,96, + 192,224,2,53,69,96,64,192,64,96,18,21,69,128,128,128, + 128,128,2,53,69,192,64,96,64,192,4,50,66,192,96,2, + 53,69,96,64,64,64,192,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=22 + Font Bounding box w=17 h=19 x=-2 y=-5 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB08[2760] U8G_SECTION(".progmem.u8g_font_ncenB08") = { + 0,17,19,254,251,8,1,193,3,159,32,255,254,11,254,8, + 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, + 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, + 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, + 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, + 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, + 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, + 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, + 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, + 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, + 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, + 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, + 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, + 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, + 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, + 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, + 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, + 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, + 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, + 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, + 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, + 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, + 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, + 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, + 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, + 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, + 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, + 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, + 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, + 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, + 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, + 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, + 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, + 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, + 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, + 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, + 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, + 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, + 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, + 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, + 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, + 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, + 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, + 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, + 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, + 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, + 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, + 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, + 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, + 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, + 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, + 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, + 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, + 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, + 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, + 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, + 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, + 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, + 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, + 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, + 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, + 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, + 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, + 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, + 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, + 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, + 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, + 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, + 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, + 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, + 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, + 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, + 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, + 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, + 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, + 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, + 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, + 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, + 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, + 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, + 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, + 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, + 116,184,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,3,0,1,2,8,8,3,0,254,192, + 192,0,64,64,192,192,192,5,7,7,6,0,255,8,120,208, + 208,232,112,64,7,8,8,8,0,0,60,100,96,252,48,98, + 190,220,7,5,5,8,0,1,186,108,108,108,186,8,8,8, + 9,0,0,247,98,52,54,24,62,24,60,1,8,8,6,2, + 0,128,128,128,0,128,128,128,128,4,10,10,5,0,254,112, + 144,192,96,176,208,96,48,144,224,3,2,2,4,0,6,160, + 160,8,8,8,9,0,0,60,66,157,165,161,157,66,60,3, + 6,6,4,0,2,192,32,224,160,0,224,6,5,5,7,0, + 0,36,108,216,108,36,5,3,3,6,0,2,248,8,8,3, + 1,1,4,0,3,224,8,8,8,9,0,0,60,66,189,165, + 185,173,66,60,4,1,1,5,0,6,240,3,4,4,4,0, + 4,64,160,160,64,5,5,5,6,0,1,32,248,32,0,248, + 3,4,4,3,0,4,96,160,64,224,3,4,4,3,0,4, + 224,64,32,192,3,2,2,4,0,6,96,192,6,7,7,7, + 0,254,204,204,204,220,236,192,192,7,8,8,8,0,0,126, + 244,244,116,20,20,20,62,2,2,2,3,0,3,192,192,2, + 3,3,4,1,254,128,64,192,3,4,4,3,0,4,64,192, + 64,224,4,6,6,5,0,2,96,144,144,96,0,240,6,5, + 5,7,0,0,144,216,108,216,144,8,8,8,9,0,0,68, + 196,72,232,18,22,47,34,8,8,8,9,0,0,68,196,72, + 232,19,21,34,39,8,8,8,9,0,0,228,68,40,200,18, + 22,47,34,5,8,8,6,0,254,48,48,0,16,96,192,216, + 112,9,11,22,8,255,0,48,0,24,0,0,0,8,0,28, + 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, + 8,255,0,6,0,12,0,0,0,8,0,28,0,28,0,38, + 0,38,0,127,0,67,0,231,128,9,11,22,8,255,0,28, + 0,54,0,0,0,8,0,28,0,28,0,38,0,38,0,127, + 0,67,0,231,128,9,11,22,8,255,0,26,0,44,0,0, + 0,8,0,28,0,28,0,38,0,38,0,127,0,67,0,231, + 128,9,11,22,8,255,0,20,0,20,0,0,0,8,0,28, + 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, + 8,255,0,24,0,36,0,24,0,8,0,28,0,28,0,38, + 0,38,0,127,0,67,0,231,128,10,8,16,11,0,0,63, + 192,22,64,22,128,39,128,62,128,70,64,70,64,239,192,7, + 10,10,8,0,254,58,70,194,192,192,194,66,60,16,48,6, + 11,11,7,0,0,96,48,0,252,100,104,120,104,100,100,252, + 6,11,11,7,0,0,24,48,0,252,100,104,120,104,100,100, + 252,6,11,11,7,0,0,56,108,0,252,100,104,120,104,100, + 100,252,6,11,11,7,0,0,40,40,0,252,100,104,120,104, + 100,100,252,4,11,11,5,0,0,192,96,0,240,96,96,96, + 96,96,96,240,4,11,11,5,0,0,48,96,0,240,96,96, + 96,96,96,96,240,5,11,11,5,0,0,112,216,0,240,96, + 96,96,96,96,96,240,4,11,11,5,0,0,80,80,0,240, + 96,96,96,96,96,96,240,8,8,8,9,0,0,252,98,99, + 243,99,99,98,252,8,11,11,9,0,0,26,44,0,199,98, + 114,122,94,78,70,226,7,11,11,8,0,0,48,24,0,56, + 68,198,198,198,198,68,56,7,11,11,8,0,0,24,48,0, + 56,68,198,198,198,198,68,56,7,11,11,8,0,0,56,108, + 0,56,68,198,198,198,198,68,56,7,11,11,8,0,0,52, + 88,0,56,68,198,198,198,198,68,56,7,11,11,8,0,0, + 40,40,0,56,68,198,198,198,198,68,56,5,5,5,6,0, + 1,216,112,32,112,216,7,8,8,8,0,0,58,68,206,214, + 214,230,68,184,8,11,11,9,0,0,48,24,0,247,98,98, + 98,98,98,98,60,8,11,11,9,0,0,12,24,0,247,98, + 98,98,98,98,98,60,8,11,11,9,0,0,28,54,0,247, + 98,98,98,98,98,98,60,8,11,11,9,0,0,20,20,0, + 247,98,98,98,98,98,98,60,8,11,11,9,0,0,12,24, + 0,247,98,52,52,24,24,24,60,7,8,8,8,0,0,224, + 124,102,102,102,124,96,240,7,8,8,8,0,0,60,102,102, + 108,102,102,102,236,4,8,8,5,0,0,192,96,0,224,48, + 112,176,240,4,8,8,5,0,0,48,96,0,224,48,112,176, + 240,5,9,9,5,0,0,32,112,216,0,224,48,112,176,240, + 5,8,8,5,0,0,104,176,0,224,48,112,176,240,4,8, + 8,5,0,0,160,160,0,224,48,112,176,240,4,8,8,5, + 0,0,96,144,96,224,48,112,176,240,8,5,5,9,0,0, + 238,155,127,216,239,5,7,7,6,0,254,112,200,192,200,112, + 32,96,5,8,8,6,0,0,96,48,0,112,216,248,192,120, + 5,8,8,6,0,0,48,96,0,112,216,248,192,120,5,9, + 9,6,0,0,32,112,216,0,112,216,248,192,120,5,8,8, + 6,0,0,80,80,0,112,216,248,192,120,4,8,8,5,0, + 0,192,96,0,224,96,96,96,240,4,8,8,5,0,0,48, + 96,0,224,96,96,96,240,5,9,9,5,0,0,32,112,216, + 0,224,96,96,96,240,4,8,8,5,0,0,160,160,0,224, + 96,96,96,240,6,8,8,7,0,0,200,112,144,120,204,204, + 204,120,6,8,8,7,0,0,104,176,0,216,236,204,204,204, + 6,8,8,7,0,0,96,48,0,120,204,204,204,120,6,8, + 8,7,0,0,24,48,0,120,204,204,204,120,6,9,9,7, + 0,0,32,112,216,0,120,204,204,204,120,6,8,8,7,0, + 0,52,88,0,120,204,204,204,120,6,8,8,7,0,0,80, + 80,0,120,204,204,204,120,5,5,5,6,0,1,32,0,248, + 0,32,6,7,7,7,0,255,4,120,220,236,204,120,128,6, + 8,8,7,0,0,96,48,0,204,204,204,220,108,6,8,8, + 7,0,0,24,48,0,204,204,204,220,108,6,9,9,7,0, + 0,32,112,216,0,204,204,204,220,108,6,8,8,7,0,0, + 80,80,0,204,204,204,220,108,6,10,10,7,0,254,24,48, + 0,236,104,104,48,48,224,192,6,10,10,7,0,254,192,192, + 192,216,236,204,204,248,192,224,6,10,10,7,0,254,80,80, + 0,236,104,104,48,48,224,192}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=20 + Font Bounding box w=17 h=19 x=-2 y=-5 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB08r[1315] U8G_SECTION(".progmem.u8g_font_ncenB08r") = { + 0,17,19,254,251,8,1,193,3,159,32,127,254,9,254,8, + 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, + 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, + 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, + 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, + 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, + 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, + 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, + 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, + 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, + 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, + 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, + 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, + 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, + 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, + 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, + 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, + 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, + 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, + 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, + 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, + 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, + 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, + 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, + 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, + 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, + 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, + 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, + 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, + 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, + 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, + 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, + 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, + 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, + 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, + 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, + 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, + 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, + 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, + 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, + 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, + 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, + 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, + 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, + 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, + 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, + 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, + 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, + 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, + 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, + 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, + 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, + 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, + 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, + 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, + 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, + 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, + 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, + 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, + 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, + 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, + 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, + 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, + 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, + 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, + 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, + 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, + 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, + 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, + 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, + 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, + 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, + 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, + 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, + 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, + 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, + 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, + 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, + 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, + 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, + 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, + 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, + 116,184,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=15 x= 3 y= 8 dx=15 dy= 0 ascent=15 len=30 + Font Bounding box w=20 h=25 x=-2 y=-6 + Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =15 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB10[4003] U8G_SECTION(".progmem.u8g_font_ncenB10") = { + 0,20,25,254,250,11,2,24,5,41,32,255,253,15,253,11, + 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, + 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, + 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, + 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, + 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, + 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, + 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, + 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, + 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, + 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, + 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, + 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, + 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, + 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, + 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, + 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, + 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, + 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, + 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, + 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, + 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, + 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, + 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, + 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, + 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, + 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, + 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, + 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, + 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, + 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, + 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, + 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, + 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, + 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, + 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, + 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, + 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, + 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, + 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, + 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, + 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, + 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, + 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, + 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, + 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, + 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, + 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, + 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, + 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, + 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, + 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, + 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, + 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, + 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, + 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, + 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, + 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, + 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, + 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, + 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, + 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, + 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, + 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, + 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, + 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, + 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, + 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, + 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, + 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, + 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, + 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, + 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, + 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, + 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, + 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, + 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, + 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, + 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, + 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, + 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, + 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, + 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, + 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, + 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, + 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, + 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, + 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, + 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, + 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, + 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, + 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, + 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, + 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, + 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, + 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, + 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, + 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, + 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, + 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, + 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, + 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, + 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, + 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, + 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, + 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, + 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, + 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, + 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, + 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, + 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, + 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, + 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, + 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, + 48,48,32,192,7,2,2,8,0,4,118,220,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, + 4,0,1,2,11,11,5,1,253,192,192,192,0,64,64,192, + 192,192,192,192,7,9,9,8,0,255,4,60,110,206,208,210, + 118,60,32,8,11,11,9,0,0,28,38,102,96,252,48,48, + 32,225,191,222,8,8,8,9,0,2,153,126,102,195,195,102, + 126,153,10,11,22,11,0,0,241,192,96,128,49,0,49,0, + 26,0,26,0,63,0,12,0,63,0,12,0,30,0,1,11, + 11,8,3,0,128,128,128,128,0,0,128,128,128,128,128,6, + 13,13,7,0,254,56,108,76,96,120,156,204,228,120,28,204, + 200,112,5,2,2,7,1,8,216,216,11,11,22,12,0,0, + 14,0,49,128,64,64,79,64,153,32,144,32,153,32,78,64, + 64,64,49,128,14,0,5,7,7,6,0,4,224,48,112,176, + 216,0,248,7,5,5,8,0,1,54,108,216,108,54,7,4, + 4,8,0,2,254,2,2,2,4,2,2,5,0,3,240,240, + 11,11,22,12,0,0,14,0,49,128,64,64,94,64,137,32, + 142,32,138,32,91,64,64,64,49,128,14,0,5,1,1,7, + 1,8,248,4,4,4,6,1,7,96,144,144,96,7,7,7, + 8,0,1,16,16,254,16,16,0,254,5,6,6,5,255,5, + 112,152,24,48,96,248,5,6,6,5,255,5,112,152,48,24, + 152,112,4,3,3,6,1,8,48,96,128,9,10,20,10,0, + 253,247,0,99,0,99,0,99,0,99,0,103,0,123,128,64, + 0,96,0,96,0,9,11,22,10,0,0,127,128,251,0,251, + 0,251,0,251,0,123,0,27,0,27,0,27,0,27,0,63, + 128,2,2,2,5,1,4,192,192,3,3,3,5,1,253,64, + 32,224,4,6,6,5,0,5,96,224,96,96,96,240,5,7, + 7,6,0,4,112,216,216,216,112,0,248,7,5,5,8,0, + 1,216,108,54,108,216,11,11,22,12,0,0,97,0,227,0, + 98,0,102,0,100,0,252,192,9,192,26,192,20,192,55,224, + 32,192,11,11,22,12,0,0,97,0,227,0,98,0,102,0, + 100,0,253,192,10,96,24,96,16,192,49,128,35,224,12,11, + 22,12,255,0,112,128,153,128,49,0,27,0,154,0,118,96, + 4,224,13,96,10,96,27,240,16,96,6,11,11,7,0,253, + 48,48,48,0,16,48,96,192,204,204,120,10,15,30,11,0, + 0,48,0,24,0,4,0,0,0,12,0,12,0,22,0,22, + 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,10, + 15,30,11,0,0,3,0,6,0,8,0,0,0,12,0,12, + 0,22,0,22,0,18,0,35,0,35,0,63,0,65,128,65, + 128,227,192,10,15,30,11,0,0,4,0,14,0,17,0,0, + 0,12,0,12,0,22,0,22,0,18,0,35,0,35,0,63, + 0,65,128,65,128,227,192,10,14,28,11,0,0,29,0,46, + 0,0,0,12,0,12,0,22,0,22,0,18,0,35,0,35, + 0,63,0,65,128,65,128,227,192,10,14,28,11,0,0,51, + 0,51,0,0,0,12,0,12,0,22,0,22,0,18,0,35, + 0,35,0,63,0,65,128,65,128,227,192,10,15,30,11,0, + 0,12,0,18,0,12,0,0,0,12,0,12,0,22,0,22, + 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,15, + 11,22,15,255,0,15,254,5,134,5,130,9,146,9,144,17, + 240,31,144,33,146,33,130,65,134,227,254,10,14,28,11,0, + 253,31,64,112,192,96,64,192,64,192,0,192,0,192,0,192, + 0,96,64,112,192,31,0,4,0,2,0,14,0,9,15,30, + 10,0,0,24,0,12,0,2,0,0,0,255,128,97,128,96, + 128,100,128,100,0,124,0,100,0,100,128,96,128,97,128,255, + 128,9,15,30,10,0,0,3,0,6,0,8,0,0,0,255, + 128,97,128,96,128,100,128,100,0,124,0,100,0,100,128,96, + 128,97,128,255,128,9,15,30,10,0,0,4,0,14,0,17, + 0,0,0,255,128,97,128,96,128,100,128,100,0,124,0,100, + 0,100,128,96,128,97,128,255,128,9,14,28,10,0,0,51, + 0,51,0,0,0,255,128,97,128,96,128,100,128,100,0,124, + 0,100,0,100,128,96,128,97,128,255,128,4,15,15,7,1, + 0,192,96,16,0,240,96,96,96,96,96,96,96,96,96,240, + 5,15,15,7,1,0,24,48,64,0,240,96,96,96,96,96, + 96,96,96,96,240,5,15,15,7,1,0,32,112,136,0,240, + 96,96,96,96,96,96,96,96,96,240,6,14,14,7,0,0, + 204,204,0,120,48,48,48,48,48,48,48,48,48,120,11,11, + 22,12,0,0,255,0,97,192,96,192,96,96,96,96,248,96, + 96,96,96,96,96,192,97,192,255,0,11,14,28,12,0,0, + 14,128,23,0,0,0,224,224,112,64,120,64,92,64,76,64, + 70,64,71,64,67,192,65,192,64,192,224,64,11,15,30,12, + 0,0,24,0,12,0,2,0,0,0,31,0,113,192,96,192, + 192,96,192,96,192,96,192,96,192,96,96,192,113,192,31,0, + 11,15,30,12,0,0,0,192,1,128,2,0,0,0,31,0, + 113,192,96,192,192,96,192,96,192,96,192,96,192,96,96,192, + 113,192,31,0,11,15,30,12,0,0,4,0,14,0,17,0, + 0,0,31,0,113,192,96,192,192,96,192,96,192,96,192,96, + 192,96,96,192,113,192,31,0,11,14,28,12,0,0,14,128, + 23,0,0,0,31,0,113,192,96,192,192,96,192,96,192,96, + 192,96,192,96,96,192,113,192,31,0,11,14,28,12,0,0, + 25,128,25,128,0,0,31,0,113,192,96,192,192,96,192,96, + 192,96,192,96,192,96,96,192,113,192,31,0,8,7,7,8, + 0,1,195,102,60,24,60,102,195,11,11,22,12,0,0,31, + 32,113,192,96,192,193,96,194,96,196,96,200,96,208,96,96, + 192,113,192,159,0,11,15,30,12,0,0,12,0,6,0,1, + 0,0,0,240,224,96,64,96,64,96,64,96,64,96,64,96, + 64,96,64,96,64,48,128,31,0,11,15,30,12,0,0,1, + 128,3,0,4,0,0,0,240,224,96,64,96,64,96,64,96, + 64,96,64,96,64,96,64,96,64,48,128,31,0,11,15,30, + 12,0,0,4,0,14,0,17,0,0,0,240,224,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,96,64,48,128,31, + 0,11,14,28,12,0,0,25,128,25,128,0,0,240,224,96, + 64,96,64,96,64,96,64,96,64,96,64,96,64,96,64,48, + 128,31,0,10,15,30,11,0,0,1,128,3,0,4,0,0, + 0,241,192,96,128,49,0,49,0,26,0,26,0,12,0,12, + 0,12,0,12,0,30,0,9,11,22,10,0,0,240,0,96, + 0,127,0,99,128,97,128,97,128,99,128,126,0,96,0,96, + 0,240,0,8,11,11,9,0,0,30,35,99,98,108,98,99, + 99,99,99,238,8,11,11,9,0,0,48,24,4,0,60,102, + 6,62,198,206,119,8,11,11,9,0,0,12,24,32,0,60, + 102,6,62,198,206,119,8,11,11,9,0,0,16,56,108,0, + 60,102,6,62,198,206,119,8,10,10,9,0,0,52,88,0, + 60,102,6,62,198,206,119,8,10,10,9,0,0,108,108,0, + 60,102,6,62,198,206,119,8,11,11,9,0,0,24,36,24, + 0,60,102,6,62,198,206,119,13,7,14,14,0,0,57,224, + 103,48,6,24,63,248,198,0,199,24,121,240,7,10,10,8, + 0,253,60,102,198,192,194,102,60,16,8,56,8,11,11,9, + 0,0,48,24,4,0,60,102,195,255,192,99,62,8,11,11, + 9,0,0,12,24,32,0,60,102,195,255,192,99,62,8,11, + 11,9,0,0,16,56,108,0,60,102,195,255,192,99,62,8, + 10,10,9,0,0,108,108,0,60,102,195,255,192,99,62,4, + 11,11,5,0,0,192,96,16,0,224,96,96,96,96,96,240, + 4,11,11,5,0,0,48,96,128,0,224,96,96,96,96,96, + 240,5,11,11,5,0,0,32,112,216,0,224,96,96,96,96, + 96,240,5,10,10,5,0,0,216,216,0,224,96,96,96,96, + 96,240,8,11,11,9,0,0,198,56,120,140,62,102,195,195, + 195,102,60,9,10,20,10,0,0,26,0,44,0,0,0,238, + 0,115,0,99,0,99,0,99,0,99,0,247,128,8,11,11, + 9,0,0,48,24,4,0,60,102,195,195,195,102,60,8,11, + 11,9,0,0,12,24,32,0,60,102,195,195,195,102,60,8, + 11,11,9,0,0,16,56,108,0,60,102,195,195,195,102,60, + 8,10,10,9,0,0,52,88,0,60,102,195,195,195,102,60, + 8,10,10,9,0,0,108,108,0,60,102,195,195,195,102,60, + 8,7,7,8,0,1,24,24,0,255,0,24,24,8,9,9, + 9,0,255,2,60,110,203,211,211,102,60,64,9,11,22,10, + 0,0,48,0,24,0,4,0,0,0,247,128,99,0,99,0, + 99,0,99,0,103,0,59,128,9,11,22,10,0,0,12,0, + 24,0,32,0,0,0,247,128,99,0,99,0,99,0,99,0, + 103,0,59,128,9,11,22,10,0,0,8,0,28,0,54,0, + 0,0,247,128,99,0,99,0,99,0,99,0,103,0,59,128, + 9,10,20,10,0,0,54,0,54,0,0,0,247,128,99,0, + 99,0,99,0,99,0,103,0,59,128,8,14,14,7,255,253, + 6,12,16,0,247,98,98,52,52,24,24,16,208,224,9,14, + 28,10,0,253,224,0,96,0,96,0,96,0,110,0,115,0, + 97,128,97,128,97,128,115,0,110,0,96,0,96,0,240,0, + 8,13,13,7,255,253,54,54,0,247,98,98,52,52,24,24, + 16,208,224}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=14 h=14 x= 3 y= 8 dx=15 dy= 0 ascent=12 len=28 + Font Bounding box w=20 h=25 x=-2 y=-6 + Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB10r[1853] U8G_SECTION(".progmem.u8g_font_ncenB10r") = { + 0,20,25,254,250,11,2,24,5,41,32,127,253,12,253,11, + 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, + 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, + 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, + 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, + 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, + 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, + 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, + 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, + 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, + 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, + 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, + 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, + 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, + 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, + 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, + 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, + 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, + 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, + 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, + 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, + 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, + 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, + 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, + 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, + 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, + 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, + 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, + 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, + 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, + 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, + 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, + 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, + 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, + 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, + 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, + 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, + 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, + 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, + 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, + 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, + 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, + 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, + 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, + 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, + 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, + 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, + 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, + 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, + 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, + 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, + 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, + 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, + 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, + 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, + 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, + 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, + 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, + 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, + 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, + 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, + 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, + 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, + 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, + 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, + 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, + 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, + 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, + 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, + 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, + 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, + 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, + 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, + 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, + 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, + 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, + 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, + 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, + 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, + 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, + 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, + 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, + 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, + 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, + 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, + 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, + 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, + 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, + 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, + 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, + 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, + 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, + 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, + 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, + 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, + 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, + 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, + 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, + 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, + 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, + 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, + 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, + 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, + 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, + 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, + 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, + 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, + 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, + 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, + 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, + 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, + 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, + 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, + 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, + 48,48,32,192,7,2,2,8,0,4,118,220,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=16 len=32 + Font Bounding box w=22 h=27 x=-3 y=-7 + Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 + Pure Font ascent =12 descent=-3 + X Font ascent =12 descent=-3 + Max Font ascent =16 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB12[4735] U8G_SECTION(".progmem.u8g_font_ncenB12") = { + 0,22,27,253,249,12,2,152,5,246,32,255,253,16,253,12, + 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, + 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, + 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, + 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, + 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, + 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, + 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, + 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, + 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, + 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, + 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, + 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, + 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, + 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, + 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, + 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, + 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, + 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, + 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, + 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, + 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, + 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, + 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, + 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, + 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, + 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, + 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, + 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, + 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, + 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, + 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, + 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, + 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, + 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, + 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, + 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, + 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, + 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, + 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, + 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, + 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, + 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, + 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, + 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, + 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, + 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, + 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, + 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, + 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, + 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, + 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, + 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, + 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, + 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, + 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, + 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, + 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, + 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, + 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, + 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, + 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, + 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, + 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, + 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, + 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, + 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, + 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, + 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, + 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, + 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, + 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, + 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, + 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, + 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, + 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, + 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, + 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, + 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, + 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, + 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, + 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, + 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, + 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, + 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, + 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, + 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, + 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, + 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, + 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, + 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, + 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, + 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, + 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, + 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, + 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, + 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, + 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, + 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, + 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, + 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, + 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, + 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, + 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, + 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, + 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, + 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, + 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, + 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, + 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, + 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, + 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, + 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, + 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, + 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, + 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, + 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, + 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, + 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, + 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, + 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, + 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, + 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, + 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, + 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, + 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, + 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, + 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, + 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, + 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, + 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, + 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, + 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, + 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, + 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, + 78,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,0,0,0,4,1,1,3,12,12,5,1,253,64,224, + 224,64,0,64,64,224,224,224,224,64,8,12,12,10,0,254, + 1,2,62,115,231,231,232,233,114,60,32,64,9,12,24,10, + 0,0,31,0,57,128,115,128,115,128,113,0,56,0,254,0, + 24,0,24,0,120,128,191,0,110,0,8,8,8,10,1,2, + 90,255,102,195,195,102,255,90,10,12,24,10,0,0,251,192, + 113,128,49,0,59,0,26,0,30,0,63,0,12,0,63,0, + 12,0,12,0,63,0,2,12,12,10,4,0,192,192,192,192, + 192,0,0,192,192,192,192,192,6,15,15,9,1,253,56,76, + 76,96,48,120,140,132,196,120,48,24,200,200,112,5,2,2, + 6,0,9,216,216,12,12,24,12,0,0,31,128,57,192,96, + 96,207,176,217,48,152,16,152,16,217,176,207,48,96,96,57, + 192,31,128,6,7,7,6,0,5,112,152,120,216,108,0,248, + 6,5,5,8,1,2,36,108,216,108,36,8,5,5,10,0, + 2,255,255,3,3,3,4,2,2,5,0,3,240,240,12,12, + 24,12,0,0,31,128,57,192,96,96,223,48,201,48,142,16, + 139,16,201,176,221,240,96,96,57,192,31,128,5,1,1,6, + 0,10,248,5,5,5,7,1,7,112,216,136,216,112,8,9, + 9,10,1,0,24,24,255,255,24,24,0,255,255,5,7,7, + 6,0,5,112,152,216,16,32,120,248,6,7,7,6,0,5, + 120,204,76,24,76,204,120,4,3,3,6,1,9,48,112,192, + 11,11,22,11,0,253,243,192,113,192,113,192,113,192,113,192, + 113,192,123,192,110,224,96,0,112,0,112,0,11,12,24,12, + 0,0,127,224,249,128,249,128,249,128,249,128,121,128,25,128, + 25,128,25,128,25,128,25,128,127,224,4,3,3,5,0,3, + 96,240,96,4,4,4,6,0,253,64,96,48,224,4,7,7, + 6,1,5,32,224,96,96,96,96,240,5,7,7,6,0,5, + 112,216,216,216,112,0,248,6,5,5,8,1,2,144,216,108, + 216,144,12,12,24,14,1,0,32,64,224,192,97,128,97,0, + 99,0,98,32,246,96,12,224,9,32,27,240,48,96,32,240, + 12,12,24,14,1,0,32,64,224,192,97,128,97,0,99,0, + 98,224,247,48,13,176,8,32,24,64,48,240,33,240,13,12, + 24,14,0,0,120,32,204,96,76,192,24,128,77,128,205,16, + 123,48,6,112,4,144,13,248,24,48,16,120,8,12,12,8, + 0,253,8,28,28,8,0,8,48,112,230,239,102,60,13,16, + 32,13,0,0,24,0,28,0,6,0,0,0,6,0,7,0, + 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, + 96,224,241,248,13,16,32,13,0,0,1,128,3,128,6,0, + 0,0,6,0,7,0,7,0,15,0,11,128,27,128,17,192, + 63,192,49,192,32,224,96,224,241,248,13,16,32,13,0,0, + 2,0,7,0,13,128,0,0,6,0,7,0,7,0,15,0, + 11,128,27,128,17,192,63,192,49,192,32,224,96,224,241,248, + 13,15,30,13,0,0,14,128,23,0,0,0,6,0,7,0, + 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, + 96,224,241,248,13,15,30,13,0,0,25,128,25,128,0,0, + 6,0,7,0,7,0,15,0,11,128,27,128,17,192,63,192, + 49,192,32,224,96,224,241,248,13,16,32,13,0,0,6,0, + 11,0,6,0,0,0,6,0,7,0,7,0,15,0,11,128, + 27,128,17,192,63,192,49,192,32,224,96,224,241,248,16,12, + 24,16,255,0,31,255,7,195,5,195,5,201,9,216,9,248, + 17,216,31,201,33,193,33,195,97,195,247,255,11,15,30,13, + 1,253,15,160,56,224,112,96,112,32,224,32,224,0,224,0, + 224,32,112,32,112,64,56,192,15,0,12,0,6,0,28,0, + 11,16,32,12,0,0,24,0,28,0,6,0,0,0,255,224, + 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, + 56,96,56,96,255,224,11,16,32,12,0,0,1,128,3,128, + 6,0,0,0,255,224,56,96,56,96,57,32,59,0,63,0, + 59,0,57,32,56,32,56,96,56,96,255,224,11,16,32,12, + 0,0,2,0,7,0,13,128,0,0,255,224,56,96,56,96, + 57,32,59,0,63,0,59,0,57,32,56,32,56,96,56,96, + 255,224,11,15,30,12,0,0,25,128,25,128,0,0,255,224, + 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, + 56,96,56,96,255,224,7,16,16,7,0,0,96,112,24,0, + 254,56,56,56,56,56,56,56,56,56,56,254,7,16,16,7, + 0,0,12,28,48,0,254,56,56,56,56,56,56,56,56,56, + 56,254,7,16,16,7,0,0,16,56,108,0,254,56,56,56, + 56,56,56,56,56,56,56,254,7,15,15,7,0,0,108,108, + 0,254,56,56,56,56,56,56,56,56,56,56,254,13,12,24, + 14,0,0,255,128,56,224,56,112,56,112,56,56,126,56,56, + 56,56,56,56,112,56,112,56,224,255,128,14,15,30,14,0, + 0,7,64,11,128,0,0,240,124,56,16,60,16,62,16,47, + 16,39,144,35,208,33,240,32,240,32,112,32,48,248,16,12, + 16,32,14,1,0,24,0,28,0,6,0,0,0,15,0,57, + 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, + 224,57,192,15,0,12,16,32,14,1,0,1,128,3,128,6, + 0,0,0,15,0,57,192,112,224,112,224,224,112,224,112,224, + 112,224,112,112,224,112,224,57,192,15,0,12,16,32,14,1, + 0,6,0,15,0,25,128,0,0,15,0,57,192,112,224,112, + 224,224,112,224,112,224,112,224,112,112,224,112,224,57,192,15, + 0,12,15,30,14,1,0,14,128,23,0,0,0,15,0,57, + 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, + 224,57,192,15,0,12,15,30,14,1,0,25,128,25,128,0, + 0,15,0,57,192,112,224,112,224,224,112,224,112,224,112,224, + 112,112,224,112,224,57,192,15,0,8,8,8,10,1,0,66, + 231,126,56,28,126,231,66,12,14,28,14,1,255,0,16,15, + 32,57,192,112,224,112,224,225,112,226,112,228,112,232,112,112, + 224,112,224,57,192,79,0,128,0,14,16,32,14,0,0,6, + 0,7,0,1,128,0,0,254,124,56,16,56,16,56,16,56, + 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,14, + 16,32,14,0,0,0,96,0,224,1,128,0,0,254,124,56, + 16,56,16,56,16,56,16,56,16,56,16,56,16,56,16,28, + 32,30,96,7,128,14,16,32,14,0,0,1,128,3,192,6, + 96,0,0,254,124,56,16,56,16,56,16,56,16,56,16,56, + 16,56,16,56,16,28,32,30,96,7,128,14,15,30,14,0, + 0,6,96,6,96,0,0,254,124,56,16,56,16,56,16,56, + 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,13, + 16,32,12,255,0,0,192,1,192,3,0,0,0,254,248,56, + 96,28,64,28,128,14,128,15,0,7,0,7,0,7,0,7, + 0,7,0,31,192,12,12,24,13,0,0,254,0,56,0,63, + 192,56,224,56,112,56,112,56,112,56,224,63,192,56,0,56, + 0,254,0,10,12,24,10,0,0,31,0,51,128,115,128,115, + 128,115,0,119,0,113,128,113,192,113,192,113,192,123,128,247, + 0,9,12,24,10,0,0,96,0,112,0,24,0,0,0,126, + 0,231,0,199,0,31,0,103,0,231,0,239,0,119,128,9, + 12,24,10,0,0,6,0,14,0,24,0,0,0,126,0,231, + 0,199,0,31,0,103,0,231,0,239,0,119,128,9,12,24, + 10,0,0,16,0,56,0,108,0,0,0,126,0,231,0,199, + 0,31,0,103,0,231,0,239,0,119,128,9,11,22,10,0, + 0,58,0,92,0,0,0,126,0,231,0,199,0,31,0,103, + 0,231,0,239,0,119,128,9,11,22,10,0,0,108,0,108, + 0,0,0,126,0,231,0,199,0,31,0,103,0,231,0,239, + 0,119,128,9,12,24,10,0,0,24,0,44,0,24,0,0, + 0,126,0,231,0,199,0,31,0,103,0,231,0,239,0,119, + 128,13,8,16,15,0,0,125,224,231,48,199,56,63,248,103, + 0,231,24,239,48,123,224,8,11,11,9,0,253,62,115,231, + 227,224,227,118,60,24,12,56,9,12,24,10,0,0,48,0, + 56,0,12,0,0,0,62,0,119,0,227,128,255,128,224,0, + 225,128,115,0,62,0,9,12,24,10,0,0,6,0,14,0, + 24,0,0,0,62,0,119,0,227,128,255,128,224,0,225,128, + 115,0,62,0,9,12,24,10,0,0,8,0,28,0,54,0, + 0,0,62,0,119,0,227,128,255,128,224,0,225,128,115,0, + 62,0,9,11,22,10,0,0,54,0,54,0,0,0,62,0, + 119,0,227,128,255,128,224,0,225,128,115,0,62,0,5,12, + 12,6,0,0,192,224,48,0,240,112,112,112,112,112,112,248, + 5,12,12,6,0,0,24,56,96,0,240,112,112,112,112,112, + 112,248,5,12,12,6,0,0,32,112,216,0,240,112,112,112, + 112,112,112,248,5,11,11,6,0,0,216,216,0,240,112,112, + 112,112,112,112,248,9,13,26,11,0,0,96,0,59,0,28, + 0,54,0,7,0,31,0,119,128,227,128,227,128,227,128,227, + 128,119,0,28,0,11,11,22,11,255,0,14,128,23,0,0, + 0,247,128,121,192,113,192,113,192,113,192,113,192,113,192,251, + 224,10,12,24,11,0,0,24,0,28,0,6,0,0,0,63, + 0,115,128,225,192,225,192,225,192,225,192,115,128,63,0,10, + 12,24,11,0,0,3,0,7,0,12,0,0,0,63,0,115, + 128,225,192,225,192,225,192,225,192,115,128,63,0,10,12,24, + 11,0,0,12,0,30,0,51,0,0,0,63,0,115,128,225, + 192,225,192,225,192,225,192,115,128,63,0,10,11,22,11,0, + 0,29,0,46,0,0,0,63,0,115,128,225,192,225,192,225, + 192,225,192,115,128,63,0,10,11,22,11,0,0,54,0,54, + 0,0,0,63,0,115,128,225,192,225,192,225,192,225,192,115, + 128,63,0,8,8,8,10,1,0,24,24,0,255,255,0,24, + 24,9,12,24,10,0,254,0,128,1,0,30,0,115,0,231, + 128,235,128,235,128,243,128,103,0,60,0,64,0,128,0,11, + 12,24,11,255,0,24,0,28,0,6,0,0,0,243,192,113, + 192,113,192,113,192,113,192,113,192,123,192,62,224,11,12,24, + 11,255,0,3,0,7,0,12,0,0,0,243,192,113,192,113, + 192,113,192,113,192,113,192,123,192,62,224,11,12,24,11,255, + 0,4,0,14,0,27,0,0,0,243,192,113,192,113,192,113, + 192,113,192,113,192,123,192,62,224,11,11,22,11,255,0,27, + 0,27,0,0,0,243,192,113,192,113,192,113,192,113,192,113, + 192,123,192,62,224,11,15,30,10,255,253,3,0,7,0,12, + 0,0,0,251,224,112,192,56,128,25,128,29,0,15,0,14, + 0,6,0,52,0,116,0,56,0,10,15,30,11,255,253,240, + 0,112,0,112,0,112,0,119,0,123,128,113,192,113,192,113, + 192,113,192,123,128,119,0,112,0,112,0,252,0,11,14,28, + 10,255,253,27,0,27,0,0,0,251,224,48,192,56,128,25, + 128,29,0,15,0,14,0,6,0,52,0,116,0,56,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=14 len=30 + Font Bounding box w=22 h=27 x=-3 y=-7 + Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 + Pure Font ascent =12 descent=-3 + X Font ascent =12 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB12r[2194] U8G_SECTION(".progmem.u8g_font_ncenB12r") = { + 0,22,27,253,249,12,2,152,5,246,32,127,253,14,253,12, + 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, + 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, + 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, + 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, + 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, + 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, + 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, + 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, + 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, + 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, + 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, + 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, + 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, + 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, + 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, + 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, + 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, + 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, + 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, + 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, + 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, + 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, + 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, + 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, + 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, + 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, + 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, + 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, + 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, + 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, + 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, + 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, + 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, + 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, + 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, + 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, + 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, + 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, + 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, + 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, + 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, + 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, + 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, + 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, + 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, + 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, + 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, + 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, + 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, + 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, + 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, + 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, + 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, + 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, + 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, + 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, + 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, + 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, + 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, + 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, + 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, + 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, + 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, + 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, + 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, + 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, + 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, + 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, + 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, + 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, + 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, + 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, + 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, + 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, + 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, + 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, + 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, + 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, + 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, + 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, + 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, + 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, + 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, + 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, + 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, + 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, + 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, + 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, + 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, + 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, + 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, + 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, + 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, + 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, + 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, + 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, + 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, + 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, + 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, + 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, + 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, + 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, + 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, + 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, + 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, + 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, + 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, + 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, + 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, + 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, + 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, + 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, + 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, + 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, + 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, + 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, + 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, + 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, + 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, + 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, + 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, + 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, + 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, + 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, + 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, + 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, + 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, + 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, + 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, + 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, + 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, + 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, + 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, + 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, + 78,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=19 x= 4 y=11 dx=21 dy= 0 ascent=19 len=42 + Font Bounding box w=24 h=32 x=-3 y=-8 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =19 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB14[5558] U8G_SECTION(".progmem.u8g_font_ncenB14") = { + 0,24,32,253,248,14,3,71,7,51,32,255,252,19,252,14, + 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, + 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, + 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, + 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, + 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, + 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, + 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, + 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, + 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, + 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, + 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, + 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, + 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, + 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, + 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, + 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, + 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, + 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, + 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, + 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, + 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, + 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, + 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, + 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, + 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, + 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, + 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, + 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, + 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, + 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, + 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, + 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, + 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, + 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, + 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, + 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, + 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, + 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, + 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, + 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, + 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, + 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, + 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, + 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, + 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, + 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, + 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, + 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, + 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, + 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, + 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, + 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, + 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, + 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, + 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, + 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, + 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, + 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, + 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, + 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, + 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, + 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, + 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, + 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, + 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, + 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, + 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, + 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, + 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, + 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, + 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, + 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, + 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, + 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, + 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, + 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, + 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, + 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, + 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, + 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, + 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, + 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, + 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, + 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, + 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, + 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, + 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, + 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, + 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, + 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, + 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, + 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, + 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, + 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, + 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, + 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, + 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, + 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, + 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, + 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, + 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, + 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, + 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, + 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, + 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, + 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, + 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, + 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, + 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, + 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, + 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, + 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, + 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, + 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, + 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, + 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, + 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, + 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, + 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, + 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, + 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, + 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, + 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, + 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, + 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, + 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, + 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, + 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, + 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, + 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, + 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, + 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, + 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, + 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, + 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, + 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, + 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, + 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, + 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, + 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, + 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, + 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, + 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, + 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, + 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, + 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, + 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, + 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, + 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, + 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, + 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, + 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, + 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, + 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, + 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, + 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, + 6,12,1,4,57,192,127,128,231,0,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,5,0, + 1,4,14,14,7,1,252,96,240,240,96,0,96,96,96,240, + 240,240,240,240,96,9,13,26,11,1,254,0,128,0,128,31, + 0,115,128,227,128,228,0,228,0,232,0,232,128,113,128,30, + 0,32,0,32,0,10,14,28,11,0,0,31,0,49,128,115, + 128,115,128,112,0,112,0,56,0,255,128,28,0,28,0,24, + 64,112,192,159,192,239,128,9,9,18,10,0,2,221,128,255, + 128,99,0,193,128,193,128,193,128,99,0,255,128,221,128,14, + 14,28,15,0,0,252,60,120,24,56,16,28,48,30,32,14, + 96,7,192,31,240,3,128,31,240,3,128,3,128,3,128,15, + 224,2,14,14,11,4,0,192,192,192,192,192,192,0,0,192, + 192,192,192,192,192,7,16,16,8,0,254,120,204,140,192,112, + 124,158,134,194,242,124,28,4,196,204,120,6,2,2,10,2, + 11,204,204,14,14,28,15,0,0,7,128,24,96,32,16,71, + 200,76,200,152,68,152,4,152,4,152,4,76,72,71,136,32, + 16,24,96,7,128,7,8,8,8,0,6,120,204,60,204,220, + 110,0,254,8,5,5,9,0,3,51,102,204,102,51,9,6, + 12,10,0,2,255,128,255,128,1,128,1,128,1,128,1,128, + 5,3,3,6,0,3,248,248,248,14,14,28,15,0,0,7, + 128,24,96,32,16,95,136,76,200,140,196,140,196,143,132,141, + 132,76,200,94,232,32,16,24,96,7,128,6,2,2,8,1, + 11,252,252,6,6,6,7,0,8,120,204,132,132,204,120,10, + 11,22,11,0,0,12,0,12,0,12,0,255,192,255,192,12, + 0,12,0,12,0,0,0,255,192,255,192,6,8,8,6,0, + 6,120,204,204,24,48,96,196,252,6,8,8,6,0,6,120, + 204,12,56,12,204,204,120,5,4,4,7,1,11,24,56,112, + 192,12,13,26,13,0,252,249,240,112,224,112,224,112,224,112, + 224,112,224,112,224,121,224,110,240,96,0,240,0,240,0,96, + 0,13,14,28,14,0,0,63,248,126,112,254,112,254,112,254, + 112,254,112,126,112,62,112,14,112,14,112,14,112,14,112,14, + 112,31,248,4,4,4,5,0,3,96,240,240,96,4,4,4, + 6,1,252,64,112,48,224,6,8,8,6,0,6,48,240,48, + 48,48,48,48,252,6,8,8,7,0,6,120,204,204,204,204, + 120,0,252,8,5,5,9,0,3,204,102,51,102,204,14,14, + 28,15,0,0,48,96,240,96,48,192,48,192,49,128,49,128, + 51,24,255,56,6,120,6,216,13,152,13,252,24,24,24,60, + 14,14,28,15,0,0,48,96,240,96,48,192,48,192,49,128, + 49,128,51,120,255,204,6,204,6,24,12,48,12,96,24,196, + 24,252,14,14,28,15,0,0,120,96,204,96,12,192,56,192, + 13,128,205,128,207,24,123,56,6,120,6,216,13,152,13,252, + 24,24,24,60,9,14,28,10,0,252,12,0,30,0,30,0, + 12,0,0,0,12,0,24,0,48,0,96,0,227,0,227,128, + 227,128,243,0,124,0,14,19,38,14,255,0,12,0,14,0, + 7,0,1,128,0,0,1,0,1,128,3,128,3,192,5,192, + 4,192,8,224,8,224,16,112,31,240,32,112,32,56,96,56, + 240,124,14,19,38,14,255,0,0,96,0,224,1,192,3,0, + 0,0,1,0,1,128,3,128,3,192,5,192,4,192,8,224, + 8,224,16,112,31,240,32,112,32,56,96,56,240,124,14,19, + 38,14,255,0,1,128,3,192,6,96,12,48,0,0,1,0, + 1,128,3,128,3,192,5,192,4,192,8,224,8,224,16,112, + 31,240,32,112,32,56,96,56,240,124,14,18,36,14,255,0, + 3,144,7,224,9,192,0,0,1,0,1,128,3,128,3,192, + 5,192,4,192,8,224,8,224,16,112,31,240,32,112,32,56, + 96,56,240,124,14,17,34,14,255,0,6,96,6,96,0,0, + 1,0,1,128,3,128,3,192,5,192,4,192,8,224,8,224, + 16,112,31,240,32,112,32,56,96,56,240,124,14,19,38,14, + 255,0,1,128,2,64,2,64,1,128,0,0,1,0,1,128, + 3,128,3,192,5,192,4,192,8,224,8,224,16,112,31,240, + 32,112,32,56,96,56,240,124,20,14,42,21,0,0,3,255, + 240,0,248,112,0,184,48,1,56,144,1,56,144,2,57,128, + 4,63,128,4,57,128,15,248,128,16,56,144,16,56,16,32, + 56,48,96,56,112,240,255,240,12,18,36,14,0,252,15,144, + 60,112,112,48,112,48,224,16,224,16,224,0,224,0,224,0, + 224,16,240,16,112,32,60,96,15,128,2,0,3,128,1,128, + 7,0,11,19,38,13,0,0,48,0,56,0,28,0,6,0, + 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, + 115,0,113,0,113,32,112,32,112,96,112,224,255,224,11,19, + 38,13,0,0,1,128,3,128,7,0,12,0,0,0,255,224, + 112,224,112,96,113,32,113,32,115,0,127,0,115,0,113,0, + 113,32,112,32,112,96,112,224,255,224,11,19,38,13,0,0, + 6,0,15,0,25,128,48,192,0,0,255,224,112,224,112,96, + 113,32,113,32,115,0,127,0,115,0,113,0,113,32,112,32, + 112,96,112,224,255,224,11,17,34,13,0,0,25,128,25,128, + 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, + 115,0,113,0,113,32,112,32,112,96,112,224,255,224,6,19, + 19,9,0,0,192,224,112,24,0,124,56,56,56,56,56,56, + 56,56,56,56,56,56,124,6,19,19,9,1,0,12,28,56, + 96,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, + 8,19,19,9,0,0,24,60,102,195,0,124,56,56,56,56, + 56,56,56,56,56,56,56,56,124,6,17,17,9,1,0,204, + 204,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, + 14,14,28,16,0,0,255,192,112,240,112,56,112,56,112,28, + 112,28,252,28,112,28,112,28,112,28,112,56,112,56,112,240, + 255,192,14,18,36,16,0,0,7,32,15,192,19,128,0,0, + 240,124,120,56,60,16,60,16,62,16,47,16,39,144,35,208, + 33,240,32,240,32,240,32,112,112,48,248,16,14,19,38,16, + 0,0,12,0,14,0,7,0,1,128,0,0,15,192,60,240, + 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, + 112,56,112,56,60,240,15,192,14,19,38,16,0,0,0,192, + 1,192,3,128,6,0,0,0,15,192,60,240,112,56,112,56, + 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, + 60,240,15,192,14,19,38,16,0,0,3,0,7,128,12,192, + 24,96,0,0,15,192,60,240,112,56,112,56,224,28,224,28, + 224,28,224,28,224,28,224,28,112,56,112,56,60,240,15,192, + 14,18,36,16,0,0,7,32,15,192,19,128,0,0,15,192, + 60,240,112,56,112,56,224,28,224,28,224,28,224,28,224,28, + 224,28,112,56,112,56,60,240,15,192,14,17,34,16,0,0, + 12,192,12,192,0,0,15,192,60,240,112,56,112,56,224,28, + 224,28,224,28,224,28,224,28,224,28,112,56,112,56,60,240, + 15,192,10,10,20,11,0,0,64,128,225,192,115,128,63,0, + 30,0,30,0,63,0,115,128,225,192,64,128,14,15,30,16, + 0,0,0,8,15,208,60,240,112,56,112,88,224,156,225,28, + 225,28,226,28,228,28,232,28,112,56,48,56,60,240,79,192, + 14,19,38,16,0,0,12,0,14,0,7,0,1,128,0,0, + 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, + 112,16,112,16,112,16,112,16,56,96,31,192,14,19,38,16, + 0,0,0,96,0,224,1,192,3,0,0,0,248,124,112,56, + 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, + 112,16,112,16,56,96,31,192,14,19,38,16,0,0,3,0, + 7,128,12,192,24,96,0,0,248,124,112,56,112,16,112,16, + 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, + 56,96,31,192,14,17,34,16,0,0,12,192,12,192,0,0, + 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, + 112,16,112,16,112,16,112,16,56,96,31,192,13,19,38,15, + 0,0,0,96,0,224,1,192,3,0,0,0,252,120,120,48, + 56,32,60,96,28,64,30,128,15,128,7,0,7,0,7,0, + 7,0,7,0,7,0,31,192,12,14,28,14,1,0,248,0, + 112,0,112,0,127,192,113,224,112,240,112,240,112,240,112,240, + 113,224,127,128,112,0,112,0,248,0,11,14,28,12,0,0, + 30,0,51,128,113,192,113,192,113,192,113,128,119,0,113,192, + 112,224,112,224,112,224,112,224,113,192,247,0,10,14,28,11, + 0,0,48,0,56,0,28,0,6,0,0,0,127,0,227,128, + 195,128,7,128,59,128,227,128,227,128,231,128,121,192,10,14, + 28,11,0,0,3,0,7,0,14,0,24,0,0,0,127,0, + 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, + 10,14,28,11,0,0,12,0,30,0,51,0,97,128,0,0, + 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, + 121,192,10,13,26,11,0,0,24,128,63,0,70,0,0,0, + 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, + 121,192,10,12,24,11,0,0,51,0,51,0,0,0,127,0, + 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, + 10,14,28,11,0,0,12,0,18,0,18,0,12,0,0,0, + 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, + 121,192,16,9,18,17,0,0,63,120,99,206,227,135,7,135, + 59,255,227,128,227,129,231,195,120,252,9,13,26,10,0,252, + 31,0,115,128,225,128,224,0,224,0,224,0,224,128,113,128, + 30,0,8,0,14,0,6,0,28,0,10,14,28,11,0,0, + 48,0,56,0,28,0,6,0,0,0,30,0,115,128,225,192, + 225,192,255,192,224,0,224,64,112,192,31,0,10,14,28,11, + 0,0,3,0,7,0,14,0,24,0,0,0,30,0,115,128, + 225,192,225,192,255,192,224,0,224,64,112,192,31,0,10,14, + 28,11,0,0,12,0,30,0,51,0,97,128,0,0,30,0, + 115,128,225,192,225,192,255,192,224,0,224,64,112,192,31,0, + 10,12,24,11,0,0,51,0,51,0,0,0,30,0,115,128, + 225,192,225,192,255,192,224,0,224,64,112,192,31,0,6,14, + 14,6,255,0,192,224,112,24,0,120,56,56,56,56,56,56, + 56,124,6,14,14,6,0,0,12,28,56,96,0,240,112,112, + 112,112,112,112,112,248,8,14,14,6,255,0,24,60,102,195, + 0,120,56,56,56,56,56,56,56,124,5,12,12,6,0,0, + 216,216,0,240,112,112,112,112,112,112,112,248,11,14,28,12, + 0,0,192,0,51,0,28,0,102,0,3,0,31,128,113,192, + 224,224,224,224,224,224,224,224,224,224,113,192,31,0,12,13, + 26,13,0,0,12,64,31,128,35,0,0,0,247,192,121,224, + 112,224,112,224,112,224,112,224,112,224,112,224,249,240,11,14, + 28,12,0,0,48,0,56,0,28,0,6,0,0,0,31,0, + 113,192,224,224,224,224,224,224,224,224,224,224,113,192,31,0, + 11,14,28,12,0,0,1,128,3,128,7,0,12,0,0,0, + 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, + 31,0,11,14,28,12,0,0,6,0,15,0,25,128,48,192, + 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, + 113,192,31,0,11,13,26,12,0,0,24,128,63,0,70,0, + 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, + 113,192,31,0,11,12,24,12,0,0,51,0,51,0,0,0, + 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, + 31,0,10,10,20,11,0,0,12,0,12,0,0,0,0,0, + 255,192,255,192,0,0,0,0,12,0,12,0,10,11,22,11, + 0,255,1,0,31,0,115,128,227,192,229,192,229,192,233,192, + 233,192,115,128,62,0,32,0,12,14,28,13,0,0,24,0, + 28,0,14,0,3,0,0,0,249,240,112,224,112,224,112,224, + 112,224,112,224,112,224,121,224,62,240,12,14,28,13,0,0, + 3,0,7,0,14,0,24,0,0,0,249,240,112,224,112,224, + 112,224,112,224,112,224,112,224,121,224,62,240,12,14,28,13, + 0,0,6,0,15,0,25,128,48,192,0,0,249,240,112,224, + 112,224,112,224,112,224,112,224,112,224,121,224,62,240,12,12, + 24,13,0,0,25,128,25,128,0,0,249,240,112,224,112,224, + 112,224,112,224,112,224,112,224,121,224,62,240,11,18,36,12, + 0,252,1,128,3,128,7,0,12,0,0,0,248,224,112,64, + 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, + 196,0,232,0,112,0,12,18,36,12,255,252,240,0,112,0, + 112,0,112,0,112,0,119,128,120,224,112,112,112,112,112,112, + 112,112,112,112,120,224,119,128,112,0,112,0,112,0,248,0, + 11,16,32,12,0,252,25,128,25,128,0,0,248,224,112,64, + 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, + 196,0,232,0,112,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=18 x= 4 y=10 dx=20 dy= 0 ascent=16 len=42 + Font Bounding box w=24 h=32 x=-3 y=-8 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB14r[2603] U8G_SECTION(".progmem.u8g_font_ncenB14r") = { + 0,24,32,253,248,14,3,71,7,51,32,127,252,16,252,14, + 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, + 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, + 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, + 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, + 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, + 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, + 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, + 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, + 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, + 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, + 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, + 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, + 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, + 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, + 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, + 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, + 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, + 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, + 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, + 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, + 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, + 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, + 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, + 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, + 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, + 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, + 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, + 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, + 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, + 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, + 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, + 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, + 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, + 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, + 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, + 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, + 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, + 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, + 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, + 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, + 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, + 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, + 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, + 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, + 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, + 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, + 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, + 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, + 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, + 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, + 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, + 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, + 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, + 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, + 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, + 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, + 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, + 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, + 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, + 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, + 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, + 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, + 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, + 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, + 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, + 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, + 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, + 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, + 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, + 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, + 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, + 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, + 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, + 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, + 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, + 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, + 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, + 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, + 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, + 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, + 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, + 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, + 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, + 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, + 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, + 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, + 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, + 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, + 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, + 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, + 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, + 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, + 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, + 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, + 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, + 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, + 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, + 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, + 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, + 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, + 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, + 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, + 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, + 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, + 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, + 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, + 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, + 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, + 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, + 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, + 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, + 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, + 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, + 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, + 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, + 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, + 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, + 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, + 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, + 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, + 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, + 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, + 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, + 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, + 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, + 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, + 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, + 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, + 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, + 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, + 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, + 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, + 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, + 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, + 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, + 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, + 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, + 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, + 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, + 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, + 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, + 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, + 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, + 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, + 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, + 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, + 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, + 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, + 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, + 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, + 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, + 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, + 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, + 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, + 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, + 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, + 6,12,1,4,57,192,127,128,231,0,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=24 x= 6 y=15 dx=26 dy= 0 ascent=24 len=72 + Font Bounding box w=33 h=40 x=-4 y=-10 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =18 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =24 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB18[8114] U8G_SECTION(".progmem.u8g_font_ncenB18") = { + 0,33,40,252,246,18,4,68,10,106,32,255,251,24,251,18, + 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, + 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, + 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, + 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, + 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, + 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, + 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, + 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, + 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, + 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, + 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, + 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, + 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, + 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, + 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, + 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, + 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, + 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, + 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, + 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, + 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, + 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, + 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, + 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, + 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, + 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, + 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, + 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, + 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, + 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, + 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, + 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, + 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, + 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, + 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, + 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, + 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, + 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, + 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, + 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, + 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, + 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, + 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, + 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, + 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, + 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, + 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, + 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, + 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, + 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, + 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, + 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, + 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, + 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, + 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, + 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, + 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, + 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, + 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, + 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, + 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, + 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, + 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, + 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, + 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, + 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, + 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, + 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, + 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, + 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, + 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, + 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, + 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, + 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, + 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, + 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, + 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, + 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, + 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, + 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, + 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, + 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, + 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, + 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, + 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, + 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, + 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, + 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, + 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, + 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, + 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, + 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, + 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, + 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, + 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, + 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, + 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, + 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, + 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, + 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, + 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, + 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, + 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, + 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, + 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, + 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, + 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, + 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, + 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, + 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, + 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, + 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, + 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, + 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, + 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, + 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, + 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, + 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, + 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, + 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, + 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, + 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, + 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, + 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, + 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, + 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, + 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, + 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, + 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, + 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, + 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, + 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, + 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, + 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, + 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, + 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, + 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, + 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, + 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, + 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, + 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, + 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, + 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, + 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, + 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, + 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, + 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, + 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, + 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, + 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, + 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, + 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, + 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, + 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, + 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, + 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, + 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, + 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, + 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, + 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, + 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, + 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, + 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, + 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, + 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, + 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, + 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, + 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, + 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, + 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, + 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, + 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, + 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, + 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, + 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, + 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, + 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, + 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, + 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, + 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, + 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, + 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, + 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, + 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, + 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, + 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, + 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, + 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, + 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, + 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, + 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, + 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, + 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, + 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, + 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, + 112,255,240,231,224,65,192,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,7,0,1,5,18, + 18,7,1,251,112,248,248,112,0,0,32,32,112,112,112,112, + 112,112,248,248,248,112,12,15,30,14,1,255,0,32,0,64, + 15,192,56,240,121,240,113,96,242,0,242,0,244,0,244,0, + 120,16,120,16,60,96,47,192,64,0,14,18,36,15,0,0, + 3,224,15,48,14,120,30,120,30,48,30,0,30,0,30,0, + 127,224,15,0,15,0,15,0,7,0,7,4,126,12,207,252, + 207,248,113,240,12,12,24,14,1,2,207,48,255,240,127,224, + 112,224,224,112,224,112,224,112,224,112,112,224,127,224,255,240, + 207,48,19,18,54,19,0,0,255,143,224,62,3,0,62,3, + 0,31,6,0,31,6,0,15,140,0,15,140,0,7,216,0, + 7,248,0,31,254,0,1,224,0,1,224,0,31,254,0,1, + 224,0,1,224,0,1,224,0,3,240,0,15,252,0,3,18, + 18,14,6,0,224,224,224,224,224,224,224,0,0,0,224,224, + 224,224,224,224,224,224,11,20,40,13,1,254,31,0,35,128, + 99,128,99,0,120,0,62,0,63,128,71,192,193,224,224,224, + 240,96,124,96,63,64,15,128,3,128,1,128,48,128,112,128, + 113,0,62,0,10,4,8,12,1,14,97,128,243,192,243,192, + 97,128,19,18,54,21,1,0,3,248,0,15,254,0,60,7, + 128,48,1,128,97,248,192,103,24,192,198,8,96,206,0,96, + 206,0,96,206,0,96,206,0,96,199,4,96,103,136,192,97, + 240,192,48,1,128,60,7,128,15,254,0,3,248,0,8,10, + 10,10,1,8,120,206,6,126,198,206,119,0,0,255,11,7, + 14,13,1,3,28,224,57,192,115,128,231,0,115,128,57,192, + 28,224,11,6,12,13,1,4,255,224,255,224,0,96,0,96, + 0,96,0,96,6,3,3,8,1,5,252,252,252,19,18,54, + 21,1,0,3,248,0,15,254,0,60,7,128,48,1,128,103, + 240,192,99,24,192,195,24,96,195,24,96,195,240,96,195,96, + 96,195,48,96,195,48,96,99,24,192,103,156,192,48,1,128, + 60,7,128,15,254,0,3,248,0,8,2,2,10,1,15,255, + 255,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, + 22,14,1,1,6,0,6,0,6,0,255,240,255,240,6,0, + 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, + 124,206,198,198,14,12,24,48,98,254,254,7,11,11,8,0, + 7,124,206,198,6,12,60,14,6,198,206,124,5,5,5,7, + 1,14,24,56,112,96,192,17,17,51,18,0,251,254,63,128, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,62,62,0,63,222,0,39,159, + 128,48,0,0,48,0,0,120,0,0,120,0,0,48,0,0, + 16,18,36,18,1,0,31,255,127,156,127,156,255,156,255,156, + 255,156,127,156,127,156,31,156,3,156,3,156,3,156,3,156, + 3,156,3,156,3,156,3,156,15,255,3,4,4,7,2,5, + 224,224,224,224,5,6,6,7,1,251,16,32,112,56,24,240, + 6,11,11,8,0,7,48,240,48,48,48,48,48,48,48,48, + 252,9,10,20,11,1,8,28,0,99,0,227,128,227,128,227, + 128,99,0,28,0,0,0,0,0,255,128,11,7,14,13,1, + 3,231,0,115,128,57,192,28,224,57,192,115,128,231,0,18, + 18,54,21,1,0,48,6,0,240,6,0,48,12,0,48,24, + 0,48,24,0,48,48,0,48,96,0,48,99,0,48,199,0, + 49,135,0,253,143,0,3,27,0,6,19,0,6,51,0,12, + 99,0,24,127,192,24,3,0,48,7,128,18,18,54,21,1, + 0,48,6,0,240,6,0,48,12,0,48,24,0,48,24,0, + 48,48,0,48,96,0,48,111,128,48,201,192,49,152,192,253, + 152,192,3,1,192,6,1,128,6,3,0,12,6,0,24,12, + 64,24,31,192,48,31,192,19,18,54,21,0,0,124,3,0, + 206,3,0,198,6,0,6,12,0,12,12,0,56,24,0,12, + 48,0,6,49,128,198,99,128,206,195,128,124,197,128,1,141, + 128,3,25,128,3,25,128,6,49,128,12,63,224,12,1,128, + 24,3,192,11,18,36,13,1,251,7,0,15,128,15,128,7, + 0,0,0,0,0,3,0,3,0,6,0,28,0,56,0,112, + 0,240,0,240,192,241,224,241,224,120,192,31,128,19,24,72, + 19,0,0,6,0,0,7,0,0,3,128,0,1,192,0,0, + 96,0,0,0,0,0,96,0,0,96,0,0,240,0,0,240, + 0,1,120,0,1,120,0,3,60,0,2,60,0,2,60,0, + 6,30,0,4,30,0,7,254,0,12,15,0,8,15,0,8, + 15,0,24,7,128,56,7,128,254,31,224,19,24,72,19,0, + 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, + 0,0,0,0,96,0,0,96,0,0,240,0,0,240,0,1, + 120,0,1,120,0,3,60,0,2,60,0,2,60,0,6,30, + 0,4,30,0,7,254,0,12,15,0,8,15,0,8,15,0, + 24,7,128,56,7,128,254,31,224,19,23,69,19,0,0,0, + 96,0,0,240,0,1,152,0,3,12,0,0,0,0,0,96, + 0,0,96,0,0,240,0,0,240,0,1,120,0,1,120,0, + 3,60,0,2,60,0,2,60,0,6,30,0,4,30,0,7, + 254,0,12,15,0,8,15,0,8,15,0,24,7,128,56,7, + 128,254,31,224,19,22,66,19,0,0,0,226,0,1,252,0, + 2,56,0,0,0,0,0,96,0,0,96,0,0,240,0,0, + 240,0,1,120,0,1,120,0,3,60,0,2,60,0,2,60, + 0,6,30,0,4,30,0,7,254,0,12,15,0,8,15,0, + 8,15,0,24,7,128,56,7,128,254,31,224,19,23,69,19, + 0,0,3,156,0,3,156,0,3,156,0,0,0,0,0,0, + 0,0,96,0,0,96,0,0,240,0,0,240,0,1,120,0, + 1,120,0,3,60,0,2,60,0,2,60,0,6,30,0,4, + 30,0,7,254,0,12,15,0,8,15,0,8,15,0,24,7, + 128,56,7,128,254,31,224,19,24,72,19,0,0,0,240,0, + 1,152,0,1,8,0,1,152,0,0,240,0,0,0,0,0, + 96,0,0,96,0,0,240,0,0,240,0,1,120,0,1,120, + 0,3,60,0,2,60,0,2,60,0,6,30,0,4,30,0, + 7,254,0,12,15,0,8,15,0,8,15,0,24,7,128,56, + 7,128,254,31,224,25,18,72,26,0,0,1,255,255,128,0, + 111,3,128,0,111,1,128,0,207,0,128,0,207,0,128,1, + 143,8,128,1,143,8,0,3,15,24,0,3,15,248,0,6, + 15,24,0,7,255,8,0,12,15,8,0,12,15,0,128,24, + 15,0,128,24,15,0,128,48,15,1,128,112,15,3,128,252, + 63,255,128,17,23,69,19,1,251,3,249,128,15,15,128,60, + 3,128,60,1,128,120,1,128,120,0,128,248,0,128,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,120,0,128, + 120,0,128,60,1,0,60,1,0,15,6,0,3,248,0,0, + 128,0,1,192,0,0,224,0,0,96,0,3,192,0,15,24, + 48,18,1,0,12,0,14,0,7,0,1,128,0,192,0,0, + 255,254,60,30,60,6,60,2,60,2,60,34,60,32,60,96, + 63,224,60,96,60,32,60,32,60,2,60,2,60,2,60,6, + 60,30,255,254,15,24,48,18,1,0,0,24,0,56,0,112, + 0,192,1,128,0,0,255,254,60,30,60,6,60,2,60,2, + 60,34,60,32,60,96,63,224,60,96,60,32,60,32,60,2, + 60,2,60,2,60,6,60,30,255,254,15,23,46,18,1,0, + 1,128,3,192,6,96,12,48,0,0,255,254,60,30,60,6, + 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, + 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,23, + 46,18,1,0,14,112,14,112,14,112,0,0,0,0,255,254, + 60,30,60,6,60,2,60,2,60,34,60,32,60,96,63,224, + 60,96,60,32,60,32,60,2,60,2,60,2,60,6,60,30, + 255,254,8,24,24,10,1,0,192,224,112,24,12,0,255,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, + 8,24,24,10,1,0,3,7,14,24,48,0,255,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,255,8,23, + 23,10,1,0,24,60,102,195,0,255,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,255,8,23,23,10,1, + 0,231,231,231,0,0,255,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,255,18,18,54,20,1,0,255,240, + 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, + 60,7,192,60,7,192,255,135,192,60,7,192,60,7,192,60, + 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, + 0,255,240,0,20,22,66,22,1,0,0,226,0,1,252,0, + 2,56,0,0,0,0,252,7,240,62,1,192,31,0,128,31, + 128,128,31,192,128,23,224,128,19,240,128,17,240,128,16,248, + 128,16,124,128,16,126,128,16,63,128,16,31,128,16,15,128, + 16,7,128,16,3,128,56,1,128,254,0,128,19,24,72,21, + 1,0,6,0,0,7,0,0,3,128,0,0,192,0,0,96, + 0,0,0,0,3,248,0,15,30,0,60,7,128,60,7,128, + 120,3,192,120,3,192,248,3,224,248,3,224,248,3,224,248, + 3,224,248,3,224,248,3,224,120,3,192,120,3,192,60,7, + 128,60,7,128,15,30,0,3,248,0,19,23,69,21,1,0, + 0,24,0,0,56,0,0,96,0,0,192,0,0,0,0,3, + 248,0,15,30,0,60,7,128,60,7,128,120,3,192,120,3, + 192,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,120,3,192,120,3,192,60,7,128,60,7,128,15, + 30,0,3,248,0,19,23,69,21,1,0,0,96,0,0,240, + 0,1,152,0,3,12,0,0,0,0,3,248,0,15,30,0, + 60,7,128,60,7,128,120,3,192,120,3,192,248,3,224,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,120,3, + 192,120,3,192,60,7,128,60,7,128,15,30,0,3,248,0, + 19,22,66,21,1,0,0,226,0,1,252,0,2,56,0,0, + 0,0,3,248,0,15,30,0,60,7,128,60,7,128,120,3, + 192,120,3,192,248,3,224,248,3,224,248,3,224,248,3,224, + 248,3,224,248,3,224,120,3,192,120,3,192,60,7,128,60, + 7,128,15,30,0,3,248,0,19,23,69,21,1,0,7,28, + 0,7,28,0,7,28,0,0,0,0,0,0,0,3,248,0, + 15,30,0,60,7,128,60,7,128,120,3,192,120,3,192,248, + 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, + 224,120,3,192,120,3,192,60,7,128,60,7,128,15,30,0, + 3,248,0,12,12,24,14,1,1,192,48,224,112,112,224,57, + 192,31,128,15,0,15,0,31,128,57,192,112,224,224,112,192, + 48,20,18,54,21,0,0,1,252,48,7,143,96,30,3,192, + 30,3,192,60,7,224,60,13,224,124,25,240,124,49,240,124, + 97,240,124,193,240,125,129,240,127,1,240,62,1,224,60,1, + 224,62,3,192,126,3,192,199,143,0,129,252,0,19,24,72, + 21,1,0,3,0,0,3,128,0,1,192,0,0,96,0,0, + 48,0,0,0,0,255,15,224,60,3,128,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,30,2,0,31,142,0,7,248,0,19,24,72,21,1, + 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, + 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 30,2,0,31,142,0,7,248,0,19,23,69,21,1,0,0, + 96,0,0,240,0,1,152,0,3,12,0,0,0,0,255,15, + 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,30,2,0,31,142, + 0,7,248,0,19,23,69,21,1,0,7,28,0,7,28,0, + 7,28,0,0,0,0,0,0,0,255,15,224,60,3,128,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,30,2,0,31,142,0,7,248,0,18, + 24,72,18,0,0,0,6,0,0,14,0,0,28,0,0,48, + 0,0,96,0,0,0,0,255,15,192,60,3,0,30,6,0, + 30,6,0,15,12,0,15,12,0,7,152,0,7,152,0,3, + 240,0,3,240,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,7,248,0,16,18,36, + 18,1,0,255,128,60,0,60,0,60,0,63,248,60,62,60, + 30,60,31,60,31,60,31,60,31,60,30,60,62,63,240,60, + 0,60,0,60,0,255,128,15,18,36,15,255,0,7,224,30, + 120,28,60,60,60,60,60,60,56,60,112,61,224,60,60,60, + 30,60,30,60,30,60,30,60,30,60,30,60,28,61,60,253, + 240,14,18,36,15,0,0,12,0,14,0,7,0,3,0,1, + 128,0,0,127,128,241,224,240,240,96,240,1,240,14,240,120, + 240,240,240,240,240,240,240,249,252,126,56,14,18,36,15,0, + 0,1,128,3,128,7,0,6,0,12,0,0,0,127,128,241, + 224,240,240,96,240,1,240,14,240,120,240,240,240,240,240,240, + 240,249,252,126,56,14,18,36,15,0,0,2,0,7,0,15, + 128,24,192,48,96,0,0,127,128,241,224,240,240,96,240,1, + 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, + 17,34,15,0,0,14,32,31,192,35,128,0,0,0,0,127, + 128,241,224,240,240,96,240,1,240,14,240,120,240,240,240,240, + 240,240,240,249,252,126,56,14,17,34,15,0,0,56,224,56, + 224,56,224,0,0,0,0,127,128,241,224,240,240,96,240,1, + 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, + 18,36,15,0,0,7,0,13,128,8,128,13,128,7,0,0, + 0,127,128,241,224,240,240,96,240,1,240,14,240,120,240,240, + 240,240,240,240,240,249,252,126,56,22,12,36,23,0,0,31, + 207,192,121,248,112,112,248,120,112,240,56,1,240,60,14,255, + 252,120,240,0,240,240,0,240,248,8,240,248,8,249,188,48, + 126,15,224,13,17,34,14,0,251,15,240,56,120,120,120,112, + 48,240,0,240,0,240,0,240,0,120,8,120,8,60,48,31, + 224,2,0,7,0,3,128,1,128,15,0,14,18,36,15,0, + 0,12,0,14,0,7,0,3,0,1,128,0,0,15,192,56, + 112,120,120,112,56,240,60,255,252,240,0,240,0,120,8,120, + 8,60,48,15,224,14,18,36,15,0,0,0,96,0,224,1, + 192,3,128,6,0,0,0,15,192,56,112,120,120,112,56,240, + 60,255,252,240,0,240,0,120,8,120,8,60,48,15,224,14, + 18,36,15,0,0,2,0,7,0,15,128,24,192,48,96,0, + 0,15,192,56,112,120,120,112,56,240,60,255,252,240,0,240, + 0,120,8,120,8,60,48,15,224,14,17,34,15,0,0,28, + 112,28,112,28,112,0,0,0,0,15,192,56,112,120,120,112, + 56,240,60,255,252,240,0,240,0,120,8,120,8,60,48,15, + 224,8,18,18,9,0,0,96,112,56,24,12,0,252,60,60, + 60,60,60,60,60,60,60,60,255,8,18,18,9,0,0,12, + 28,56,48,96,0,252,60,60,60,60,60,60,60,60,60,60, + 255,9,18,36,9,0,0,8,0,28,0,62,0,99,0,193, + 128,0,0,252,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,255,0,8,17,17,9,0, + 0,231,231,231,0,0,252,60,60,60,60,60,60,60,60,60, + 60,255,14,18,36,15,0,0,192,0,57,192,15,0,15,0, + 49,192,0,224,15,240,56,112,120,120,112,56,240,60,240,60, + 240,60,240,60,112,56,120,120,56,112,15,192,17,17,51,18, + 0,0,3,136,0,7,240,0,8,224,0,0,0,0,0,0, + 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,254,63,128,14,18,36,15,0,0,12,0,14,0,7, + 0,3,0,1,128,0,0,15,192,56,112,120,120,112,56,240, + 60,240,60,240,60,240,60,112,56,120,120,56,112,15,192,14, + 18,36,15,0,0,0,96,0,224,1,192,3,0,6,0,0, + 0,15,192,56,112,120,120,112,56,240,60,240,60,240,60,240, + 60,112,56,120,120,56,112,15,192,14,18,36,15,0,0,2, + 0,7,0,15,128,24,192,48,96,0,0,15,192,56,112,120, + 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, + 112,15,192,14,17,34,15,0,0,7,16,15,224,17,192,0, + 0,0,0,15,192,56,112,120,120,112,56,240,60,240,60,240, + 60,240,60,112,56,120,120,56,112,15,192,14,17,34,15,0, + 0,56,224,56,224,56,224,0,0,0,0,15,192,56,112,120, + 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, + 112,15,192,12,12,24,14,1,1,6,0,6,0,6,0,0, + 0,0,0,255,240,255,240,0,0,0,0,6,0,6,0,6, + 0,14,18,36,15,0,253,0,16,0,16,0,32,15,224,56, + 112,120,120,112,184,240,188,241,60,241,60,242,60,114,56,124, + 120,60,112,15,192,8,0,16,0,16,0,17,18,54,18,0, + 0,3,0,0,3,128,0,1,192,0,0,192,0,0,96,0, + 0,0,0,254,63,128,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,62,62, + 0,31,222,0,15,159,128,17,18,54,18,0,0,0,96,0, + 0,224,0,1,192,0,1,128,0,3,0,0,0,0,0,254, + 63,128,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,62,62,0,31,222,0, + 15,159,128,17,18,54,18,0,0,0,128,0,1,192,0,3, + 224,0,6,48,0,12,24,0,0,0,0,254,63,128,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,62,62,0,31,222,0,15,159,128,17, + 17,51,18,0,0,14,56,0,14,56,0,14,56,0,0,0, + 0,0,0,0,254,63,128,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,62, + 62,0,31,222,0,15,159,128,16,23,46,15,255,251,0,48, + 0,112,0,224,0,192,1,128,0,0,254,63,60,12,30,8, + 30,24,15,16,15,48,7,160,7,224,3,192,3,192,1,192, + 1,128,1,128,97,0,243,0,254,0,120,0,16,23,46,16, + 255,251,252,0,60,0,60,0,60,0,60,0,60,0,61,240, + 63,28,60,30,60,14,60,15,60,15,60,15,60,15,60,14, + 62,30,63,28,61,240,60,0,60,0,60,0,60,0,255,0, + 16,22,44,15,255,251,14,56,14,56,14,56,0,0,0,0, + 254,63,60,12,30,8,30,24,15,16,15,48,7,160,7,224, + 3,192,3,192,1,192,1,128,1,128,97,0,243,0,254,0, + 120,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=23 x= 6 y=13 dx=26 dy= 0 ascent=20 len=72 + Font Bounding box w=33 h=40 x=-4 y=-10 + Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 + Pure Font ascent =18 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =20 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB18r[3736] U8G_SECTION(".progmem.u8g_font_ncenB18r") = { + 0,33,40,252,246,18,4,68,10,106,32,127,251,20,251,18, + 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, + 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, + 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, + 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, + 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, + 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, + 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, + 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, + 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, + 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, + 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, + 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, + 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, + 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, + 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, + 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, + 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, + 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, + 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, + 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, + 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, + 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, + 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, + 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, + 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, + 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, + 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, + 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, + 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, + 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, + 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, + 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, + 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, + 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, + 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, + 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, + 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, + 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, + 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, + 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, + 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, + 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, + 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, + 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, + 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, + 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, + 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, + 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, + 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, + 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, + 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, + 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, + 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, + 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, + 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, + 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, + 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, + 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, + 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, + 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, + 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, + 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, + 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, + 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, + 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, + 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, + 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, + 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, + 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, + 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, + 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, + 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, + 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, + 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, + 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, + 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, + 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, + 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, + 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, + 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, + 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, + 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, + 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, + 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, + 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, + 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, + 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, + 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, + 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, + 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, + 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, + 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, + 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, + 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, + 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, + 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, + 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, + 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, + 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, + 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, + 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, + 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, + 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, + 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, + 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, + 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, + 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, + 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, + 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, + 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, + 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, + 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, + 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, + 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, + 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, + 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, + 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, + 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, + 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, + 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, + 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, + 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, + 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, + 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, + 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, + 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, + 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, + 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, + 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, + 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, + 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, + 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, + 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, + 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, + 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, + 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, + 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, + 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, + 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, + 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, + 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, + 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, + 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, + 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, + 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, + 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, + 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, + 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, + 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, + 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, + 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, + 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, + 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, + 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, + 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, + 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, + 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, + 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, + 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, + 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, + 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, + 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, + 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, + 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, + 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, + 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, + 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, + 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, + 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, + 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, + 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, + 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, + 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, + 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, + 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, + 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, + 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, + 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, + 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, + 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, + 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, + 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, + 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, + 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, + 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, + 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, + 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, + 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, + 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, + 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, + 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, + 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, + 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, + 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, + 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, + 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, + 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, + 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, + 112,255,240,231,224,65,192,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=32 h=33 x= 8 y=18 dx=33 dy= 0 ascent=33 len=132 + Font Bounding box w=39 h=53 x=-4 y=-13 + Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =33 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB24[12964] U8G_SECTION(".progmem.u8g_font_ncenB24") = { + 0,39,53,252,243,25,6,143,16,147,32,255,249,33,249,25, + 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, + 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, + 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, + 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, + 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, + 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, + 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, + 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, + 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, + 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, + 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, + 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, + 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, + 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, + 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, + 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, + 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, + 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, + 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, + 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, + 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, + 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, + 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, + 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, + 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, + 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, + 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, + 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, + 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, + 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, + 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, + 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, + 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, + 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, + 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, + 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, + 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, + 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, + 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, + 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, + 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, + 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, + 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, + 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, + 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, + 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, + 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, + 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, + 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, + 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, + 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, + 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, + 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, + 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, + 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, + 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, + 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, + 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, + 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, + 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, + 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, + 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, + 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, + 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, + 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, + 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, + 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, + 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, + 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, + 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, + 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, + 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, + 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, + 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, + 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, + 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, + 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, + 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, + 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, + 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, + 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, + 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, + 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, + 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, + 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, + 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, + 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, + 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, + 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, + 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, + 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, + 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, + 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, + 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, + 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, + 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, + 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, + 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, + 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, + 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, + 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, + 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, + 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, + 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, + 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, + 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, + 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, + 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, + 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, + 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, + 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, + 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, + 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, + 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, + 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, + 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, + 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, + 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, + 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, + 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, + 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, + 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, + 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, + 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, + 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, + 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, + 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, + 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, + 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, + 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, + 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, + 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, + 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, + 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, + 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, + 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, + 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, + 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, + 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, + 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, + 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, + 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, + 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, + 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, + 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, + 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, + 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, + 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, + 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, + 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, + 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, + 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, + 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, + 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, + 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, + 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, + 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, + 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, + 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, + 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, + 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, + 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, + 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, + 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, + 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, + 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, + 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, + 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, + 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, + 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, + 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, + 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, + 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, + 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, + 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, + 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, + 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, + 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, + 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, + 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, + 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, + 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, + 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, + 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, + 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, + 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, + 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, + 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, + 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, + 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, + 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, + 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, + 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, + 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, + 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, + 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, + 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, + 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, + 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, + 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, + 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, + 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, + 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, + 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, + 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, + 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, + 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, + 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, + 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, + 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, + 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, + 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, + 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, + 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, + 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, + 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, + 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, + 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, + 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, + 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, + 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, + 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, + 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, + 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, + 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, + 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, + 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, + 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, + 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, + 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, + 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, + 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, + 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, + 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, + 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, + 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, + 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, + 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, + 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, + 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, + 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, + 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, + 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, + 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, + 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, + 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, + 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, + 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, + 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, + 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, + 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, + 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, + 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, + 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, + 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, + 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, + 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, + 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, + 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, + 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, + 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, + 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, + 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, + 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, + 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, + 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, + 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, + 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, + 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, + 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, + 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, + 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, + 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, + 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, + 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, + 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, + 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, + 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, + 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, + 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, + 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, + 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, + 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, + 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, + 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, + 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, + 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, + 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, + 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, + 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, + 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, + 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, + 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, + 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, + 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, + 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, + 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, + 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, + 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, + 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, + 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, + 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, + 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, + 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, + 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, + 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, + 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, + 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, + 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,9,1,1,6,25,25,10,2,249,120,252,252, + 252,252,120,0,0,48,48,48,48,48,48,120,120,120,120,124, + 252,252,252,252,252,120,15,22,44,19,1,253,0,6,0,6, + 0,12,3,252,14,124,60,62,124,62,120,126,248,126,248,220, + 248,192,249,128,253,128,255,2,255,6,126,6,63,28,31,248, + 15,224,24,0,24,0,48,0,17,24,72,19,1,0,1,248, + 0,7,252,0,15,142,0,15,15,0,31,31,0,31,31,0, + 31,31,0,31,14,0,15,0,0,15,0,0,7,128,0,127, + 248,0,127,248,0,7,128,0,7,128,0,7,128,0,3,128, + 0,3,129,128,123,3,128,255,199,0,199,255,0,199,254,0, + 253,254,0,120,124,0,16,16,32,19,1,3,99,198,247,239, + 255,254,127,252,60,62,120,30,112,14,112,14,112,14,112,14, + 120,30,60,60,127,254,255,255,247,239,99,198,19,24,72,19, + 0,0,255,31,224,255,31,224,124,7,128,62,7,0,62,7, + 0,31,6,0,31,14,0,15,140,0,15,140,0,7,216,0, + 7,216,0,3,240,0,31,254,0,31,254,0,1,224,0,1, + 224,0,31,254,0,31,254,0,1,224,0,1,224,0,1,224, + 0,1,224,0,15,252,0,15,252,0,4,25,25,20,8,0, + 240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,240, + 240,240,240,240,240,240,240,240,240,12,29,58,16,2,253,31, + 0,115,128,99,192,227,192,227,192,241,128,120,0,124,0,62, + 0,30,0,63,0,111,128,199,192,227,224,225,224,240,240,120, + 112,124,112,62,96,31,192,15,128,7,192,3,224,97,224,240, + 224,240,224,240,224,121,192,63,0,11,5,10,11,0,18,96, + 192,241,224,241,224,241,224,96,192,24,25,75,25,1,0,0, + 255,0,3,255,192,7,129,224,30,0,112,24,0,24,48,0, + 12,112,127,14,96,243,134,97,193,134,227,193,135,195,128,131, + 195,128,3,195,128,3,195,128,3,195,128,3,195,128,7,193, + 192,134,225,225,134,96,255,12,112,60,28,56,0,56,28,0, + 112,15,129,192,3,255,128,0,254,0,11,15,30,12,0,10, + 63,0,227,192,241,192,227,192,15,192,113,192,225,192,227,192, + 247,224,253,224,0,0,0,0,0,0,255,224,255,224,12,11, + 22,16,2,3,4,16,12,48,24,96,56,224,113,192,243,192, + 113,192,56,224,24,96,12,48,4,16,16,10,20,20,2,3, + 255,255,255,255,255,255,255,255,0,15,0,15,0,15,0,15, + 0,15,0,15,8,4,4,11,1,6,255,255,255,255,23,25, + 75,24,0,0,0,254,0,3,255,128,7,1,224,12,0,112, + 24,0,56,48,0,24,97,254,12,96,231,12,192,227,142,192, + 227,134,192,227,134,192,231,6,192,252,6,192,238,6,192,231, + 6,192,231,6,192,227,134,96,227,140,99,241,204,48,0,24, + 24,0,24,28,0,112,7,0,224,3,255,128,0,252,0,11, + 3,6,11,0,18,255,224,255,224,255,224,9,10,20,13,2, + 13,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, + 0,127,0,62,0,16,17,34,20,2,0,3,192,3,192,3, + 192,3,192,255,255,255,255,255,255,255,255,3,192,3,192,3, + 192,3,192,0,0,255,255,255,255,255,255,255,255,10,14,28, + 11,0,9,63,0,99,128,193,192,241,192,241,192,113,192,3, + 128,7,0,14,0,24,64,48,64,127,192,255,192,255,192,11, + 14,28,11,0,9,63,0,115,192,113,192,33,192,1,192,3, + 128,31,0,3,192,1,224,113,224,241,224,225,224,99,192,63, + 0,7,6,6,11,2,17,12,30,62,124,240,192,20,23,69, + 22,1,249,254,63,192,254,63,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, + 192,62,15,192,62,15,192,63,31,192,63,255,192,63,247,240, + 55,199,240,48,0,0,48,0,0,120,0,0,120,0,0,120, + 0,0,120,0,0,48,0,0,21,25,75,25,1,0,15,255, + 248,63,255,248,127,227,192,127,227,192,255,227,192,255,227,192, + 255,227,192,255,227,192,127,227,192,127,227,192,63,227,192,31, + 227,192,7,227,192,1,227,192,1,227,192,1,227,192,1,227, + 192,1,227,192,1,227,192,1,227,192,1,227,192,1,227,192, + 1,227,192,15,255,248,15,255,248,6,6,6,9,1,5,120, + 252,252,252,252,120,7,7,7,11,1,249,24,48,124,14,14, + 220,120,9,14,28,11,1,9,12,0,252,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,255,128,11,15,30,12,0,10,14,0,63,128,113,192, + 241,224,224,224,224,224,224,224,241,224,113,192,63,128,14,0, + 0,0,0,0,127,224,127,224,12,11,22,16,2,3,130,0, + 195,0,97,128,113,192,56,224,60,240,56,224,113,192,97,128, + 195,0,130,0,25,23,92,28,1,0,12,0,56,0,252,0, + 48,0,28,0,112,0,28,0,224,0,28,0,192,0,28,1, + 192,0,28,1,128,0,28,3,128,0,28,7,0,0,28,7, + 2,0,28,14,6,0,28,12,14,0,28,28,30,0,255,184, + 62,0,0,56,110,0,0,112,206,0,0,97,142,0,0,227, + 14,0,0,195,255,128,1,192,14,0,3,128,14,0,3,0, + 14,0,7,0,63,128,25,23,92,28,1,0,12,0,56,0, + 252,0,112,0,28,0,112,0,28,0,224,0,28,0,192,0, + 28,1,192,0,28,1,128,0,28,3,128,0,28,7,0,0, + 28,6,126,0,28,14,199,0,28,13,135,128,28,29,227,128, + 255,185,231,128,0,56,231,128,0,112,15,0,0,96,14,0, + 0,224,28,0,1,192,48,128,1,192,96,128,3,128,255,128, + 3,1,255,128,7,1,255,128,26,23,92,28,0,0,63,0, + 28,0,115,192,56,0,113,192,56,0,33,192,112,0,1,192, + 96,0,3,128,224,0,31,0,192,0,3,193,192,0,1,227, + 128,0,113,227,129,0,241,231,3,0,225,230,7,0,99,206, + 15,0,63,28,31,0,0,28,55,0,0,56,103,0,0,48, + 199,0,0,113,135,0,0,97,255,192,0,224,7,0,1,192, + 7,0,1,192,7,0,3,128,31,192,15,25,50,16,1,249, + 3,192,7,224,7,224,7,224,7,224,3,192,0,0,0,0, + 1,128,1,128,1,128,3,128,7,0,31,0,62,0,126,0, + 124,0,252,124,252,124,252,126,252,124,124,60,126,60,63,240, + 15,192,25,31,124,25,0,0,0,48,0,0,0,120,0,0, + 0,124,0,0,0,62,0,0,0,15,0,0,0,3,0,0, + 0,0,0,0,0,28,0,0,0,30,0,0,0,62,0,0, + 0,63,0,0,0,127,0,0,0,127,128,0,0,127,128,0, + 0,255,128,0,0,207,192,0,1,207,192,0,1,143,192,0, + 1,135,224,0,3,135,224,0,3,7,240,0,7,3,240,0, + 7,255,240,0,7,255,248,0,14,1,248,0,12,1,252,0, + 28,0,252,0,28,0,254,0,62,0,254,0,255,131,255,128, + 255,131,255,128,25,32,128,25,0,0,0,1,128,0,0,3, + 192,0,0,7,192,0,0,15,128,0,0,30,0,0,0,24, + 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, + 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, + 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, + 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, + 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, + 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, + 254,0,255,131,255,128,255,131,255,128,25,31,124,25,0,0, + 0,28,0,0,0,62,0,0,0,127,0,0,0,227,128,0, + 1,128,192,0,0,0,0,0,0,28,0,0,0,28,0,0, + 0,30,0,0,0,62,0,0,0,63,0,0,0,127,0,0, + 0,127,128,0,0,127,128,0,0,255,128,0,0,207,192,0, + 1,207,192,0,1,143,192,0,1,135,224,0,3,135,224,0, + 3,7,240,0,7,3,240,0,7,255,240,0,7,255,248,0, + 14,1,248,0,12,1,252,0,28,0,252,0,28,0,254,0, + 62,0,254,0,255,131,255,128,255,131,255,128,25,31,124,25, + 0,0,0,56,96,0,0,127,224,0,0,255,192,0,0,195, + 128,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28, + 0,0,0,30,0,0,0,62,0,0,0,63,0,0,0,127, + 0,0,0,127,128,0,0,127,128,0,0,255,128,0,0,207, + 192,0,1,207,192,0,1,143,192,0,1,135,224,0,3,135, + 224,0,3,7,240,0,7,3,240,0,7,255,240,0,7,255, + 248,0,14,1,248,0,12,1,252,0,28,0,252,0,28,0, + 254,0,62,0,254,0,255,131,255,128,255,131,255,128,25,31, + 124,25,0,0,0,193,128,0,1,227,192,0,1,227,192,0, + 1,227,192,0,0,193,128,0,0,0,0,0,0,28,0,0, + 0,28,0,0,0,30,0,0,0,62,0,0,0,63,0,0, + 0,127,0,0,0,127,128,0,0,127,128,0,0,255,128,0, + 0,207,192,0,1,207,192,0,1,143,192,0,1,135,224,0, + 3,135,224,0,3,7,240,0,7,3,240,0,7,255,240,0, + 7,255,248,0,14,1,248,0,12,1,252,0,28,0,252,0, + 28,0,254,0,62,0,254,0,255,131,255,128,255,131,255,128, + 25,33,132,25,0,0,0,62,0,0,0,119,0,0,0,99, + 0,0,0,99,0,0,0,119,0,0,0,62,0,0,0,0, + 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, + 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, + 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, + 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, + 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, + 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, + 254,0,255,131,255,128,255,131,255,128,31,25,100,33,255,0, + 1,255,255,254,1,255,255,254,0,123,240,126,0,59,240,62, + 0,51,240,30,0,51,240,14,0,115,240,6,0,99,240,198, + 0,227,240,198,0,195,241,194,1,195,241,192,1,131,243,192, + 3,131,255,192,3,3,255,192,7,255,243,192,7,255,241,192, + 14,3,240,198,14,3,240,198,12,3,240,198,28,3,240,14, + 24,3,240,14,56,3,240,30,124,3,240,126,255,31,255,254, + 255,31,255,254,22,32,96,24,1,249,0,126,24,3,255,184, + 7,193,248,31,128,248,31,0,120,62,0,56,126,0,56,126, + 0,24,254,0,24,252,0,8,252,0,0,252,0,0,252,0, + 0,252,0,0,252,0,0,254,0,0,254,0,12,254,0,28, + 126,0,24,126,0,56,63,0,48,31,128,112,15,193,224,7, + 255,192,0,255,0,0,48,0,0,96,0,0,248,0,0,28, + 0,0,28,0,1,184,0,0,240,0,21,32,96,23,1,0, + 0,192,0,1,224,0,1,240,0,0,248,0,0,60,0,0, + 12,0,0,0,0,255,255,248,255,255,248,31,129,248,31,128, + 248,31,128,120,31,128,56,31,128,56,31,134,24,31,134,24, + 31,142,0,31,142,0,31,158,0,31,254,0,31,254,0,31, + 158,0,31,142,0,31,134,24,31,134,24,31,134,24,31,128, + 56,31,128,56,31,128,120,31,129,248,255,255,248,255,255,248, + 21,32,96,23,1,0,0,3,0,0,7,128,0,15,128,0, + 31,0,0,60,0,0,48,0,0,0,0,255,255,248,255,255, + 248,31,129,248,31,128,248,31,128,120,31,128,56,31,128,56, + 31,134,24,31,134,24,31,142,0,31,142,0,31,158,0,31, + 254,0,31,254,0,31,158,0,31,142,0,31,134,24,31,134, + 24,31,134,24,31,128,56,31,128,56,31,128,120,31,129,248, + 255,255,248,255,255,248,21,32,96,23,1,0,0,56,0,0, + 124,0,0,254,0,1,199,0,3,1,128,0,0,0,0,0, + 0,255,255,248,255,255,248,31,129,248,31,128,248,31,128,120, + 31,128,56,31,128,56,31,134,24,31,134,24,31,142,0,31, + 142,0,31,158,0,31,254,0,31,254,0,31,158,0,31,142, + 0,31,134,24,31,134,24,31,134,24,31,128,56,31,128,56, + 31,128,120,31,129,248,255,255,248,255,255,248,21,32,96,23, + 1,0,1,131,0,3,199,128,3,199,128,3,199,128,1,131, + 0,0,0,0,0,0,0,255,255,248,255,255,248,31,129,248, + 31,128,248,31,128,120,31,128,56,31,128,56,31,134,24,31, + 134,24,31,142,0,31,142,0,31,158,0,31,254,0,31,254, + 0,31,158,0,31,142,0,31,134,24,31,134,24,31,134,24, + 31,128,56,31,128,56,31,128,120,31,129,248,255,255,248,255, + 255,248,12,33,66,14,1,0,48,0,120,0,124,0,62,0, + 15,0,3,0,0,0,0,0,255,240,255,240,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,255,240,255,240,12,33,66,14,1,0, + 0,192,1,224,3,224,7,192,15,0,12,0,0,0,0,0, + 255,240,255,240,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,255,240, + 255,240,12,32,64,14,1,0,7,0,15,128,31,192,56,224, + 96,48,0,0,0,0,255,240,255,240,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,255,240,255,240,12,32,64,14,1,0,48,96, + 120,240,120,240,120,240,48,96,0,0,0,0,255,240,255,240, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,255,240,255,240,24,25, + 75,26,1,0,255,255,0,255,255,224,31,131,240,31,129,248, + 31,128,252,31,128,124,31,128,126,31,128,126,31,128,127,31, + 128,63,31,128,63,31,128,63,255,248,63,255,248,63,31,128, + 63,31,128,63,31,128,63,31,128,127,31,128,126,31,128,126, + 31,128,252,31,128,248,31,131,240,255,255,224,255,255,0,27, + 31,124,27,0,0,0,56,96,0,0,127,224,0,0,255,192, + 0,0,195,128,0,0,0,0,0,0,0,0,0,255,128,127, + 224,255,192,127,224,63,224,15,0,15,224,6,0,15,240,6, + 0,15,248,6,0,15,252,6,0,13,254,6,0,12,254,6, + 0,12,255,6,0,12,127,134,0,12,63,198,0,12,31,230, + 0,12,15,230,0,12,15,246,0,12,7,254,0,12,3,254, + 0,12,1,254,0,12,0,254,0,12,0,126,0,12,0,126, + 0,12,0,62,0,30,0,30,0,255,192,14,0,255,192,6, + 0,24,32,96,26,1,0,1,128,0,3,192,0,3,224,0, + 1,240,0,0,120,0,0,24,0,0,0,0,0,126,0,3, + 255,192,15,193,240,31,128,248,63,0,252,62,0,124,126,0, + 126,126,0,126,252,0,63,252,0,63,252,0,63,252,0,63, + 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,126, + 0,126,126,0,126,62,0,124,63,0,252,31,128,248,15,193, + 240,3,255,192,0,126,0,24,32,96,26,1,0,0,0,192, + 0,1,224,0,3,224,0,7,192,0,15,0,0,12,0,0, + 0,0,0,126,0,3,255,192,15,193,240,31,128,248,63,0, + 252,62,0,124,126,0,126,126,0,126,252,0,63,252,0,63, + 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, + 0,63,252,0,63,126,0,126,126,0,126,62,0,124,63,0, + 252,31,128,248,15,193,240,3,255,192,0,126,0,24,32,96, + 26,1,0,0,28,0,0,62,0,0,127,0,0,227,128,1, + 128,192,0,0,0,0,0,0,0,126,0,3,255,192,15,193, + 240,31,128,248,63,0,252,62,0,124,126,0,126,126,0,126, + 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, + 0,63,252,0,63,252,0,63,252,0,63,126,0,126,126,0, + 126,62,0,124,63,0,252,31,128,248,15,193,240,3,255,192, + 0,126,0,24,31,93,26,1,0,0,112,192,0,255,192,1, + 255,128,1,135,0,0,0,0,0,0,0,0,126,0,3,255, + 192,15,193,240,31,128,248,63,0,252,62,0,124,126,0,126, + 126,0,126,252,0,63,252,0,63,252,0,63,252,0,63,252, + 0,63,252,0,63,252,0,63,252,0,63,252,0,63,126,0, + 126,126,0,126,62,0,124,63,0,252,31,128,248,15,193,240, + 3,255,192,0,126,0,24,32,96,26,1,0,0,193,128,1, + 227,192,1,227,192,1,227,192,0,193,128,0,0,0,0,0, + 0,0,126,0,3,255,192,15,193,240,31,128,248,63,0,252, + 62,0,124,126,0,126,126,0,126,252,0,63,252,0,63,252, + 0,63,252,0,63,252,0,63,252,0,63,252,0,63,252,0, + 63,252,0,63,126,0,126,126,0,126,62,0,124,63,0,252, + 31,128,248,15,193,240,3,255,192,0,126,0,16,17,34,20, + 2,0,32,4,112,14,248,31,252,63,126,126,63,252,31,248, + 15,240,7,224,15,240,31,248,63,252,126,126,252,63,248,31, + 112,14,32,4,24,27,81,26,1,255,0,0,12,0,126,24, + 3,255,248,7,195,240,31,128,248,31,0,248,62,0,252,126, + 1,254,126,3,126,254,7,127,252,6,63,252,12,63,252,28, + 63,252,24,63,252,48,63,252,96,63,252,224,63,254,192,127, + 127,128,126,127,128,126,63,0,124,31,0,248,31,128,248,15, + 193,224,27,255,192,48,126,0,48,0,0,26,32,128,28,1, + 0,0,48,0,0,0,120,0,0,0,124,0,0,0,62,0, + 0,0,15,0,0,0,3,0,0,0,0,0,0,255,240,255, + 192,255,240,255,192,31,128,30,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,28,0,15,192,24, + 0,15,224,56,0,7,248,240,0,3,255,224,0,0,255,192, + 0,26,32,128,28,1,0,0,0,96,0,0,0,240,0,0, + 1,240,0,0,3,224,0,0,7,128,0,0,6,0,0,0, + 0,0,0,255,240,255,192,255,240,255,192,31,128,30,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,28,0,15,192,24,0,15,224,56,0,7,248,240,0,3, + 255,224,0,0,255,192,0,26,32,128,28,1,0,0,14,0, + 0,0,31,0,0,0,63,128,0,0,113,192,0,0,192,96, + 0,0,0,0,0,0,0,0,0,255,240,255,192,255,240,255, + 192,31,128,30,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, + 0,31,128,12,0,31,128,28,0,15,192,24,0,15,224,56, + 0,7,248,240,0,3,255,224,0,0,255,192,0,26,32,128, + 28,1,0,0,48,96,0,0,120,240,0,0,120,240,0,0, + 120,240,0,0,48,96,0,0,0,0,0,0,0,0,0,255, + 240,255,192,255,240,255,192,31,128,30,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, + 128,12,0,31,128,12,0,31,128,12,0,31,128,28,0,15, + 192,24,0,15,224,56,0,7,248,240,0,3,255,224,0,0, + 255,192,0,24,33,99,24,0,0,0,0,96,0,0,240,0, + 1,240,0,3,224,0,7,128,0,6,0,0,0,0,0,0, + 0,255,241,255,255,241,255,63,128,124,31,192,56,31,192,112, + 15,224,112,15,224,224,7,240,192,3,241,192,3,249,128,1, + 251,128,1,255,0,0,255,0,0,126,0,0,126,0,0,126, + 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, + 0,126,0,0,126,0,3,255,192,3,255,192,22,25,75,24, + 1,0,255,240,0,255,240,0,31,128,0,31,128,0,31,128, + 0,31,255,128,31,255,224,31,131,240,31,129,248,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, + 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, + 0,31,128,0,31,128,0,255,240,0,255,240,0,18,25,75, + 20,0,0,3,252,0,7,190,0,15,15,0,15,15,0,31, + 15,128,31,15,128,31,15,128,31,15,0,31,15,0,31,14, + 0,31,28,0,31,126,0,31,15,128,31,15,128,31,7,192, + 31,7,192,31,7,192,31,7,192,31,7,192,31,7,192,31, + 7,128,31,7,128,31,79,0,255,254,0,255,120,0,18,23, + 69,20,1,0,3,0,0,7,128,0,7,192,0,3,224,0, + 0,240,0,0,48,0,0,0,0,15,240,0,63,252,0,120, + 62,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, + 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, + 252,127,64,127,255,192,63,143,128,18,23,69,20,1,0,0, + 96,0,0,240,0,1,240,0,3,224,0,7,128,0,6,0, + 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, + 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, + 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, + 192,63,143,128,18,22,66,20,1,0,1,192,0,3,224,0, + 7,240,0,14,56,0,24,12,0,0,0,0,15,240,0,63, + 252,0,120,62,0,124,62,0,124,62,0,56,62,0,0,62, + 0,3,254,0,31,190,0,126,62,0,124,62,0,252,62,0, + 252,62,0,252,127,64,127,255,192,63,143,128,18,22,66,20, + 1,0,7,12,0,15,252,0,31,248,0,24,112,0,0,0, + 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, + 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, + 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, + 192,63,143,128,18,23,69,20,1,0,12,24,0,30,60,0, + 30,60,0,30,60,0,12,24,0,0,0,0,0,0,0,15, + 240,0,63,252,0,120,62,0,124,62,0,124,62,0,56,62, + 0,0,62,0,3,254,0,31,190,0,126,62,0,124,62,0, + 252,62,0,252,62,0,252,127,64,127,255,192,63,143,128,18, + 23,69,20,1,0,3,224,0,7,112,0,6,48,0,6,48, + 0,7,112,0,3,224,0,0,0,0,15,240,0,63,252,0, + 120,62,0,124,62,0,124,62,0,56,62,0,0,62,0,3, + 254,0,31,190,0,126,62,0,124,62,0,252,62,0,252,62, + 0,252,127,64,127,255,192,63,143,128,26,16,64,28,1,0, + 7,224,248,0,30,123,222,0,56,63,15,0,124,63,15,128, + 124,62,7,128,120,62,7,192,49,254,7,192,15,255,255,192, + 63,255,255,192,126,62,0,0,252,62,0,0,248,63,0,192, + 248,127,1,128,252,239,131,128,127,199,255,0,63,1,252,0, + 15,23,46,17,1,249,3,240,14,60,62,62,124,62,124,62, + 248,28,248,0,248,0,248,0,248,0,252,2,252,6,126,6, + 63,28,31,248,7,240,1,128,3,0,7,192,0,224,0,224, + 13,192,7,128,16,23,46,18,1,0,6,0,15,0,15,128, + 7,192,1,224,0,96,0,0,3,224,14,120,60,60,124,30, + 124,30,248,31,248,31,255,255,255,255,248,0,248,0,252,3, + 124,6,63,14,31,252,7,240,16,23,46,18,1,0,0,48, + 0,120,0,248,1,240,3,192,3,0,0,0,3,224,14,120, + 60,60,124,30,124,30,248,31,248,31,255,255,255,255,248,0, + 248,0,252,3,124,6,63,14,31,252,7,240,16,22,44,18, + 1,0,1,192,3,224,7,240,14,56,24,12,0,0,3,224, + 14,120,60,60,124,30,124,30,248,31,248,31,255,255,255,255, + 248,0,248,0,252,3,124,6,63,14,31,252,7,240,16,23, + 46,18,1,0,12,24,30,60,30,60,30,60,12,24,0,0, + 0,0,3,224,14,120,60,60,124,30,124,30,248,31,248,31, + 255,255,255,255,248,0,248,0,252,3,124,6,63,14,31,252, + 7,240,9,23,46,11,1,0,96,0,240,0,248,0,124,0, + 30,0,6,0,0,0,254,0,254,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,255,128,255,128,9,23,46,11,1,0,6,0,15,0, + 31,0,62,0,120,0,96,0,0,0,254,0,254,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,255,128,255,128,11,22,44,11,255,0, + 14,0,31,0,63,128,113,192,192,96,0,0,63,128,63,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,63,224,63,224,11,23,46,11, + 0,0,96,192,241,224,241,224,241,224,96,192,0,0,0,0, + 127,0,127,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,127,192,127,192, + 17,26,78,20,1,0,0,4,0,14,14,0,15,156,0,3, + 248,0,1,240,0,3,248,0,7,120,0,14,60,0,4,62, + 0,0,30,0,3,255,0,15,63,0,60,31,0,124,31,128, + 120,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,124,31,0,124,31,0,62,62,0,15,248, + 0,3,224,0,20,22,66,22,1,0,3,134,0,7,254,0, + 15,252,0,12,56,0,0,0,0,0,0,0,254,62,0,254, + 255,128,63,255,128,63,143,192,63,7,192,63,7,192,62,7, + 192,62,7,192,62,7,192,62,7,192,62,7,192,62,7,192, + 62,7,192,62,7,192,255,159,240,255,159,240,17,23,69,19, + 1,0,6,0,0,15,0,0,15,128,0,7,192,0,1,224, + 0,0,96,0,0,0,0,3,224,0,15,248,0,62,62,0, + 124,31,0,124,31,0,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,124,31,0,124,31,0,62,62, + 0,15,248,0,3,224,0,17,23,69,19,1,0,0,24,0, + 0,60,0,0,124,0,0,248,0,1,224,0,1,128,0,0, + 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, + 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, + 224,0,17,22,66,19,1,0,1,192,0,3,224,0,7,240, + 0,14,56,0,24,12,0,0,0,0,3,224,0,15,248,0, + 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, + 0,62,62,0,15,248,0,3,224,0,17,22,66,19,1,0, + 3,134,0,7,254,0,15,252,0,12,56,0,0,0,0,0, + 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, + 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, + 224,0,17,23,69,19,1,0,12,24,0,30,60,0,30,60, + 0,30,60,0,12,24,0,0,0,0,0,0,0,3,224,0, + 15,248,0,62,62,0,124,31,0,124,31,0,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, + 0,124,31,0,62,62,0,15,248,0,3,224,0,17,17,51, + 20,2,0,1,192,0,3,224,0,3,224,0,3,224,0,1, + 192,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, + 128,0,0,0,0,0,0,1,192,0,3,224,0,3,224,0, + 3,224,0,1,192,0,17,22,66,19,1,253,0,2,0,0, + 6,0,0,12,0,3,236,0,15,248,0,62,62,0,124,63, + 0,124,111,0,248,79,128,248,207,128,248,143,128,249,143,128, + 251,15,128,250,15,128,126,31,0,124,31,0,62,62,0,31, + 248,0,27,224,0,48,0,0,48,0,0,32,0,0,20,23, + 69,22,1,0,3,0,0,7,128,0,7,192,0,3,224,0, + 0,240,0,0,48,0,0,0,0,254,31,192,254,31,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, + 192,62,7,192,62,7,192,62,15,192,62,15,192,63,31,192, + 31,255,192,31,247,240,7,199,240,20,23,69,22,1,0,0, + 24,0,0,60,0,0,124,0,0,248,0,1,224,0,1,128, + 0,0,0,0,254,31,192,254,31,192,62,7,192,62,7,192, + 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,15,192,62,15,192,63,31,192,31,255,192,31,247, + 240,7,199,240,20,22,66,22,1,0,0,224,0,1,240,0, + 3,248,0,7,28,0,12,6,0,0,0,0,254,31,192,254, + 31,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, + 192,62,7,192,62,7,192,62,7,192,62,15,192,62,15,192, + 63,31,192,31,255,192,31,247,240,7,199,240,20,23,69,22, + 1,0,6,12,0,15,30,0,15,30,0,15,30,0,6,12, + 0,0,0,0,0,0,0,254,31,192,254,31,192,62,7,192, + 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,15,192,62,15,192,63,31,192,31,255, + 192,31,247,240,7,199,240,19,30,90,19,0,249,0,12,0, + 0,30,0,0,62,0,0,124,0,0,240,0,0,192,0,0, + 0,0,255,143,224,255,143,224,63,3,128,63,3,128,31,3, + 0,31,135,0,15,134,0,15,198,0,7,204,0,7,236,0, + 3,248,0,3,248,0,1,248,0,1,240,0,0,240,0,0, + 224,0,0,96,0,112,192,0,248,192,0,249,128,0,255,0, + 0,127,0,0,60,0,0,20,29,87,22,0,249,255,0,0, + 255,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 63,0,31,127,192,31,199,224,31,131,224,31,131,240,31,3, + 240,31,3,240,31,1,240,31,1,240,31,1,240,31,3,240, + 31,131,224,31,131,224,31,199,192,31,255,128,31,63,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,127,224, + 0,127,224,0,19,30,90,19,0,249,3,6,0,7,143,0, + 7,143,0,7,143,0,3,6,0,0,0,0,0,0,0,255, + 143,224,255,143,224,63,3,128,63,3,128,31,3,0,31,135, + 0,15,134,0,15,198,0,7,204,0,7,236,0,3,248,0, + 3,248,0,1,248,0,1,240,0,0,240,0,0,224,0,0, + 96,0,112,192,0,248,192,0,249,128,0,255,0,0,127,0, + 0,60,0,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=17 h=25 x= 3 y=10 dx=20 dy= 0 ascent=25 len=72 + Font Bounding box w=39 h=53 x=-4 y=-13 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =25 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB24n[846] U8G_SECTION(".progmem.u8g_font_ncenB24n") = { + 0,39,53,252,243,24,0,0,0,0,42,57,0,25,251,24, + 0,12,15,30,17,2,10,6,0,14,0,14,0,230,112,230, + 112,246,240,63,192,15,0,127,224,246,240,230,112,230,112,7, + 0,7,0,6,0,16,16,32,20,2,1,3,192,3,192,3, + 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, + 192,3,192,3,192,3,192,3,192,3,192,6,11,11,9,2, + 251,120,248,252,252,252,124,28,24,48,112,224,8,4,4,11, + 1,6,255,255,255,255,6,6,6,9,1,0,120,252,252,252, + 252,120,10,25,50,9,255,0,0,192,1,192,1,192,1,128, + 3,128,3,128,3,0,7,0,7,0,6,0,14,0,14,0, + 12,0,28,0,28,0,24,0,56,0,56,0,48,0,112,0, + 112,0,96,0,224,0,224,0,192,0,16,24,48,19,1,0, + 3,192,15,240,30,120,60,60,124,62,120,30,248,31,248,31, + 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, + 248,31,120,30,120,30,124,62,60,60,30,120,15,240,3,192, + 13,24,48,19,3,0,1,128,7,128,255,128,255,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,255,248,255,248,17,24,72,19,1,0,15,240,0,63, + 252,0,120,126,0,240,63,0,248,31,0,252,31,0,252,31, + 0,252,31,0,124,63,0,56,62,0,0,124,0,0,248,0, + 0,240,0,1,224,0,3,192,0,3,129,128,7,1,128,14, + 1,128,28,3,128,63,255,128,127,255,0,127,255,0,255,255, + 0,255,255,0,16,24,48,19,1,0,15,224,63,248,120,124, + 248,62,252,62,252,62,252,62,120,62,0,124,0,112,7,224, + 7,192,0,248,0,126,0,62,0,63,120,31,252,31,252,31, + 252,63,248,62,120,126,63,248,7,224,17,24,72,19,0,0, + 0,4,0,0,12,0,0,28,0,0,60,0,0,124,0,0, + 252,0,1,252,0,1,252,0,3,124,0,6,124,0,12,124, + 0,28,124,0,56,124,0,112,124,0,224,124,0,192,124,0, + 255,255,128,255,255,128,0,124,0,0,124,0,0,124,0,0, + 124,0,3,255,128,3,255,128,16,24,48,19,1,0,31,255, + 63,254,63,254,63,252,63,240,48,0,48,0,48,0,48,0, + 55,224,63,248,56,124,48,62,32,62,0,31,0,31,56,31, + 124,31,252,31,252,62,120,62,112,252,63,240,15,192,17,24, + 72,19,1,0,3,240,0,15,252,0,31,30,0,62,62,0, + 60,62,0,124,62,0,120,28,0,248,0,0,248,0,0,248, + 0,0,249,248,0,255,254,0,255,127,0,252,31,0,248,31, + 128,248,15,128,248,15,128,248,15,128,248,15,128,124,31,0, + 124,31,0,62,62,0,31,252,0,7,240,0,16,24,48,19, + 2,0,255,255,255,254,255,254,255,252,255,252,192,24,192,24, + 192,56,128,112,0,112,0,240,0,224,1,224,1,224,3,224, + 3,192,7,192,7,192,15,192,15,192,15,192,15,192,15,192, + 7,128,17,24,72,19,1,0,7,240,0,15,252,0,60,62, + 0,56,31,0,120,15,0,120,15,0,120,15,0,124,15,0, + 126,30,0,127,252,0,63,240,0,31,252,0,15,254,0,63, + 255,0,120,127,0,248,31,128,240,15,128,240,15,128,240,15, + 0,240,15,0,248,30,0,124,60,0,63,240,0,7,192,0, + 17,24,72,19,1,0,3,192,0,31,248,0,62,124,0,124, + 62,0,252,31,0,248,31,0,248,15,128,248,15,128,248,15, + 128,252,31,128,252,63,128,127,111,128,63,207,128,31,143,128, + 0,15,128,0,15,128,112,15,0,248,31,0,252,31,0,248, + 30,0,248,62,0,112,252,0,63,240,0,15,192,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=32 h=32 x= 8 y=17 dx=32 dy= 0 ascent=26 len=124 + Font Bounding box w=39 h=53 x=-4 y=-13 + Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =26 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenB24r[5937] U8G_SECTION(".progmem.u8g_font_ncenB24r") = { + 0,39,53,252,243,25,6,143,16,147,32,127,249,26,249,25, + 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, + 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, + 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, + 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, + 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, + 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, + 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, + 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, + 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, + 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, + 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, + 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, + 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, + 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, + 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, + 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, + 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, + 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, + 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, + 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, + 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, + 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, + 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, + 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, + 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, + 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, + 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, + 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, + 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, + 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, + 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, + 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, + 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, + 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, + 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, + 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, + 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, + 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, + 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, + 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, + 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, + 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, + 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, + 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, + 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, + 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, + 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, + 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, + 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, + 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, + 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, + 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, + 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, + 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, + 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, + 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, + 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, + 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, + 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, + 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, + 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, + 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, + 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, + 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, + 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, + 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, + 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, + 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, + 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, + 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, + 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, + 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, + 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, + 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, + 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, + 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, + 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, + 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, + 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, + 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, + 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, + 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, + 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, + 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, + 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, + 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, + 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, + 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, + 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, + 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, + 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, + 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, + 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, + 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, + 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, + 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, + 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, + 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, + 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, + 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, + 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, + 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, + 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, + 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, + 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, + 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, + 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, + 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, + 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, + 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, + 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, + 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, + 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, + 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, + 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, + 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, + 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, + 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, + 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, + 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, + 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, + 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, + 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, + 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, + 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, + 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, + 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, + 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, + 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, + 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, + 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, + 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, + 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, + 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, + 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, + 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, + 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, + 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, + 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, + 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, + 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, + 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, + 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, + 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, + 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, + 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, + 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, + 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, + 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, + 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, + 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, + 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, + 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, + 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, + 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, + 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, + 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, + 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, + 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, + 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, + 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, + 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, + 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, + 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, + 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, + 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, + 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, + 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, + 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, + 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, + 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, + 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, + 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, + 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, + 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, + 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, + 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, + 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, + 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, + 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, + 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, + 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, + 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, + 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, + 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, + 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, + 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, + 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, + 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, + 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, + 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, + 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, + 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, + 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, + 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, + 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, + 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, + 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, + 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, + 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, + 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, + 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, + 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, + 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, + 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, + 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, + 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, + 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, + 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, + 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, + 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, + 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, + 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, + 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, + 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, + 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, + 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, + 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, + 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, + 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, + 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, + 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, + 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, + 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, + 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, + 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, + 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, + 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, + 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, + 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, + 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, + 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, + 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, + 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, + 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, + 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, + 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, + 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, + 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, + 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, + 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, + 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, + 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, + 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, + 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, + 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, + 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, + 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, + 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, + 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, + 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, + 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, + 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, + 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, + 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, + 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, + 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, + 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, + 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, + 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, + 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, + 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, + 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, + 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, + 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, + 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, + 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, + 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, + 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, + 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, + 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, + 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, + 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, + 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, + 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, + 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, + 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, + 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, + 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, + 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, + 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, + 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, + 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, + 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, + 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, + 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, + 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, + 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, + 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, + 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, + 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, + 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, + 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, + 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, + 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, + 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, + 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, + 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, + 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, + 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, + 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, + 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, + 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, + 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, + 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, + 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, + 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, + 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, + 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, + 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, + 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, + 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, + 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, + 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, + 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, + 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, + 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, + 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, + 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, + 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, + 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, + 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, + 255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=16 + Font Bounding box w=14 h=18 x=-2 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =11 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR08[2642] U8G_SECTION(".progmem.u8g_font_ncenR08") = { + 0,14,18,254,252,8,1,180,3,120,32,255,254,11,254,8, + 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, + 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, + 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, + 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, + 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, + 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, + 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, + 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, + 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, + 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, + 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, + 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, + 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, + 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, + 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, + 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, + 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, + 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, + 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, + 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, + 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, + 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, + 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, + 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, + 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, + 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, + 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, + 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, + 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, + 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, + 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, + 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, + 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, + 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, + 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, + 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, + 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, + 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, + 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, + 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, + 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, + 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, + 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, + 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, + 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, + 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, + 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, + 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, + 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, + 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, + 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, + 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, + 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, + 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, + 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, + 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, + 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, + 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, + 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, + 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, + 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, + 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, + 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, + 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, + 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, + 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, + 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, + 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, + 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, + 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, + 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, + 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, + 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, + 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, + 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, + 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, + 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, + 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, + 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,0,0,0,3,0,1,1,8,8,4,1,254,128,128, + 0,128,128,128,128,128,5,7,7,6,0,255,16,120,168,160, + 200,112,64,6,8,8,7,0,0,56,72,64,248,32,32,68, + 248,6,6,6,7,0,1,132,120,72,72,120,132,7,8,8, + 8,0,0,198,68,40,108,16,124,16,56,1,8,8,6,2, + 0,128,128,128,0,0,128,128,128,4,10,10,5,0,254,112, + 144,128,96,144,144,96,16,144,224,3,1,1,4,0,6,160, + 9,8,16,10,0,0,62,0,65,0,156,128,164,128,160,128, + 156,128,65,0,62,0,4,6,6,5,0,2,224,32,96,176, + 0,240,5,3,3,6,0,1,72,144,72,5,3,3,6,0, + 1,248,8,8,3,1,1,4,0,2,224,9,8,16,10,0, + 0,62,0,65,0,188,128,148,128,152,128,182,128,65,0,62, + 0,4,1,1,5,0,6,240,3,4,4,4,0,4,64,160, + 160,64,5,5,5,6,0,0,32,248,32,0,248,3,4,4, + 3,0,4,96,160,64,224,3,4,4,3,0,4,224,64,32, + 192,2,2,2,3,0,6,64,128,5,7,7,6,0,254,144, + 144,144,144,232,128,128,6,10,10,7,0,254,124,168,168,168, + 104,40,40,40,40,124,1,2,2,4,1,2,128,128,2,3, + 3,3,0,254,128,64,192,3,4,4,3,0,4,64,192,64, + 224,4,6,6,5,0,2,96,144,144,96,0,240,5,3,3, + 6,0,1,144,72,144,7,8,8,7,0,0,72,200,80,240, + 36,44,94,68,6,8,8,7,0,0,72,200,80,240,44,52, + 72,92,7,8,8,7,0,0,232,72,48,208,36,44,94,68, + 4,8,8,5,0,254,32,32,0,32,64,128,144,96,7,11, + 11,8,0,0,32,16,0,16,16,40,40,68,124,68,238,7, + 11,11,8,0,0,8,16,0,16,16,40,40,68,124,68,238, + 7,11,11,8,0,0,16,40,0,16,16,40,40,68,124,68, + 238,7,11,11,8,0,0,20,40,0,16,16,40,40,68,124, + 68,238,7,10,10,8,0,0,40,0,16,16,40,40,68,124, + 68,238,7,11,11,8,0,0,16,40,16,16,16,40,40,68, + 124,68,238,10,8,16,11,0,0,31,192,12,64,21,64,23, + 0,61,0,36,64,68,64,231,192,6,10,10,7,0,254,60, + 68,128,128,128,128,68,56,16,48,6,11,11,7,0,0,32, + 16,0,252,68,84,112,80,68,68,252,6,11,11,7,0,0, + 8,16,0,252,68,84,112,80,68,68,252,6,11,11,7,0, + 0,16,40,0,252,68,84,112,80,68,68,252,6,10,10,7, + 0,0,40,0,252,68,84,112,80,68,68,252,3,11,11,4, + 0,0,128,64,0,224,64,64,64,64,64,64,224,3,11,11, + 4,0,0,32,64,0,224,64,64,64,64,64,64,224,3,11, + 11,4,0,0,64,160,0,224,64,64,64,64,64,64,224,3, + 10,10,4,0,0,160,0,224,64,64,64,64,64,64,224,7, + 8,8,8,0,0,248,68,66,226,66,66,68,248,8,11,11, + 9,0,0,20,40,0,231,98,82,82,74,74,70,230,7,11, + 11,8,0,0,32,16,0,56,68,130,130,130,130,68,56,7, + 11,11,8,0,0,8,16,0,56,68,130,130,130,130,68,56, + 7,11,11,8,0,0,16,40,0,56,68,130,130,130,130,68, + 56,7,11,11,8,0,0,20,40,0,56,68,130,130,130,130, + 68,56,7,10,10,8,0,0,40,0,56,68,130,130,130,130, + 68,56,5,5,5,6,0,0,136,80,32,80,136,8,8,8, + 8,255,0,29,34,69,73,81,97,98,156,7,11,11,8,0, + 0,32,16,0,238,68,68,68,68,68,68,56,7,11,11,8, + 0,0,8,16,0,238,68,68,68,68,68,68,56,7,11,11, + 8,0,0,16,40,0,238,68,68,68,68,68,68,56,7,10, + 10,8,0,0,40,0,238,68,68,68,68,68,68,56,7,11, + 11,8,0,0,8,16,0,198,68,40,40,16,16,16,56,6, + 8,8,7,0,0,192,120,68,68,68,120,64,224,6,8,8, + 7,0,0,48,72,72,88,68,68,84,216,5,8,8,6,0, + 0,64,32,0,96,144,112,144,248,5,8,8,6,0,0,32, + 64,0,96,144,112,144,248,5,8,8,6,0,0,32,80,0, + 96,144,112,144,248,5,8,8,6,0,0,80,160,0,96,144, + 112,144,248,5,7,7,6,0,0,80,0,96,144,112,144,248, + 5,8,8,6,0,0,32,80,32,96,144,112,144,248,7,5, + 5,8,0,0,108,146,126,144,238,4,7,7,5,0,254,112, + 144,128,144,96,32,96,4,8,8,5,0,0,64,32,0,96, + 144,240,128,112,4,8,8,5,0,0,32,64,0,96,144,240, + 128,112,4,8,8,5,0,0,32,80,0,96,144,240,128,112, + 4,7,7,5,0,0,80,0,96,144,240,128,112,3,8,8, + 4,0,0,128,64,0,192,64,64,64,224,3,8,8,4,0, + 0,32,64,0,192,64,64,64,224,3,8,8,4,0,0,64, + 160,0,192,64,64,64,224,3,7,7,4,0,0,160,0,192, + 64,64,64,224,4,8,8,5,0,0,80,96,160,96,144,144, + 144,96,6,8,8,7,0,0,40,80,0,176,72,72,72,236, + 4,8,8,5,0,0,64,32,0,96,144,144,144,96,4,8, + 8,5,0,0,32,64,0,96,144,144,144,96,4,8,8,5, + 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, + 80,160,0,96,144,144,144,96,4,7,7,5,0,0,80,0, + 96,144,144,144,96,5,5,5,6,0,0,32,0,248,0,32, + 5,6,6,5,0,255,104,144,176,208,96,128,5,8,8,6, + 0,0,64,32,0,144,144,144,144,104,5,8,8,6,0,0, + 32,64,0,144,144,144,144,104,5,8,8,6,0,0,32,80, + 0,144,144,144,144,104,5,7,7,6,0,0,80,0,144,144, + 144,144,104,6,10,10,6,0,254,16,32,0,220,136,80,80, + 32,32,192,5,10,10,5,255,254,192,64,64,112,72,72,72, + 112,64,224,6,9,9,6,0,254,80,0,220,136,80,80,32, + 32,192}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 8, '1' Height: 8 + Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=16 + Font Bounding box w=14 h=18 x=-2 y=-4 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR08r[1266] U8G_SECTION(".progmem.u8g_font_ncenR08r") = { + 0,14,18,254,252,8,1,180,3,120,32,127,254,9,254,8, + 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, + 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, + 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, + 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, + 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, + 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, + 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, + 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, + 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, + 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, + 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, + 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, + 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, + 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, + 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, + 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, + 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, + 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, + 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, + 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, + 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, + 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, + 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, + 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, + 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, + 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, + 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, + 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, + 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, + 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, + 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, + 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, + 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, + 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, + 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, + 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, + 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, + 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, + 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, + 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, + 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, + 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, + 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, + 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, + 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, + 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, + 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, + 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, + 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, + 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, + 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, + 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, + 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, + 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, + 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, + 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, + 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, + 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, + 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, + 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, + 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, + 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, + 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, + 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, + 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, + 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, + 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, + 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, + 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, + 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, + 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, + 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, + 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, + 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, + 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, + 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, + 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, + 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, + 152,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=14 len=33 + Font Bounding box w=18 h=24 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR10[3813] U8G_SECTION(".progmem.u8g_font_ncenR10") = { + 0,18,24,254,250,11,2,24,5,38,32,255,253,14,253,11, + 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, + 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, + 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, + 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, + 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, + 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, + 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, + 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, + 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, + 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, + 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, + 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, + 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, + 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, + 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, + 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, + 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, + 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, + 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, + 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, + 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, + 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, + 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, + 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, + 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, + 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, + 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, + 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, + 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, + 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, + 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, + 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, + 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, + 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, + 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, + 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, + 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, + 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, + 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, + 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, + 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, + 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, + 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, + 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, + 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, + 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, + 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, + 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, + 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, + 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, + 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, + 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, + 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, + 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, + 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, + 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, + 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, + 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, + 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, + 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, + 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, + 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, + 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, + 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, + 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, + 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, + 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, + 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, + 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, + 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, + 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, + 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, + 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, + 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, + 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, + 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, + 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, + 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, + 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, + 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, + 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, + 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, + 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, + 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, + 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, + 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, + 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, + 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, + 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, + 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, + 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, + 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, + 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, + 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, + 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, + 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, + 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, + 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, + 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, + 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, + 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, + 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, + 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, + 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, + 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, + 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, + 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, + 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, + 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, + 1,3,114,140,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,4,0,1,1,11,11,4,1, + 253,128,128,0,128,128,128,128,128,128,128,128,6,11,11,8, + 1,254,4,4,120,204,144,144,160,228,120,128,128,7,11,11, + 8,0,0,60,98,70,64,32,252,16,16,96,178,206,7,7, + 7,8,0,2,186,68,130,130,130,68,186,9,11,22,8,0, + 0,227,128,65,0,34,0,34,0,20,0,20,0,62,0,8, + 0,62,0,8,0,28,0,1,11,11,9,4,0,128,128,128, + 128,0,0,128,128,128,128,128,5,13,13,7,1,254,120,136, + 128,192,112,152,136,200,112,24,8,136,240,4,2,2,6,1, + 8,144,144,12,11,22,14,1,0,15,0,48,192,79,32,89, + 32,144,16,144,16,152,144,79,32,64,32,48,192,15,0,5, + 7,7,6,0,4,96,144,112,144,248,0,248,6,5,5,7, + 0,1,36,72,144,72,36,7,4,4,9,0,1,254,2,2, + 2,4,1,1,5,0,3,240,12,11,22,14,1,0,15,0, + 48,192,94,32,73,32,137,16,142,16,139,16,89,160,64,32, + 48,192,15,0,5,1,1,5,0,8,248,4,4,4,6,1, + 7,96,144,144,96,7,7,7,9,1,0,16,16,254,16,16, + 0,254,4,6,6,5,0,5,96,144,32,64,144,240,4,6, + 6,5,0,5,96,144,32,16,144,96,3,3,3,5,1,8, + 32,64,128,8,10,10,9,0,253,231,66,66,66,66,102,123, + 64,96,64,7,13,13,9,1,254,126,212,212,212,212,116,20, + 20,20,20,20,20,62,2,2,2,4,1,3,192,192,3,4, + 4,5,0,253,64,64,32,192,3,6,6,5,1,5,64,192, + 64,64,64,224,4,7,7,5,0,4,96,144,144,144,96,0, + 240,6,5,5,7,0,1,144,72,36,72,144,10,11,22,12, + 0,0,65,0,193,0,66,0,66,0,68,0,228,128,9,128, + 18,128,20,128,39,192,32,128,10,11,22,12,0,0,65,0, + 193,0,66,0,66,0,68,0,229,128,10,64,16,128,17,0, + 34,64,35,192,10,11,22,12,0,0,97,0,145,0,34,0, + 18,0,148,0,100,128,9,128,18,128,20,128,39,192,32,128, + 5,11,11,6,0,253,32,32,0,32,32,32,64,128,136,200, + 112,11,14,28,10,255,0,8,0,4,0,0,0,4,0,4, + 0,10,0,10,0,10,0,17,0,17,0,63,128,32,128,32, + 128,251,224,11,14,28,10,255,0,2,0,4,0,0,0,4, + 0,4,0,10,0,10,0,10,0,17,0,17,0,63,128,32, + 128,32,128,251,224,11,14,28,10,255,0,4,0,10,0,17, + 0,4,0,4,0,10,0,10,0,10,0,17,0,17,0,63, + 128,32,128,32,128,251,224,11,14,28,10,255,0,12,128,19, + 0,0,0,4,0,4,0,10,0,10,0,10,0,17,0,17, + 0,63,128,32,128,32,128,251,224,11,13,26,10,255,0,17, + 0,17,0,4,0,4,0,10,0,10,0,10,0,17,0,17, + 0,63,128,32,128,32,128,251,224,11,14,28,10,255,0,12, + 0,18,0,12,0,4,0,4,0,10,0,10,0,10,0,17, + 0,17,0,63,128,32,128,32,128,251,224,14,11,22,15,0, + 0,15,252,5,4,9,4,9,32,17,32,17,224,63,32,33, + 32,65,4,65,4,227,252,9,14,28,11,1,253,30,128,97, + 128,64,128,192,128,128,0,128,0,128,0,192,128,64,128,97, + 0,30,0,8,0,4,0,24,0,9,14,28,10,0,0,16, + 0,8,0,0,0,255,128,32,128,32,128,36,0,36,0,60, + 0,36,0,36,0,32,128,32,128,255,128,9,14,28,10,0, + 0,4,0,8,0,0,0,255,128,32,128,32,128,36,0,36, + 0,60,0,36,0,36,0,32,128,32,128,255,128,9,14,28, + 10,0,0,12,0,18,0,0,0,255,128,32,128,32,128,36, + 0,36,0,60,0,36,0,36,0,32,128,32,128,255,128,9, + 14,28,10,0,0,18,0,18,0,0,0,255,128,32,128,32, + 128,36,0,36,0,60,0,36,0,36,0,32,128,32,128,255, + 128,5,14,14,6,0,0,64,32,0,248,32,32,32,32,32, + 32,32,32,32,248,5,14,14,6,0,0,16,32,0,248,32, + 32,32,32,32,32,32,32,32,248,5,14,14,6,0,0,48, + 72,0,248,32,32,32,32,32,32,32,32,32,248,5,14,14, + 6,0,0,80,80,0,248,32,32,32,32,32,32,32,32,32, + 248,10,11,22,11,0,0,255,0,32,128,32,192,32,64,32, + 64,248,64,32,64,32,64,32,192,32,128,255,0,12,14,28, + 13,0,0,12,128,19,0,0,0,225,240,48,64,48,64,40, + 64,44,64,38,64,35,64,33,64,32,192,32,64,248,64,10, + 14,28,11,0,0,8,0,4,0,0,0,30,0,97,128,64, + 128,192,192,128,64,128,64,128,64,192,192,64,128,97,128,30, + 0,10,14,28,11,0,0,2,0,4,0,0,0,30,0,97, + 128,64,128,192,192,128,64,128,64,128,64,192,192,64,128,97, + 128,30,0,10,14,28,11,0,0,12,0,18,0,0,0,30, + 0,97,128,64,128,192,192,128,64,128,64,128,64,192,192,64, + 128,97,128,30,0,10,14,28,11,0,0,25,0,38,0,0, + 0,30,0,97,128,64,128,192,192,128,64,128,64,128,64,192, + 192,64,128,97,128,30,0,10,14,28,11,0,0,18,0,18, + 0,0,0,30,0,97,128,64,128,192,192,128,64,128,64,128, + 64,192,192,64,128,97,128,30,0,7,7,7,9,1,0,130, + 68,40,16,40,68,130,11,11,22,11,255,0,15,32,48,192, + 32,192,97,96,66,32,68,32,72,32,112,96,32,64,112,192, + 143,0,12,14,28,13,0,0,8,0,4,0,0,0,249,240, + 32,64,32,64,32,64,32,64,32,64,32,64,32,64,32,64, + 48,128,31,0,12,14,28,13,0,0,1,0,2,0,0,0, + 249,240,32,64,32,64,32,64,32,64,32,64,32,64,32,64, + 32,64,48,128,31,0,12,14,28,13,0,0,6,0,9,0, + 0,0,249,240,32,64,32,64,32,64,32,64,32,64,32,64, + 32,64,32,64,48,128,31,0,12,14,28,13,0,0,9,0, + 9,0,0,0,249,240,32,64,32,64,32,64,32,64,32,64, + 32,64,32,64,32,64,48,128,31,0,11,14,28,10,255,0, + 2,0,4,0,0,0,251,224,96,128,49,0,17,0,26,0, + 10,0,4,0,4,0,4,0,4,0,31,0,9,11,22,10, + 0,0,248,0,32,0,63,0,33,128,32,128,32,128,33,0, + 62,0,32,0,32,0,248,0,7,11,11,8,0,0,56,100, + 68,76,88,68,66,66,66,86,220,7,11,11,8,0,0,32, + 16,8,0,56,76,4,60,196,140,118,7,11,11,8,0,0, + 8,16,32,0,56,76,4,60,196,140,118,7,11,11,8,0, + 0,16,40,68,0,56,76,4,60,196,140,118,7,10,10,8, + 0,0,50,76,0,56,76,4,60,196,140,118,7,10,10,8, + 0,0,72,72,0,56,76,4,60,196,140,118,7,11,11,8, + 0,0,48,72,48,0,56,76,4,60,196,140,118,11,7,14, + 12,0,0,59,192,78,96,4,32,63,224,196,0,142,32,115, + 192,6,10,10,7,0,253,120,204,128,128,128,196,120,32,16, + 96,6,11,11,7,0,0,64,32,16,0,120,204,132,252,128, + 196,120,6,11,11,7,0,0,8,16,32,0,120,204,132,252, + 128,196,120,6,11,11,7,0,0,16,40,68,0,120,204,132, + 252,128,196,120,6,10,10,7,0,0,72,72,0,120,204,132, + 252,128,196,120,3,11,11,4,0,0,128,64,32,0,192,64, + 64,64,64,64,224,3,11,11,4,0,0,32,64,128,0,192, + 64,64,64,64,64,224,5,11,11,4,255,0,32,80,136,0, + 96,32,32,32,32,32,112,4,10,10,4,255,0,144,144,0, + 96,32,32,32,32,32,112,7,11,11,7,255,0,76,48,208, + 8,60,102,66,66,66,102,60,8,10,10,9,0,0,50,76, + 0,220,102,66,66,66,66,231,6,11,11,7,0,0,64,32, + 16,0,120,204,132,132,132,204,120,6,11,11,7,0,0,16, + 32,64,0,120,204,132,132,132,204,120,6,11,11,7,0,0, + 32,80,136,0,120,204,132,132,132,204,120,6,10,10,7,0, + 0,100,152,0,120,204,132,132,132,204,120,6,10,10,7,0, + 0,72,72,0,120,204,132,132,132,204,120,7,7,7,9,1, + 0,16,16,0,254,0,16,16,6,9,9,7,0,255,8,120, + 220,148,164,164,204,120,64,8,11,11,9,0,0,32,16,8, + 0,231,66,66,66,66,102,59,8,11,11,9,0,0,2,4, + 8,0,231,66,66,66,66,102,59,8,11,11,9,0,0,8, + 20,34,0,231,66,66,66,66,102,59,8,10,10,9,0,0, + 36,36,0,231,66,66,66,66,102,59,7,14,14,8,0,253, + 4,8,16,0,238,68,68,40,40,16,16,32,160,192,7,14, + 14,8,0,253,192,64,64,64,92,102,66,66,66,102,92,64, + 64,224,7,13,13,8,0,253,72,72,0,238,68,68,40,40, + 16,16,32,160,192}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=12 len=33 + Font Bounding box w=18 h=24 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =11 descent=-3 + X Font ascent =11 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR10r[1781] U8G_SECTION(".progmem.u8g_font_ncenR10r") = { + 0,18,24,254,250,11,2,24,5,38,32,127,253,12,253,11, + 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, + 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, + 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, + 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, + 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, + 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, + 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, + 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, + 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, + 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, + 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, + 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, + 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, + 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, + 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, + 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, + 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, + 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, + 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, + 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, + 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, + 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, + 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, + 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, + 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, + 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, + 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, + 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, + 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, + 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, + 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, + 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, + 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, + 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, + 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, + 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, + 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, + 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, + 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, + 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, + 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, + 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, + 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, + 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, + 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, + 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, + 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, + 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, + 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, + 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, + 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, + 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, + 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, + 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, + 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, + 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, + 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, + 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, + 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, + 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, + 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, + 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, + 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, + 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, + 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, + 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, + 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, + 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, + 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, + 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, + 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, + 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, + 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, + 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, + 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, + 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, + 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, + 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, + 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, + 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, + 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, + 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, + 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, + 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, + 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, + 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, + 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, + 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, + 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, + 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, + 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, + 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, + 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, + 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, + 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, + 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, + 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, + 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, + 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, + 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, + 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, + 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, + 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, + 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, + 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, + 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, + 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, + 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, + 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, + 1,3,114,140,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=16 len=32 + Font Bounding box w=21 h=26 x=-3 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =12 descent=-3 + X Font ascent =12 descent=-3 + Max Font ascent =16 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR12[4247] U8G_SECTION(".progmem.u8g_font_ncenR12") = { + 0,21,26,253,250,12,2,59,5,140,32,255,253,16,253,12, + 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, + 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, + 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, + 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, + 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, + 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, + 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, + 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, + 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, + 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, + 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, + 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, + 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, + 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, + 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, + 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, + 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, + 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, + 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, + 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, + 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, + 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, + 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, + 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, + 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, + 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, + 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, + 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, + 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, + 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, + 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, + 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, + 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, + 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, + 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, + 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, + 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, + 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, + 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, + 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, + 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, + 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, + 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, + 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, + 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, + 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, + 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, + 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, + 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, + 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, + 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, + 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, + 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, + 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, + 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, + 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, + 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, + 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, + 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, + 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, + 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, + 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, + 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, + 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, + 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, + 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, + 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, + 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, + 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, + 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, + 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, + 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, + 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, + 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, + 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, + 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, + 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, + 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, + 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, + 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, + 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, + 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, + 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, + 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, + 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, + 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, + 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, + 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, + 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, + 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, + 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, + 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, + 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, + 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, + 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, + 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, + 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, + 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, + 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, + 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, + 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, + 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, + 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, + 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, + 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, + 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, + 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, + 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, + 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, + 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, + 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, + 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, + 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, + 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, + 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, + 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, + 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, + 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, + 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, + 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, + 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, + 2,2,10,1,3,115,206,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,4,1,1,2,12, + 12,5,1,253,192,192,0,64,64,64,64,192,192,192,192,192, + 6,12,12,9,1,254,4,4,56,76,204,144,144,228,100,56, + 64,64,9,12,24,9,0,0,30,0,49,0,35,0,35,0, + 48,0,16,0,254,0,16,0,16,0,112,128,191,0,78,0, + 7,8,8,9,1,2,186,108,198,130,130,198,108,186,9,12, + 24,9,0,0,243,128,97,0,34,0,50,0,20,0,20,0, + 62,0,8,0,62,0,8,0,8,0,62,0,1,12,12,10, + 4,0,128,128,128,128,128,0,0,128,128,128,128,128,6,15, + 15,8,1,253,56,72,64,96,48,88,140,132,196,104,48,24, + 8,72,112,5,2,2,5,0,9,216,216,12,12,24,12,0, + 0,31,128,48,192,71,32,205,176,152,144,144,16,144,16,152, + 144,205,176,71,32,48,192,31,128,5,7,7,6,0,5,224, + 144,112,144,232,0,240,6,5,5,7,0,1,36,72,216,72, + 36,8,5,5,10,1,1,255,1,1,1,1,4,1,1,5, + 0,3,240,12,12,24,12,0,0,31,128,48,192,95,32,201, + 176,137,144,143,16,137,16,137,144,200,176,92,224,48,192,31, + 128,5,1,1,5,0,9,248,5,5,5,7,1,7,112,136, + 136,136,112,7,9,9,10,1,0,16,16,16,254,16,16,16, + 0,254,5,7,7,6,0,5,112,216,136,16,32,72,248,5, + 7,7,6,0,5,112,216,136,48,136,216,112,3,3,3,5, + 0,9,32,96,128,10,11,22,10,0,253,231,0,99,0,99, + 0,99,0,99,0,99,0,99,0,125,192,96,0,96,0,96, + 0,8,15,15,10,0,253,127,234,202,202,202,234,122,10,10, + 10,10,10,10,10,31,2,2,2,5,1,3,192,192,3,4, + 4,5,1,253,64,64,32,192,3,7,7,6,1,5,64,192, + 64,64,64,64,224,4,7,7,5,0,5,96,144,144,144,96, + 0,240,6,5,5,7,0,1,144,72,108,72,144,11,12,24, + 14,1,0,64,64,192,192,65,128,65,0,66,0,70,64,236, + 192,9,64,18,64,51,224,96,64,64,224,11,12,24,13,1, + 0,64,128,193,128,67,0,66,0,68,0,77,192,251,96,18, + 32,32,192,97,0,195,32,131,224,13,12,24,14,0,0,112, + 24,216,48,136,96,48,192,136,128,217,144,115,48,6,80,4, + 144,12,248,24,16,48,56,7,12,12,7,0,253,24,24,0, + 16,16,48,96,192,196,206,100,56,11,16,32,12,0,0,24, + 0,12,0,2,0,0,0,4,0,4,0,14,0,14,0,22, + 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, + 16,32,12,0,0,3,0,6,0,8,0,0,0,4,0,4, + 0,14,0,14,0,22,0,19,0,19,0,63,128,33,128,65, + 128,64,192,243,224,11,16,32,12,0,0,4,0,14,0,17, + 0,0,0,4,0,4,0,14,0,14,0,22,0,19,0,19, + 0,63,128,33,128,65,128,64,192,243,224,11,15,30,12,0, + 0,29,0,46,0,0,0,4,0,4,0,14,0,14,0,22, + 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, + 15,30,12,0,0,18,0,18,0,0,0,4,0,4,0,14, + 0,14,0,22,0,19,0,19,0,63,128,33,128,65,128,64, + 192,243,224,11,16,32,12,0,0,12,0,18,0,12,0,0, + 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, + 128,33,128,65,128,64,192,243,224,16,12,24,17,0,0,15, + 255,2,195,2,193,4,193,4,200,8,248,8,216,31,201,16, + 193,32,193,32,195,251,255,10,15,30,12,1,253,31,64,112, + 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, + 64,112,128,31,0,8,0,4,0,24,0,10,16,32,12,0, + 0,24,0,12,0,2,0,0,0,255,192,48,192,48,64,48, + 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, + 192,10,16,32,12,0,0,3,0,6,0,8,0,0,0,255, + 192,48,192,48,64,48,64,50,0,62,0,54,0,50,0,48, + 64,48,64,48,192,255,192,10,16,32,12,0,0,4,0,14, + 0,17,0,0,0,255,192,48,192,48,64,48,64,50,0,62, + 0,54,0,50,0,48,64,48,64,48,192,255,192,10,15,30, + 12,0,0,17,0,17,0,0,0,255,192,48,192,48,64,48, + 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, + 192,6,16,16,7,0,0,192,96,16,0,252,48,48,48,48, + 48,48,48,48,48,48,252,6,16,16,7,0,0,12,24,32, + 0,252,48,48,48,48,48,48,48,48,48,48,252,6,16,16, + 7,0,0,32,112,136,0,252,48,48,48,48,48,48,48,48, + 48,48,252,6,15,15,7,0,0,72,72,0,252,48,48,48, + 48,48,48,48,48,48,48,252,12,12,24,13,0,0,255,0, + 49,192,48,96,48,96,48,48,124,48,48,48,48,48,48,96, + 48,96,49,192,255,0,13,15,30,13,0,0,14,64,19,128, + 0,0,240,248,56,32,60,32,44,32,46,32,39,32,35,160, + 33,160,32,224,32,224,32,96,248,32,11,16,32,13,1,0, + 24,0,12,0,2,0,0,0,14,0,49,128,96,192,96,192, + 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, + 11,16,32,13,1,0,1,128,3,0,4,0,0,0,14,0, + 49,128,96,192,96,192,192,96,192,96,192,96,192,96,96,192, + 96,192,49,128,14,0,11,16,32,13,1,0,4,0,14,0, + 17,0,0,0,14,0,49,128,96,192,96,192,192,96,192,96, + 192,96,192,96,96,192,96,192,49,128,14,0,11,15,30,13, + 1,0,14,128,23,0,0,0,14,0,49,128,96,192,96,192, + 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, + 11,15,30,13,1,0,17,0,17,0,0,0,14,0,49,128, + 96,192,96,192,192,96,192,96,192,96,192,96,96,192,96,192, + 49,128,14,0,8,8,8,10,1,0,129,66,36,24,24,36, + 66,129,11,14,28,13,1,255,0,32,14,64,49,128,97,192, + 97,64,194,96,196,96,196,96,200,96,80,192,112,192,49,128, + 78,0,128,0,13,16,32,13,0,0,12,0,6,0,1,0, + 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, + 48,32,48,32,48,32,24,64,15,128,13,16,32,13,0,0, + 0,192,1,128,2,0,0,0,252,248,48,32,48,32,48,32, + 48,32,48,32,48,32,48,32,48,32,48,32,24,64,15,128, + 13,16,32,13,0,0,2,0,7,0,8,128,0,0,252,248, + 48,32,48,32,48,32,48,32,48,32,48,32,48,32,48,32, + 48,32,24,64,15,128,13,15,30,13,0,0,8,128,8,128, + 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, + 48,32,48,32,48,32,24,64,15,128,12,16,32,12,0,0, + 1,128,3,0,4,0,0,0,252,240,48,64,24,128,24,128, + 13,0,13,0,6,0,6,0,6,0,6,0,6,0,31,128, + 11,12,24,11,0,0,252,0,48,0,48,0,63,128,48,192, + 48,96,48,96,48,192,63,128,48,0,48,0,252,0,8,12, + 12,10,1,0,60,102,99,99,102,124,102,99,99,99,118,236, + 7,12,12,9,1,0,64,96,16,0,120,204,204,28,108,204, + 204,118,7,12,12,9,1,0,4,12,16,0,120,204,204,28, + 108,204,204,118,7,12,12,9,1,0,16,56,68,0,120,204, + 204,28,108,204,204,118,7,11,11,9,1,0,52,88,0,120, + 204,204,28,108,204,204,118,7,11,11,9,1,0,72,72,0, + 120,204,204,28,108,204,204,118,7,13,13,9,1,0,48,72, + 72,48,0,120,204,204,28,108,204,204,118,12,8,16,13,0, + 0,121,192,206,32,198,48,31,240,102,0,198,16,207,32,121, + 192,6,11,11,7,0,253,56,108,204,192,192,196,108,56,32, + 16,96,7,12,12,8,0,0,32,48,8,0,56,68,198,254, + 192,192,102,60,7,12,12,8,0,0,4,12,16,0,56,68, + 198,254,192,192,102,60,7,12,12,8,0,0,16,56,68,0, + 56,68,198,254,192,192,102,60,7,11,11,8,0,0,36,36, + 0,56,68,198,254,192,192,102,60,4,12,12,5,0,0,128, + 192,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, + 0,16,48,64,0,224,96,96,96,96,96,96,240,5,12,12, + 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,4, + 11,11,5,0,0,144,144,0,224,96,96,96,96,96,96,240, + 7,13,13,8,0,0,64,38,24,104,12,60,110,198,198,198, + 198,108,56,9,11,22,10,0,0,26,0,44,0,0,0,238, + 0,115,0,99,0,99,0,99,0,99,0,99,0,247,128,7, + 12,12,8,0,0,64,96,16,0,56,108,198,198,198,198,108, + 56,7,12,12,8,0,0,4,12,16,0,56,108,198,198,198, + 198,108,56,7,12,12,8,0,0,16,56,68,0,56,108,198, + 198,198,198,108,56,7,11,11,8,0,0,52,88,0,56,108, + 198,198,198,198,108,56,7,11,11,8,0,0,72,72,0,56, + 108,198,198,198,198,108,56,8,7,7,10,1,1,24,24,0, + 255,0,24,24,7,10,10,8,0,255,2,60,100,206,214,214, + 230,76,120,128,9,12,24,10,0,0,32,0,48,0,8,0, + 0,0,231,0,99,0,99,0,99,0,99,0,99,0,99,0, + 61,128,9,12,24,10,0,0,2,0,6,0,8,0,0,0, + 231,0,99,0,99,0,99,0,99,0,99,0,99,0,61,128, + 9,12,24,10,0,0,8,0,28,0,34,0,0,0,231,0, + 99,0,99,0,99,0,99,0,99,0,99,0,61,128,9,11, + 22,10,0,0,36,0,36,0,0,0,231,0,99,0,99,0, + 99,0,99,0,99,0,99,0,61,128,8,15,15,9,0,253, + 2,6,8,0,247,98,54,52,28,24,8,24,16,208,224,8, + 14,14,9,0,253,224,96,96,124,102,99,99,99,99,102,124, + 96,96,240,8,14,14,9,0,253,36,36,0,247,98,54,52, + 28,24,8,24,16,208,224}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=15 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=13 len=30 + Font Bounding box w=21 h=26 x=-3 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =12 descent=-3 + X Font ascent =12 descent=-3 + Max Font ascent =13 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR12r[1976] U8G_SECTION(".progmem.u8g_font_ncenR12r") = { + 0,21,26,253,250,12,2,59,5,140,32,127,253,13,253,12, + 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, + 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, + 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, + 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, + 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, + 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, + 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, + 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, + 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, + 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, + 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, + 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, + 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, + 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, + 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, + 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, + 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, + 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, + 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, + 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, + 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, + 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, + 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, + 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, + 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, + 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, + 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, + 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, + 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, + 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, + 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, + 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, + 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, + 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, + 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, + 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, + 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, + 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, + 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, + 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, + 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, + 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, + 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, + 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, + 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, + 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, + 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, + 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, + 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, + 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, + 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, + 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, + 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, + 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, + 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, + 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, + 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, + 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, + 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, + 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, + 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, + 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, + 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, + 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, + 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, + 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, + 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, + 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, + 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, + 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, + 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, + 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, + 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, + 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, + 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, + 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, + 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, + 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, + 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, + 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, + 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, + 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, + 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, + 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, + 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, + 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, + 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, + 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, + 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, + 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, + 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, + 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, + 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, + 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, + 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, + 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, + 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, + 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, + 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, + 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, + 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, + 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, + 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, + 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, + 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, + 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, + 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, + 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, + 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, + 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, + 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, + 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, + 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, + 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, + 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, + 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, + 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, + 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, + 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, + 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, + 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, + 2,2,10,1,3,115,206,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=19 x= 4 y=11 dx=19 dy= 0 ascent=19 len=42 + Font Bounding box w=27 h=30 x=-4 y=-7 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =19 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR14[5319] U8G_SECTION(".progmem.u8g_font_ncenR14") = { + 0,27,30,252,249,14,3,41,7,30,32,255,252,19,252,14, + 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, + 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, + 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, + 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, + 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, + 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, + 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, + 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, + 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, + 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, + 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, + 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, + 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, + 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, + 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, + 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, + 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, + 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, + 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, + 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, + 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, + 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, + 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, + 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, + 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, + 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, + 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, + 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, + 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, + 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, + 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, + 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, + 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, + 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, + 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, + 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, + 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, + 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, + 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, + 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, + 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, + 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, + 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, + 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, + 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, + 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, + 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, + 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, + 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, + 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, + 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, + 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, + 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, + 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, + 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, + 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, + 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, + 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, + 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, + 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, + 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, + 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, + 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, + 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, + 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, + 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, + 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, + 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, + 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, + 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, + 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, + 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, + 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, + 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, + 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, + 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, + 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, + 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, + 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, + 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, + 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, + 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, + 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, + 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, + 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, + 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, + 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, + 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, + 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, + 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, + 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, + 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, + 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, + 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, + 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, + 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, + 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, + 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, + 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, + 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, + 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, + 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, + 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, + 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, + 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, + 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, + 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, + 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, + 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, + 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, + 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, + 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, + 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, + 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, + 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, + 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, + 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, + 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, + 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, + 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, + 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, + 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, + 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, + 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, + 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, + 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, + 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, + 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, + 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, + 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, + 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, + 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, + 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, + 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, + 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, + 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, + 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, + 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, + 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, + 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, + 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, + 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, + 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, + 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, + 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, + 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, + 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, + 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, + 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, + 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, + 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, + 192,109,128,199,0,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,0,0,0,5,0,1,2,14,14,5, + 1,252,192,192,0,0,64,64,64,192,192,192,192,192,192,192, + 8,13,13,10,1,254,2,2,30,103,203,200,200,208,208,115, + 62,32,32,10,14,28,11,0,0,15,0,25,128,49,128,48, + 0,48,0,24,0,255,128,12,0,12,0,12,0,12,0,120, + 64,158,64,247,128,9,9,18,12,1,3,156,128,255,128,99, + 0,193,128,193,128,193,128,99,0,255,128,156,128,14,14,28, + 15,0,0,252,124,48,16,24,32,24,32,12,64,12,64,6, + 128,31,224,3,0,3,0,31,224,3,0,3,0,15,192,2, + 14,14,10,4,0,192,192,192,192,192,0,0,0,192,192,192, + 192,192,192,8,17,17,9,0,253,60,102,70,64,96,120,62, + 79,195,227,122,60,14,6,98,102,60,6,2,2,7,0,10, + 204,204,14,14,28,15,0,0,7,128,24,96,32,16,71,136, + 72,200,144,68,144,4,144,4,144,4,72,72,71,136,32,16, + 24,96,7,128,6,8,8,7,0,6,112,136,56,200,152,108, + 0,252,8,7,7,9,0,2,17,51,102,204,102,51,17,9, + 5,10,10,0,3,255,128,0,128,0,128,0,128,0,128,5, + 1,1,6,0,5,248,14,14,28,15,0,0,7,128,24,96, + 32,16,79,136,68,200,132,68,132,196,135,132,132,132,68,72, + 78,104,32,16,24,96,7,128,6,1,1,7,0,10,252,6, + 6,6,7,0,8,120,204,132,132,204,120,9,9,18,10,0, + 1,8,0,8,0,8,0,255,128,8,0,8,0,8,0,0, + 0,255,128,6,8,8,6,0,6,120,204,140,24,48,96,196, + 252,6,8,8,6,0,6,120,204,140,56,12,140,204,120,4, + 3,3,6,1,11,48,96,128,10,13,26,11,0,252,227,192, + 97,128,97,128,97,128,97,128,97,128,97,128,115,128,125,192, + 64,0,64,0,96,0,96,0,10,17,34,11,0,253,63,192, + 233,0,201,0,201,0,201,0,201,0,233,0,57,0,9,0, + 9,0,9,0,9,0,9,0,9,0,9,0,9,0,63,192, + 2,2,2,5,1,5,192,192,4,4,4,6,0,252,64,112, + 16,224,6,8,8,6,0,6,48,240,48,48,48,48,48,252, + 5,8,8,6,0,6,112,216,136,136,216,112,0,248,8,7, + 7,9,0,2,136,204,102,51,102,204,136,15,14,28,15,0, + 0,48,32,240,32,48,64,48,64,48,128,48,128,49,24,253, + 56,2,40,2,88,4,152,4,254,8,24,8,60,14,14,28, + 15,0,0,48,32,240,32,48,64,48,64,48,128,48,128,49, + 120,253,204,2,140,2,24,4,48,4,96,8,196,8,252,15, + 14,28,15,0,0,120,32,204,32,140,64,56,64,12,128,140, + 128,205,24,121,56,2,40,2,88,4,152,4,254,8,24,8, + 60,7,14,14,8,0,252,24,24,0,0,16,16,32,32,64, + 192,192,198,230,120,14,18,36,13,255,0,12,0,6,0,1, + 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, + 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,14, + 18,36,13,255,0,0,192,1,128,2,0,0,0,3,0,3, + 0,3,0,5,128,5,128,5,128,8,192,8,192,31,224,16, + 96,16,96,32,48,32,48,248,252,14,18,36,13,255,0,3, + 0,7,128,8,64,0,0,3,0,3,0,3,0,5,128,5, + 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, + 48,248,252,14,17,34,13,255,0,7,64,11,128,0,0,3, + 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, + 224,16,96,16,96,32,48,32,48,248,252,14,17,34,13,255, + 0,12,192,12,192,0,0,3,0,3,0,3,0,5,128,5, + 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, + 48,248,252,14,19,38,13,255,0,3,0,4,128,4,128,3, + 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, + 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,18, + 14,42,18,255,0,7,255,192,1,96,192,2,96,64,2,96, + 64,4,98,64,4,98,0,8,126,0,8,98,0,31,226,0, + 16,96,64,32,96,64,32,96,64,96,96,192,241,255,192,12, + 18,36,13,0,252,15,144,56,112,96,48,96,16,192,16,192, + 0,192,0,192,0,192,0,192,0,96,16,96,16,56,96,15, + 192,4,0,7,0,1,0,14,0,11,18,36,12,0,0,24, + 0,12,0,2,0,0,0,255,224,48,96,48,32,48,32,49, + 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, + 96,255,224,11,18,36,12,0,0,3,0,6,0,8,0,0, + 0,255,224,48,96,48,32,48,32,49,32,49,0,63,0,49, + 0,49,0,48,32,48,32,48,32,48,96,255,224,11,18,36, + 12,0,0,6,0,15,0,16,128,0,0,255,224,48,96,48, + 32,48,32,49,32,49,0,63,0,49,0,49,0,48,32,48, + 32,48,32,48,96,255,224,11,17,34,12,0,0,25,128,25, + 128,0,0,255,224,48,96,48,32,48,32,49,32,49,0,63, + 0,49,0,49,0,48,32,48,32,48,32,48,96,255,224,6, + 18,18,7,0,0,192,96,16,0,252,48,48,48,48,48,48, + 48,48,48,48,48,48,252,6,18,18,7,0,0,12,24,32, + 0,252,48,48,48,48,48,48,48,48,48,48,48,48,252,6, + 18,18,7,0,0,48,120,132,0,252,48,48,48,48,48,48, + 48,48,48,48,48,48,252,6,17,17,7,0,0,204,204,0, + 252,48,48,48,48,48,48,48,48,48,48,48,48,252,14,14, + 28,15,0,0,255,192,48,112,48,24,48,24,48,12,48,12, + 254,12,48,12,48,12,48,12,48,24,48,24,48,112,255,192, + 14,17,34,15,0,0,7,64,11,128,0,0,240,124,48,16, + 56,16,60,16,46,16,38,16,35,16,35,144,33,144,32,208, + 32,240,32,112,32,48,248,16,14,18,36,15,0,0,12,0, + 6,0,1,0,0,0,15,192,56,112,96,24,96,24,192,12, + 192,12,192,12,192,12,192,12,192,12,96,24,96,24,56,112, + 15,192,14,18,36,15,0,0,0,192,1,128,2,0,0,0, + 15,192,56,112,96,24,96,24,192,12,192,12,192,12,192,12, + 192,12,192,12,96,24,96,24,56,112,15,192,14,18,36,15, + 0,0,3,0,7,128,8,64,0,0,15,192,56,112,96,24, + 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, + 96,24,56,112,15,192,14,17,34,15,0,0,7,64,11,128, + 0,0,15,192,56,112,96,24,96,24,192,12,192,12,192,12, + 192,12,192,12,192,12,96,24,96,24,56,112,15,192,14,17, + 34,15,0,0,12,192,12,192,0,0,15,192,56,112,96,24, + 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, + 96,24,56,112,15,192,10,9,18,10,0,1,192,192,97,128, + 51,0,30,0,12,0,30,0,51,0,97,128,192,192,15,14, + 28,15,255,0,7,228,28,56,48,28,48,44,96,70,96,134, + 97,6,98,6,100,6,104,6,48,12,48,12,92,56,135,224, + 14,18,36,15,0,0,6,0,3,0,0,128,0,0,252,124, + 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, + 48,16,48,16,48,16,24,32,15,192,14,18,36,15,0,0, + 0,192,1,128,2,0,0,0,252,124,48,16,48,16,48,16, + 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, + 24,32,15,192,14,18,36,15,0,0,3,0,7,128,8,64, + 0,0,252,124,48,16,48,16,48,16,48,16,48,16,48,16, + 48,16,48,16,48,16,48,16,48,16,24,32,15,192,14,17, + 34,15,0,0,12,96,12,96,0,0,252,124,48,16,48,16, + 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, + 48,16,24,32,15,192,14,18,36,13,255,0,0,96,0,192, + 1,0,0,0,252,124,48,16,24,32,24,32,12,64,12,64, + 6,128,7,128,3,0,3,0,3,0,3,0,3,0,15,192, + 11,14,28,12,0,0,252,0,48,0,48,0,63,128,48,192, + 48,96,48,96,48,96,48,96,48,192,63,0,48,0,48,0, + 252,0,9,14,28,10,0,0,30,0,35,0,97,0,97,0, + 99,0,110,0,99,0,97,128,97,128,97,128,97,128,109,128, + 109,0,230,0,9,13,26,10,0,0,48,0,24,0,4,0, + 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, + 199,0,121,128,9,13,26,10,0,0,6,0,12,0,16,0, + 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, + 199,0,121,128,9,13,26,10,0,0,24,0,60,0,66,0, + 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, + 199,0,121,128,9,12,24,10,0,0,58,0,92,0,0,0, + 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, + 121,128,9,12,24,10,0,0,102,0,102,0,0,0,28,0, + 98,0,99,0,3,0,31,0,99,0,195,0,199,0,121,128, + 9,14,28,10,0,0,24,0,36,0,36,0,24,0,0,0, + 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, + 121,128,15,9,18,16,0,0,28,248,99,140,99,6,3,6, + 31,254,99,0,195,0,197,134,120,252,8,13,13,9,0,252, + 60,99,195,192,192,192,193,99,62,16,28,4,56,8,13,13, + 9,0,0,96,48,8,0,60,102,195,195,255,192,193,99,62, + 8,13,13,9,0,0,6,12,16,0,60,102,195,195,255,192, + 193,99,62,8,13,13,9,0,0,24,60,66,0,60,102,195, + 195,255,192,193,99,62,8,12,12,9,0,0,102,102,0,60, + 102,195,195,255,192,193,99,62,5,13,13,5,255,0,192,96, + 16,0,112,48,48,48,48,48,48,48,120,5,13,13,5,0, + 0,24,48,64,0,224,96,96,96,96,96,96,96,240,6,13, + 13,5,255,0,48,120,132,0,112,48,48,48,48,48,48,48, + 120,6,12,12,5,255,0,204,204,0,112,48,48,48,48,48, + 48,48,120,9,14,28,10,0,0,192,0,54,0,56,0,204, + 0,6,0,63,0,99,0,193,128,193,128,193,128,193,128,193, + 128,99,0,62,0,10,12,24,11,0,0,60,128,79,0,0, + 0,239,0,115,128,97,128,97,128,97,128,97,128,97,128,97, + 128,243,192,9,13,26,10,0,0,96,0,48,0,8,0,0, + 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, + 0,62,0,9,13,26,10,0,0,3,0,6,0,8,0,0, + 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, + 0,62,0,9,13,26,10,0,0,24,0,60,0,66,0,0, + 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, + 0,62,0,9,12,24,10,0,0,58,0,92,0,0,0,62, + 0,99,0,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,9,12,24,10,0,0,99,0,99,0,0,0,62,0,99, + 0,193,128,193,128,193,128,193,128,193,128,99,0,62,0,10, + 7,14,10,0,2,12,0,12,0,0,0,255,192,0,0,12, + 0,12,0,9,12,24,10,0,254,0,128,62,128,99,0,197, + 128,197,128,201,128,201,128,209,128,115,0,62,0,64,0,64, + 0,10,13,26,11,0,0,48,0,24,0,4,0,0,0,227, + 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, + 192,10,13,26,11,0,0,3,0,6,0,8,0,0,0,227, + 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, + 192,10,13,26,11,0,0,12,0,30,0,33,0,0,0,227, + 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, + 192,10,12,24,11,0,0,51,0,51,0,0,0,227,192,97, + 128,97,128,97,128,97,128,97,128,97,128,115,128,61,192,10, + 17,34,11,0,252,3,0,6,0,8,0,0,0,241,192,96, + 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, + 0,16,0,208,0,224,0,10,18,36,11,0,252,224,0,96, + 0,96,0,96,0,96,0,111,0,113,128,96,192,96,192,96, + 192,96,192,96,192,113,128,111,0,96,0,96,0,96,0,240, + 0,10,16,32,11,0,252,51,0,51,0,0,0,241,192,96, + 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, + 0,16,0,208,0,224,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=20 h=18 x= 4 y=10 dx=19 dy= 0 ascent=15 len=42 + Font Bounding box w=27 h=30 x=-4 y=-7 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR14r[2534] U8G_SECTION(".progmem.u8g_font_ncenR14r") = { + 0,27,30,252,249,14,3,41,7,30,32,127,252,15,252,14, + 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, + 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, + 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, + 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, + 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, + 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, + 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, + 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, + 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, + 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, + 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, + 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, + 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, + 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, + 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, + 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, + 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, + 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, + 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, + 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, + 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, + 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, + 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, + 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, + 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, + 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, + 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, + 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, + 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, + 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, + 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, + 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, + 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, + 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, + 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, + 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, + 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, + 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, + 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, + 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, + 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, + 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, + 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, + 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, + 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, + 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, + 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, + 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, + 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, + 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, + 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, + 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, + 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, + 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, + 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, + 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, + 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, + 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, + 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, + 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, + 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, + 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, + 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, + 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, + 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, + 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, + 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, + 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, + 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, + 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, + 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, + 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, + 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, + 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, + 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, + 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, + 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, + 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, + 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, + 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, + 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, + 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, + 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, + 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, + 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, + 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, + 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, + 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, + 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, + 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, + 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, + 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, + 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, + 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, + 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, + 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, + 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, + 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, + 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, + 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, + 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, + 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, + 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, + 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, + 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, + 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, + 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, + 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, + 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, + 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, + 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, + 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, + 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, + 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, + 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, + 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, + 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, + 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, + 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, + 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, + 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, + 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, + 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, + 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, + 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, + 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, + 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, + 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, + 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, + 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, + 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, + 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, + 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, + 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, + 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, + 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, + 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, + 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, + 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, + 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, + 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, + 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, + 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, + 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, + 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, + 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, + 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, + 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, + 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, + 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, + 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, + 192,109,128,199,0,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=25 h=24 x= 6 y=15 dx=25 dy= 0 ascent=24 len=72 + Font Bounding box w=31 h=37 x=-3 y=-8 + Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 + Pure Font ascent =18 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =24 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR18[7488] U8G_SECTION(".progmem.u8g_font_ncenR18") = { + 0,31,37,253,248,18,4,33,9,197,32,255,251,24,251,18, + 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, + 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, + 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, + 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, + 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, + 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, + 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, + 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, + 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, + 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, + 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, + 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, + 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, + 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, + 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, + 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, + 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, + 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, + 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, + 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, + 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, + 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, + 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, + 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, + 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, + 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, + 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, + 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, + 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, + 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, + 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, + 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, + 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, + 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, + 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, + 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, + 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, + 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, + 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, + 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, + 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, + 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, + 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, + 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, + 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, + 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, + 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, + 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, + 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, + 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, + 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, + 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, + 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, + 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, + 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, + 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, + 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, + 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, + 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, + 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, + 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, + 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, + 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, + 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, + 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, + 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, + 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, + 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, + 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, + 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, + 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, + 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, + 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, + 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, + 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, + 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, + 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, + 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, + 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, + 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, + 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, + 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, + 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, + 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, + 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, + 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, + 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, + 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, + 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, + 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, + 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, + 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, + 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, + 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, + 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, + 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, + 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, + 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, + 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, + 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, + 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, + 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, + 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, + 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, + 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, + 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, + 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, + 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, + 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, + 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, + 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, + 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, + 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, + 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, + 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, + 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, + 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, + 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, + 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, + 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, + 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, + 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, + 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, + 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, + 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, + 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, + 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, + 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, + 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, + 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, + 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, + 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, + 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, + 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, + 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, + 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, + 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, + 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, + 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, + 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, + 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, + 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, + 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, + 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, + 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, + 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, + 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, + 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, + 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, + 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, + 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, + 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, + 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, + 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, + 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, + 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, + 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, + 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, + 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, + 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, + 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, + 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, + 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, + 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, + 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, + 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, + 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, + 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, + 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, + 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, + 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, + 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, + 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, + 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, + 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, + 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, + 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, + 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, + 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, + 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, + 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, + 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, + 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, + 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, + 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, + 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, + 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, + 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, + 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, + 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, + 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, + 231,224,195,192,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,7,0,1,3,19,19,7,2, + 251,224,224,224,0,0,64,64,64,224,224,224,224,224,224,224, + 224,224,224,64,10,18,36,14,2,253,0,64,0,64,0,128, + 31,128,113,192,97,192,226,192,194,0,196,0,196,0,200,0, + 232,0,112,64,112,192,63,0,32,0,64,0,64,0,13,18, + 36,14,0,0,3,192,14,48,12,112,28,112,28,32,28,0, + 28,0,14,0,127,192,7,0,7,0,7,0,7,0,7,0, + 118,8,140,8,143,240,115,224,13,12,24,15,1,4,71,16, + 255,248,112,112,32,32,96,48,96,48,96,48,96,48,32,32, + 112,112,255,248,71,16,16,18,36,17,0,0,252,63,56,12, + 24,8,28,24,12,16,14,48,6,32,7,96,3,64,3,192, + 31,248,1,128,1,128,31,248,1,128,1,128,1,128,15,240, + 2,18,18,15,6,0,192,192,192,192,192,192,192,0,0,0, + 192,192,192,192,192,192,192,192,10,22,44,12,1,252,31,0, + 35,128,97,128,97,128,120,0,60,0,31,0,47,128,67,192, + 193,192,192,192,224,192,240,192,124,128,63,0,15,0,3,128, + 1,128,97,128,97,128,113,0,62,0,6,2,2,8,1,15, + 204,204,18,18,54,20,1,0,3,240,0,12,12,0,16,2, + 0,32,1,0,67,240,128,70,24,128,140,8,64,140,0,64, + 140,0,64,140,0,64,140,0,64,140,8,64,70,24,128,67, + 224,128,32,1,0,16,2,0,12,12,0,3,240,0,7,10, + 10,9,1,8,120,76,4,124,196,204,118,0,0,254,10,7, + 14,12,1,3,24,192,49,128,99,0,198,0,99,0,49,128, + 24,192,12,7,14,14,1,3,255,240,255,240,0,48,0,48, + 0,48,0,48,0,48,6,2,2,8,1,6,252,252,18,18, + 54,20,1,0,3,240,0,12,12,0,16,2,0,32,1,0, + 71,240,128,67,24,128,131,24,64,131,24,64,131,16,64,131, + 224,64,131,48,64,131,24,64,67,12,128,71,142,128,32,1, + 0,16,2,0,12,12,0,3,240,0,7,1,1,9,1,15, + 254,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, + 22,14,1,2,6,0,6,0,6,0,255,240,255,240,6,0, + 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, + 124,198,198,6,12,24,48,96,192,194,254,7,11,11,8,0, + 7,124,198,198,6,12,60,6,6,198,198,124,5,4,4,8, + 2,15,24,56,96,128,14,17,34,14,0,251,240,240,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,112, + 63,176,46,60,32,0,32,0,112,0,112,0,32,0,13,22, + 44,15,1,252,31,248,115,48,227,48,227,48,227,48,227,48, + 227,48,227,48,115,48,31,48,3,48,3,48,3,48,3,48, + 3,48,3,48,3,48,3,48,3,48,3,48,3,48,7,248, + 3,3,3,7,2,5,224,224,224,4,4,4,7,1,252,64, + 112,16,224,6,11,11,8,1,7,16,48,240,48,48,48,48, + 48,48,48,252,7,10,10,9,1,8,56,68,198,198,198,68, + 56,0,0,254,10,7,14,12,1,3,198,0,99,0,49,128, + 24,192,49,128,99,0,198,0,18,18,54,19,0,0,16,4, + 0,48,12,0,240,8,0,48,24,0,48,16,0,48,48,0, + 48,32,0,48,99,0,48,71,0,48,207,0,252,139,0,1, + 155,0,1,19,0,3,51,0,2,99,0,6,127,192,4,3, + 0,12,7,128,18,18,54,19,0,0,16,8,0,48,24,0, + 240,16,0,48,48,0,48,32,0,48,96,0,48,64,0,48, + 207,128,48,152,192,49,152,192,253,0,192,3,1,128,2,3, + 0,6,6,0,4,12,0,12,24,0,8,24,64,24,31,192, + 18,18,54,19,0,0,124,4,0,198,12,0,198,8,0,6, + 24,0,12,16,0,60,48,0,6,32,0,6,99,0,198,71, + 0,198,207,0,124,139,0,1,155,0,1,19,0,3,51,0, + 2,99,0,6,127,192,4,3,0,12,7,128,10,18,36,12, + 1,252,7,0,7,0,7,0,0,0,0,0,2,0,2,0, + 6,0,12,0,28,0,56,0,112,0,224,0,225,192,225,192, + 224,192,113,128,30,0,19,23,69,19,0,0,3,0,0,3, + 128,0,0,192,0,0,32,0,0,0,0,0,64,0,0,96, + 0,0,224,0,0,240,0,1,48,0,1,56,0,2,24,0, + 2,28,0,4,12,0,4,12,0,8,14,0,15,254,0,16, + 6,0,16,7,0,32,3,0,32,3,128,96,3,128,248,15, + 224,19,23,69,19,0,0,0,24,0,0,56,0,0,96,0, + 0,128,0,0,0,0,0,64,0,0,96,0,0,224,0,0, + 240,0,1,48,0,1,56,0,2,24,0,2,28,0,4,12, + 0,4,12,0,8,14,0,15,254,0,16,6,0,16,7,0, + 32,3,0,32,3,128,96,3,128,248,15,224,19,23,69,19, + 0,0,0,96,0,0,240,0,1,152,0,2,4,0,0,0, + 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, + 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, + 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, + 128,96,3,128,248,15,224,19,22,66,19,0,0,1,196,0, + 3,248,0,4,112,0,0,0,0,0,64,0,0,96,0,0, + 224,0,0,240,0,1,48,0,1,56,0,2,24,0,2,28, + 0,4,12,0,4,12,0,8,14,0,15,254,0,16,6,0, + 16,7,0,32,3,0,32,3,128,96,3,128,248,15,224,19, + 22,66,19,0,0,3,24,0,3,24,0,0,0,0,0,0, + 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, + 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, + 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, + 128,96,3,128,248,15,224,19,24,72,19,0,0,0,224,0, + 1,16,0,1,16,0,1,16,0,0,224,0,0,0,0,0, + 64,0,0,96,0,0,224,0,0,240,0,1,48,0,1,56, + 0,2,24,0,2,28,0,4,12,0,4,12,0,8,14,0, + 15,254,0,16,6,0,16,7,0,32,3,0,32,3,128,96, + 3,128,248,15,224,24,18,54,25,0,0,1,255,255,0,38, + 7,0,102,3,0,70,1,0,198,1,0,134,17,1,134,16, + 1,6,48,3,7,240,2,6,48,7,254,16,4,6,16,12, + 6,1,8,6,1,24,6,1,16,6,3,48,6,7,252,31, + 255,15,23,46,17,1,251,7,242,28,30,56,6,48,2,112, + 2,96,2,224,0,224,0,224,0,224,0,224,0,224,0,96, + 2,112,2,48,6,56,4,28,28,7,240,3,224,1,0,1, + 192,0,64,3,128,13,23,46,16,1,0,24,0,28,0,6, + 0,1,0,0,0,255,248,48,56,48,24,48,8,48,8,48, + 136,48,128,49,128,63,128,49,128,48,128,48,128,48,8,48, + 8,48,8,48,24,48,56,255,248,13,23,46,16,1,0,0, + 96,0,224,1,128,2,0,0,0,255,248,48,56,48,24,48, + 8,48,8,48,136,48,128,49,128,63,128,49,128,48,128,48, + 128,48,8,48,8,48,8,48,24,48,56,255,248,13,23,46, + 16,1,0,3,0,7,128,12,192,16,32,0,0,255,248,48, + 56,48,24,48,8,48,8,48,136,48,128,49,128,63,128,49, + 128,48,128,48,128,48,8,48,8,48,8,48,24,48,56,255, + 248,13,22,44,16,1,0,12,96,12,96,0,0,0,0,255, + 248,48,56,48,24,48,8,48,8,48,136,48,128,49,128,63, + 128,49,128,48,128,48,128,48,8,48,8,48,8,48,24,48, + 56,255,248,6,23,23,9,2,0,192,224,48,8,0,252,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,252, + 7,23,23,9,2,0,6,14,24,32,0,252,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,252,8,23,23, + 9,1,0,24,60,102,129,0,126,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,126,7,22,22,9,2,0, + 198,198,0,0,252,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,252,16,18,36,20,2,0,255,224,48,56, + 48,12,48,12,48,6,48,6,48,7,48,7,254,7,48,7, + 48,7,48,7,48,6,48,6,48,12,48,12,48,56,255,224, + 19,22,66,21,1,0,1,196,0,3,248,0,4,112,0,0, + 0,0,248,15,224,60,3,128,28,1,0,30,1,0,23,1, + 0,19,129,0,17,129,0,16,193,0,16,225,0,16,97,0, + 16,49,0,16,57,0,16,29,0,16,15,0,16,7,0,16, + 7,0,56,3,0,254,1,0,17,23,69,19,1,0,12,0, + 0,14,0,0,3,0,0,0,128,0,0,0,0,7,240,0, + 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, + 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, + 7,240,0,17,23,69,19,1,0,0,24,0,0,56,0,0, + 96,0,0,128,0,0,0,0,7,240,0,28,28,0,48,6, + 0,48,6,0,112,7,0,96,3,0,224,3,128,224,3,128, + 224,3,128,224,3,128,224,3,128,224,3,128,96,3,0,112, + 7,0,48,6,0,48,6,0,28,28,0,7,240,0,17,23, + 69,19,1,0,0,192,0,1,224,0,3,48,0,4,8,0, + 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, + 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, + 48,6,0,28,28,0,7,240,0,17,22,66,19,1,0,3, + 136,0,7,240,0,8,224,0,0,0,0,7,240,0,28,28, + 0,48,6,0,48,6,0,112,7,0,96,3,0,224,3,128, + 224,3,128,224,3,128,224,3,128,224,3,128,224,3,128,96, + 3,0,112,7,0,48,6,0,48,6,0,28,28,0,7,240, + 0,17,22,66,19,1,0,6,48,0,6,48,0,0,0,0, + 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, + 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, + 48,6,0,28,28,0,7,240,0,13,12,24,14,1,1,192, + 24,96,48,48,96,24,192,13,128,7,0,7,0,13,128,24, + 192,48,96,96,48,192,24,17,19,57,19,1,0,0,3,0, + 7,246,0,28,28,0,48,14,0,48,30,0,96,51,0,96, + 99,0,224,67,128,224,195,128,225,131,128,227,3,128,226,3, + 128,230,3,128,108,3,0,120,3,0,48,6,0,48,6,0, + 124,28,0,199,240,0,16,23,46,19,2,0,6,0,7,0, + 1,128,0,64,0,0,252,31,48,14,48,4,48,4,48,4, + 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, + 48,4,56,12,24,8,30,56,7,224,16,23,46,19,2,0, + 0,48,0,112,0,192,1,0,0,0,252,31,48,14,48,4, + 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, + 48,4,48,4,48,4,56,12,24,8,30,56,7,224,16,23, + 46,19,2,0,1,128,3,192,6,96,8,16,0,0,252,31, + 48,14,48,4,48,4,48,4,48,4,48,4,48,4,48,4, + 48,4,48,4,48,4,48,4,48,4,56,12,24,8,30,56, + 7,224,16,22,44,19,2,0,6,48,6,48,0,0,0,0, + 252,31,48,14,48,4,48,4,48,4,48,4,48,4,48,4, + 48,4,48,4,48,4,48,4,48,4,48,4,56,12,24,8, + 30,56,7,224,16,23,46,17,0,0,0,48,0,112,0,192, + 1,0,0,0,252,63,56,12,24,8,28,24,12,16,14,48, + 6,32,7,96,3,64,3,192,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,7,224,13,18,36,16,2,0,252,0, + 48,0,48,0,48,0,63,128,48,224,48,48,48,56,48,56, + 48,56,48,56,48,48,48,224,63,128,48,0,48,0,48,0, + 252,0,12,18,36,14,1,0,15,128,24,192,48,96,48,96, + 48,96,48,96,48,192,51,192,48,96,48,48,48,48,48,48, + 48,48,48,48,54,48,54,48,54,96,243,192,12,18,36,13, + 1,0,24,0,28,0,6,0,1,0,0,0,0,0,31,0, + 113,128,112,192,96,192,0,192,7,192,56,192,96,192,192,192, + 192,192,225,240,126,96,12,18,36,13,1,0,1,128,3,128, + 6,0,8,0,0,0,0,0,31,0,113,128,112,192,96,192, + 0,192,7,192,56,192,96,192,192,192,192,192,225,240,126,96, + 12,18,36,13,1,0,6,0,15,0,25,128,32,64,0,0, + 0,0,31,0,113,128,112,192,96,192,0,192,7,192,56,192, + 96,192,192,192,192,192,225,240,126,96,12,17,34,13,1,0, + 28,64,63,128,71,0,0,0,0,0,31,0,113,128,112,192, + 96,192,0,192,7,192,56,192,96,192,192,192,192,192,225,240, + 126,96,12,16,32,13,1,0,25,128,25,128,0,0,0,0, + 31,0,113,128,112,192,96,192,0,192,7,192,56,192,96,192, + 192,192,192,192,225,240,126,96,12,19,38,13,1,0,14,0, + 17,0,17,0,17,0,14,0,0,0,0,0,31,0,113,128, + 112,192,96,192,0,192,7,192,56,192,96,192,192,192,192,192, + 225,240,126,96,19,12,36,21,1,0,31,31,0,113,241,192, + 96,224,192,0,224,224,0,192,96,7,255,224,56,192,0,96, + 192,0,192,224,0,192,224,64,227,112,192,124,31,128,10,16, + 32,12,1,252,31,0,113,192,97,192,224,192,192,0,192,0, + 192,0,192,0,224,0,96,64,112,192,31,128,8,0,14,0, + 2,0,28,0,11,18,36,13,1,0,24,0,28,0,6,0, + 1,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, + 255,224,192,0,192,0,224,0,96,64,112,192,31,128,11,18, + 36,13,1,0,1,128,3,128,6,0,8,0,0,0,0,0, + 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, + 224,0,96,64,112,192,31,128,11,18,36,13,1,0,6,0, + 15,0,25,128,32,64,0,0,0,0,31,0,113,192,96,192, + 224,224,192,96,255,224,192,0,192,0,224,0,96,64,112,192, + 31,128,11,16,32,13,1,0,49,128,49,128,0,0,0,0, + 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, + 224,0,96,64,112,192,31,128,6,18,18,8,1,0,192,224, + 48,8,0,0,240,48,48,48,48,48,48,48,48,48,48,252, + 6,18,18,8,1,0,24,56,96,128,0,0,240,48,48,48, + 48,48,48,48,48,48,48,252,8,18,18,8,0,0,24,60, + 102,129,0,0,120,24,24,24,24,24,24,24,24,24,24,126, + 6,16,16,8,1,0,204,204,0,0,240,48,48,48,48,48, + 48,48,48,48,48,252,11,18,36,13,1,0,192,0,51,0, + 28,0,28,0,102,0,3,0,31,128,113,192,96,192,224,224, + 192,96,192,96,192,96,192,96,224,224,96,192,113,192,31,0, + 14,17,34,14,0,0,7,16,15,224,17,192,0,0,0,0, + 241,192,55,224,56,112,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,252,252,11,18,36,13,1,0,24,0, + 28,0,6,0,1,0,0,0,0,0,31,0,113,192,96,192, + 224,224,192,96,192,96,192,96,192,96,224,224,96,192,113,192, + 31,0,11,18,36,13,1,0,1,128,3,128,6,0,8,0, + 0,0,0,0,31,0,113,192,96,192,224,224,192,96,192,96, + 192,96,192,96,224,224,96,192,113,192,31,0,11,18,36,13, + 1,0,14,0,31,0,49,128,64,64,0,0,0,0,31,0, + 113,192,96,192,224,224,192,96,192,96,192,96,192,96,224,224, + 96,192,113,192,31,0,11,17,34,13,1,0,28,64,63,128, + 71,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, + 192,96,192,96,192,96,224,224,96,192,113,192,31,0,11,16, + 32,13,1,0,49,128,49,128,0,0,0,0,31,0,113,192, + 96,192,224,224,192,96,192,96,192,96,192,96,224,224,96,192, + 113,192,31,0,12,10,20,14,1,2,6,0,6,0,0,0, + 0,0,255,240,255,240,0,0,0,0,6,0,6,0,11,16, + 32,13,1,254,0,64,0,128,31,128,113,192,98,192,226,224, + 196,96,196,96,196,96,200,96,200,224,80,192,113,192,63,0, + 32,0,64,0,14,18,36,14,0,0,12,0,14,0,3,0, + 0,128,0,0,0,0,240,240,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,56,112,31,176,14,60,14,18, + 36,14,0,0,0,192,1,192,3,0,4,0,0,0,0,0, + 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,56,112,31,176,14,60,14,18,36,14,0,0,3,0, + 7,128,12,192,16,32,0,0,0,0,240,240,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,56,112,31,176, + 14,60,14,16,32,14,0,0,12,192,12,192,0,0,0,0, + 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,56,112,31,176,14,60,13,23,46,12,255,251,0,96, + 0,224,1,128,2,0,0,0,0,0,120,56,48,16,56,48, + 24,32,24,32,12,96,12,64,6,192,6,128,7,128,3,0, + 3,0,2,0,2,0,196,0,236,0,120,0,13,23,46,14, + 0,251,240,0,48,0,48,0,48,0,48,0,48,0,55,192, + 60,112,56,48,48,56,48,24,48,24,48,24,48,24,48,56, + 56,48,60,112,55,192,48,0,48,0,48,0,48,0,252,0, + 13,21,42,12,255,251,12,96,12,96,0,0,0,0,120,56, + 48,16,56,48,24,32,24,32,12,96,12,64,6,192,6,128, + 7,128,3,0,3,0,2,0,2,0,196,0,236,0,120,0 + }; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=25 h=23 x= 6 y=14 dx=25 dy= 0 ascent=20 len=72 + Font Bounding box w=31 h=37 x=-3 y=-8 + Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 + Pure Font ascent =18 descent=-5 + X Font ascent =18 descent=-5 + Max Font ascent =20 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR18r[3477] U8G_SECTION(".progmem.u8g_font_ncenR18r") = { + 0,31,37,253,248,18,4,33,9,197,32,127,251,20,251,18, + 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, + 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, + 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, + 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, + 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, + 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, + 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, + 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, + 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, + 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, + 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, + 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, + 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, + 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, + 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, + 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, + 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, + 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, + 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, + 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, + 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, + 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, + 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, + 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, + 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, + 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, + 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, + 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, + 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, + 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, + 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, + 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, + 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, + 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, + 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, + 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, + 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, + 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, + 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, + 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, + 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, + 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, + 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, + 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, + 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, + 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, + 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, + 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, + 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, + 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, + 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, + 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, + 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, + 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, + 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, + 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, + 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, + 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, + 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, + 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, + 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, + 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, + 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, + 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, + 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, + 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, + 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, + 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, + 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, + 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, + 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, + 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, + 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, + 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, + 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, + 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, + 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, + 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, + 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, + 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, + 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, + 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, + 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, + 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, + 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, + 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, + 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, + 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, + 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, + 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, + 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, + 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, + 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, + 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, + 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, + 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, + 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, + 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, + 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, + 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, + 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, + 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, + 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, + 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, + 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, + 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, + 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, + 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, + 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, + 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, + 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, + 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, + 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, + 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, + 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, + 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, + 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, + 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, + 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, + 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, + 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, + 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, + 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, + 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, + 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, + 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, + 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, + 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, + 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, + 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, + 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, + 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, + 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, + 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, + 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, + 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, + 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, + 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, + 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, + 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, + 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, + 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, + 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, + 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, + 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, + 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, + 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, + 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, + 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, + 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, + 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, + 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, + 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, + 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, + 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, + 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, + 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, + 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, + 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, + 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, + 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, + 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, + 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, + 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, + 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, + 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, + 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, + 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, + 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, + 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, + 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, + 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, + 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, + 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, + 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, + 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, + 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, + 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, + 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, + 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, + 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, + 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, + 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, + 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, + 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, + 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, + 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, + 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, + 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, + 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, + 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, + 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, + 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, + 231,224,195,192,255}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=31 h=32 x= 9 y=19 dx=32 dy= 0 ascent=32 len=128 + Font Bounding box w=39 h=50 x=-6 y=-11 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =32 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR24[11729] U8G_SECTION(".progmem.u8g_font_ncenR24") = { + 0,39,50,250,245,25,5,159,15,28,32,255,249,32,249,25, + 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, + 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, + 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, + 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, + 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, + 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, + 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, + 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, + 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, + 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, + 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, + 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, + 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, + 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, + 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, + 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, + 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, + 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, + 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, + 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, + 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, + 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, + 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, + 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, + 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, + 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, + 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, + 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, + 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, + 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, + 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, + 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, + 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, + 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, + 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, + 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, + 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, + 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, + 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, + 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, + 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, + 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, + 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, + 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, + 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, + 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, + 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, + 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, + 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, + 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, + 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, + 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, + 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, + 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, + 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, + 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, + 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, + 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, + 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, + 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, + 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, + 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, + 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, + 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, + 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, + 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, + 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, + 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, + 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, + 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, + 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, + 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, + 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, + 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, + 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, + 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, + 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, + 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, + 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, + 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, + 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, + 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, + 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, + 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, + 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, + 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, + 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, + 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, + 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, + 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, + 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, + 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, + 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, + 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, + 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, + 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, + 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, + 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, + 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, + 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, + 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, + 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, + 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, + 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, + 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, + 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, + 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, + 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, + 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, + 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, + 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, + 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, + 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, + 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, + 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, + 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, + 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, + 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, + 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, + 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, + 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, + 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, + 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, + 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, + 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, + 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, + 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, + 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, + 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, + 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, + 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, + 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, + 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, + 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, + 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, + 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, + 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, + 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, + 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, + 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, + 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, + 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, + 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, + 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, + 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, + 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, + 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, + 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, + 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, + 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, + 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, + 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, + 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, + 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, + 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, + 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, + 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, + 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, + 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, + 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, + 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, + 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, + 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, + 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, + 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, + 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, + 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, + 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, + 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, + 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, + 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, + 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, + 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, + 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, + 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, + 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, + 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, + 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, + 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, + 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, + 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, + 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, + 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, + 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, + 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, + 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, + 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, + 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, + 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, + 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, + 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, + 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, + 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, + 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, + 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, + 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, + 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, + 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, + 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, + 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, + 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, + 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, + 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, + 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, + 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, + 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, + 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, + 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, + 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, + 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, + 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, + 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, + 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, + 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, + 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, + 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, + 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, + 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, + 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, + 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, + 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, + 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, + 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, + 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, + 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, + 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, + 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, + 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, + 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, + 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, + 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, + 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, + 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, + 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, + 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, + 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, + 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, + 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, + 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, + 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, + 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, + 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, + 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, + 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, + 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, + 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, + 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, + 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, + 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, + 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, + 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, + 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, + 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, + 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, + 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, + 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, + 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, + 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, + 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, + 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, + 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, + 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, + 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, + 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, + 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, + 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, + 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, + 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, + 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, + 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, + 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, + 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, + 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, + 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, + 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, + 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, + 127,135,225,254,192,120,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,9,1,1,4,25,25, + 10,3,249,96,240,240,96,0,0,0,96,96,96,96,96,96, + 96,96,96,96,96,240,240,240,240,240,240,96,13,24,48,18, + 2,252,0,24,0,24,0,16,0,48,7,224,31,240,56,112, + 112,112,112,240,224,224,224,128,225,128,225,0,227,0,227,0, + 242,16,118,48,60,96,31,224,15,128,8,0,24,0,16,0, + 16,0,16,23,46,19,1,0,1,240,7,252,14,14,12,14, + 28,30,28,30,28,28,28,0,30,0,14,0,14,0,255,248, + 15,0,7,0,7,0,7,0,6,0,6,0,126,3,223,7, + 143,142,223,252,112,240,16,17,34,19,1,3,67,194,239,247, + 127,254,60,60,112,14,112,14,224,7,224,7,224,7,224,7, + 224,7,112,14,112,14,60,60,127,254,239,247,3,192,17,23, + 69,19,0,0,255,31,128,60,15,0,28,6,0,30,6,0, + 14,4,0,15,12,0,7,8,0,7,24,0,3,144,0,3, + 176,0,1,224,0,0,224,0,7,252,0,7,252,0,0,224, + 0,0,224,0,7,252,0,7,252,0,0,224,0,0,224,0, + 0,224,0,7,248,0,7,248,0,2,25,25,20,9,0,192, + 192,192,192,192,192,192,192,192,192,0,0,0,0,0,192,192, + 192,192,192,192,192,192,192,192,12,30,60,17,2,251,15,0, + 57,192,48,192,113,192,113,192,112,128,56,0,60,0,30,0, + 15,0,63,128,99,192,193,224,192,240,192,112,224,48,240,48, + 120,48,60,96,31,192,15,0,7,128,3,192,1,192,16,224, + 56,224,56,224,48,192,57,192,15,0,9,3,6,11,1,19, + 99,0,247,128,99,0,24,25,75,25,0,0,0,126,0,3, + 255,128,7,129,224,14,0,112,24,0,56,48,0,28,48,127, + 12,96,227,134,97,129,134,67,128,134,195,0,131,199,0,3, + 199,0,3,199,0,3,199,0,3,195,0,3,67,128,6,97, + 193,134,97,227,140,48,126,12,24,0,24,28,0,112,7,1, + 224,3,255,128,0,126,0,11,14,28,11,0,11,63,0,99, + 128,97,128,99,128,15,128,121,128,225,128,193,128,227,128,125, + 224,0,0,0,0,0,0,255,192,11,11,22,14,1,2,4, + 32,12,96,24,192,49,128,115,128,231,0,115,128,49,128,24, + 192,12,96,4,32,16,9,18,20,1,3,255,255,255,255,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,8,3,3, + 11,1,7,255,255,255,24,24,72,25,0,0,0,126,0,3, + 255,192,15,1,240,28,0,56,56,0,24,51,252,12,96,199, + 14,96,195,6,64,195,6,192,195,3,192,198,3,192,252,3, + 192,204,3,192,206,3,192,198,3,96,199,6,96,195,6,96, + 195,142,51,227,204,24,0,24,28,0,112,7,0,224,3,255, + 192,0,126,0,10,2,4,11,0,19,255,192,255,192,9,9, + 18,13,2,14,62,0,119,0,193,128,193,128,128,128,193,128, + 193,128,119,0,62,0,16,16,32,20,2,0,1,128,1,128, + 1,128,1,128,255,255,255,255,1,128,1,128,1,128,1,128, + 1,128,0,0,0,0,0,0,255,255,255,255,10,14,28,11, + 0,9,63,0,115,128,97,128,113,128,113,128,1,128,3,0, + 7,0,14,0,28,0,56,64,112,64,255,192,255,192,9,14, + 28,11,1,9,62,0,99,0,113,128,97,128,1,128,7,0, + 62,0,7,0,3,0,97,128,225,128,195,128,231,0,126,0, + 7,6,6,11,2,19,6,14,28,56,96,192,17,23,69,20, + 1,249,56,14,0,248,62,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,30,0,56,30,0,60,126,0,63,238,0,47, + 143,128,32,0,0,32,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,32,0,0,17,30,90,20,2,251,15,255,128, + 63,255,128,120,198,0,240,198,0,240,198,0,240,198,0,240, + 198,0,240,198,0,240,198,0,240,198,0,120,198,0,124,198, + 0,63,198,0,15,198,0,0,198,0,0,198,0,0,198,0, + 0,198,0,0,198,0,0,198,0,0,198,0,0,198,0,0, + 198,0,0,198,0,0,198,0,0,198,0,0,198,0,0,198, + 0,3,255,128,3,255,128,4,4,4,9,2,6,96,240,240, + 96,6,7,7,11,1,249,16,32,120,12,12,140,120,8,14, + 14,11,1,9,56,248,24,24,24,24,24,24,24,24,24,24, + 24,255,11,14,28,10,255,11,14,0,59,128,96,192,224,224, + 192,96,192,96,224,224,96,192,59,128,14,0,0,0,0,0, + 0,0,127,192,11,11,22,14,1,2,132,0,198,0,99,0, + 49,128,57,192,28,224,57,192,49,128,99,0,198,0,132,0, + 25,23,92,28,1,0,56,0,24,0,248,0,48,0,24,0, + 48,0,24,0,96,0,24,0,192,0,24,0,128,0,24,1, + 128,0,24,3,0,0,24,6,0,0,24,6,4,0,24,12, + 12,0,24,24,28,0,24,24,60,0,255,48,108,0,0,96, + 76,0,0,192,204,0,0,193,140,0,1,131,12,0,3,3, + 255,128,3,0,12,0,6,0,12,0,12,0,12,0,8,0, + 63,0,25,23,92,28,1,0,56,0,24,0,248,0,48,0, + 24,0,32,0,24,0,96,0,24,0,192,0,24,1,128,0, + 24,1,128,0,24,3,0,0,24,6,0,0,24,6,62,0, + 24,12,99,0,24,24,193,128,24,48,193,128,255,48,225,128, + 0,96,195,0,0,192,7,0,0,192,14,0,1,128,28,0, + 3,0,56,0,3,0,112,128,6,0,224,128,12,1,255,128, + 8,1,255,128,25,23,92,28,1,0,62,0,8,0,99,0, + 24,0,113,128,48,0,97,128,48,0,1,128,96,0,7,0, + 192,0,30,1,128,0,7,1,128,0,3,131,0,0,97,134, + 4,0,225,134,12,0,195,140,28,0,231,24,60,0,126,48, + 108,0,0,48,204,0,0,96,204,0,0,193,140,0,0,195, + 12,0,1,131,255,128,3,0,12,0,6,0,12,0,6,0, + 12,0,12,0,63,0,12,25,50,14,1,249,3,0,7,128, + 7,128,3,0,0,0,0,0,0,0,3,0,3,0,2,0, + 2,0,6,0,12,0,28,0,56,0,120,0,112,0,240,0, + 224,112,224,112,224,112,240,48,112,48,60,224,31,192,23,32, + 96,23,0,0,6,0,0,7,0,0,3,128,0,1,192,0, + 0,96,0,0,48,0,0,0,0,0,16,0,0,56,0,0, + 56,0,0,120,0,0,124,0,0,124,0,0,220,0,0,222, + 0,1,158,0,1,142,0,1,143,0,3,7,0,3,7,128, + 3,7,128,6,3,128,7,255,192,7,255,192,12,1,192,12, + 1,224,12,1,224,24,0,240,24,0,240,56,0,248,124,1, + 252,254,3,254,23,32,96,23,0,0,0,1,128,0,3,128, + 0,7,0,0,14,0,0,24,0,0,48,0,0,0,0,0, + 16,0,0,56,0,0,56,0,0,120,0,0,124,0,0,124, + 0,0,220,0,0,222,0,1,158,0,1,142,0,1,143,0, + 3,7,0,3,7,128,3,7,128,6,3,128,7,255,192,7, + 255,192,12,1,192,12,1,224,12,1,224,24,0,240,24,0, + 240,56,0,248,124,1,252,254,3,254,23,31,93,23,0,0, + 0,24,0,0,60,0,0,126,0,0,195,0,1,129,128,0, + 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, + 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, + 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, + 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, + 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, + 23,0,0,0,241,128,1,255,0,3,30,0,0,0,0,0, + 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, + 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, + 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, + 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, + 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, + 23,0,0,1,134,0,3,207,0,1,134,0,0,0,0,0, + 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, + 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, + 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, + 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, + 240,24,0,240,56,0,248,124,1,252,254,3,254,23,32,96, + 23,0,0,0,120,0,0,204,0,0,132,0,0,132,0,0, + 204,0,0,120,0,0,0,0,0,16,0,0,56,0,0,56, + 0,0,120,0,0,124,0,0,124,0,0,220,0,0,222,0, + 1,158,0,1,142,0,1,143,0,3,7,0,3,7,128,3, + 7,128,6,3,128,7,255,192,7,255,192,12,1,192,12,1, + 224,12,1,224,24,0,240,24,0,240,56,0,248,124,1,252, + 254,3,254,30,25,100,32,0,0,1,255,255,252,0,127,255, + 252,0,29,192,124,0,25,192,28,0,25,192,28,0,49,192, + 12,0,49,192,140,0,97,192,132,0,97,193,132,0,193,193, + 128,0,193,195,128,1,129,255,128,1,129,255,128,3,1,195, + 128,3,255,193,128,7,255,193,128,6,1,192,132,12,1,192, + 132,12,1,192,4,24,1,192,12,24,1,192,12,48,1,192, + 28,48,1,192,124,120,7,255,252,254,31,255,252,20,32,96, + 22,1,249,0,248,96,3,255,96,15,7,224,28,1,224,60, + 0,224,56,0,224,120,0,96,120,0,96,240,0,96,240,0, + 32,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, + 240,0,0,240,0,48,120,0,48,120,0,32,120,0,96,60, + 0,96,28,0,192,14,1,128,7,207,0,1,254,0,0,32, + 0,0,64,0,0,240,0,0,24,0,0,24,0,1,24,0, + 0,240,0,20,32,96,24,1,0,3,0,0,3,128,0,1, + 192,0,0,224,0,0,48,0,0,24,0,0,0,0,255,255, + 240,63,255,240,14,1,240,14,0,112,14,0,112,14,0,48, + 14,4,48,14,4,16,14,4,16,14,12,0,14,60,0,15, + 252,0,15,252,0,14,60,0,14,12,0,14,12,0,14,4, + 16,14,4,16,14,0,16,14,0,48,14,0,48,14,0,112, + 14,1,240,63,255,240,255,255,240,20,32,96,24,1,0,0, + 1,128,0,3,128,0,7,0,0,14,0,0,24,0,0,48, + 0,0,0,0,255,255,240,63,255,240,14,1,240,14,0,112, + 14,0,112,14,0,48,14,4,48,14,4,16,14,4,16,14, + 12,0,14,60,0,15,252,0,15,252,0,14,60,0,14,12, + 0,14,12,0,14,4,16,14,4,16,14,0,16,14,0,48, + 14,0,48,14,0,112,14,1,240,63,255,240,255,255,240,20, + 32,96,24,1,0,0,48,0,0,120,0,0,252,0,1,134, + 0,3,3,0,0,0,0,0,0,0,255,255,240,63,255,240, + 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, + 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, + 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, + 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, + 255,240,255,255,240,20,30,90,24,1,0,0,198,0,1,239, + 0,0,198,0,0,0,0,0,0,0,255,255,240,63,255,240, + 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, + 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, + 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, + 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, + 255,240,255,255,240,11,32,64,13,1,0,96,0,112,0,56, + 0,28,0,6,0,3,0,0,0,255,224,63,128,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,63,128,255,224,11,32,64,13,1, + 0,0,192,1,192,3,128,7,0,12,0,24,0,0,0,255, + 224,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,255, + 224,11,31,62,13,1,0,6,0,15,0,31,128,48,192,96, + 96,0,0,255,224,63,128,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,63,128,255,224,11,30,60,13,1,0,49,128,123,192,49, + 128,0,0,0,0,255,224,63,128,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,63,128,255,224,22,25,75,24,1,0,255,252,0, + 255,255,128,30,7,192,14,1,224,14,0,240,14,0,112,14, + 0,120,14,0,120,14,0,56,14,0,60,14,0,60,14,0, + 60,127,224,60,127,224,60,14,0,60,14,0,60,14,0,60, + 14,0,56,14,0,120,14,0,120,14,0,112,14,0,224,14, + 1,192,255,255,128,255,254,0,26,30,120,28,1,0,0,30, + 48,0,0,63,224,0,0,99,192,0,0,0,0,0,0,0, + 0,0,255,0,255,192,31,0,63,0,15,128,12,0,15,192, + 12,0,15,192,12,0,13,224,12,0,13,240,12,0,12,248, + 12,0,12,120,12,0,12,124,12,0,12,62,12,0,12,30, + 12,0,12,31,12,0,12,15,140,0,12,7,140,0,12,7, + 204,0,12,3,204,0,12,1,236,0,12,0,236,0,12,0, + 252,0,12,0,124,0,12,0,60,0,12,0,60,0,63,0, + 28,0,255,192,12,0,22,32,96,24,1,0,6,0,0,7, + 0,0,3,128,0,1,192,0,0,96,0,0,48,0,0,0, + 0,1,254,0,7,255,128,15,3,192,28,0,224,60,0,240, + 56,0,112,120,0,120,120,0,120,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,56,120,0,120,120,0,120,56,0,112,60,0,240, + 28,0,224,15,3,192,7,255,128,1,254,0,22,32,96,24, + 1,0,0,3,0,0,7,0,0,14,0,0,28,0,0,48, + 0,0,96,0,0,0,0,1,254,0,7,255,128,15,3,192, + 28,0,224,60,0,240,56,0,112,120,0,120,120,0,120,240, + 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,56,120,0,120,120,0,120, + 56,0,112,60,0,240,28,0,224,15,3,192,7,255,128,1, + 254,0,22,31,93,24,1,0,0,48,0,0,120,0,0,252, + 0,1,134,0,3,3,0,0,0,0,1,254,0,7,255,128, + 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, + 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, + 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, + 255,128,1,254,0,22,30,90,24,1,0,0,241,128,1,255, + 0,3,30,0,0,0,0,0,0,0,1,254,0,7,255,128, + 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, + 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, + 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, + 255,128,1,254,0,22,30,90,24,1,0,0,198,0,1,239, + 0,0,198,0,0,0,0,0,0,0,1,254,0,7,255,128, + 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, + 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, + 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, + 255,128,1,254,0,17,15,45,20,2,1,224,3,128,112,7, + 0,56,14,0,28,28,0,14,56,0,7,112,0,3,224,0, + 1,192,0,3,224,0,7,112,0,14,56,0,28,28,0,56, + 14,0,112,7,0,224,3,128,22,28,84,24,1,254,0,0, + 24,1,254,48,7,255,176,14,3,224,28,0,224,60,1,240, + 56,1,240,120,3,120,120,6,120,240,6,60,240,12,60,240, + 24,60,240,56,60,240,48,60,240,96,60,240,224,60,240,192, + 60,113,128,56,123,0,120,123,0,120,62,0,112,60,0,240, + 30,1,224,31,3,192,55,255,128,113,254,0,96,0,0,192, + 0,0,26,32,128,26,0,0,0,48,0,0,0,56,0,0, + 0,28,0,0,0,14,0,0,0,3,0,0,0,1,128,0, + 0,0,0,0,255,224,255,192,63,128,63,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 15,0,24,0,7,0,24,0,7,128,48,0,3,224,240,0, + 1,255,192,0,0,127,0,0,26,32,128,26,0,0,0,0, + 48,0,0,0,112,0,0,0,224,0,0,1,192,0,0,3, + 0,0,0,6,0,0,0,0,0,0,255,224,255,192,63,128, + 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, + 48,0,3,224,240,0,1,255,192,0,0,127,0,0,26,31, + 124,26,0,0,0,6,0,0,0,15,0,0,0,31,128,0, + 0,48,192,0,0,96,96,0,0,0,0,0,255,224,255,192, + 63,128,63,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, + 14,0,12,0,14,0,12,0,15,0,24,0,7,0,24,0, + 7,128,48,0,3,224,240,0,1,255,192,0,0,127,0,0, + 26,30,120,26,0,0,0,48,192,0,0,121,224,0,0,48, + 192,0,0,0,0,0,0,0,0,0,255,224,255,192,63,128, + 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, + 48,0,3,224,240,0,1,255,192,0,0,127,0,0,23,32, + 96,23,0,0,0,1,128,0,3,128,0,7,0,0,14,0, + 0,24,0,0,48,0,0,0,0,255,131,254,126,0,248,62, + 0,112,30,0,96,15,0,224,15,0,192,7,129,128,7,193, + 128,3,195,0,3,227,0,1,230,0,0,246,0,0,252,0, + 0,124,0,0,120,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,254, + 0,3,255,128,20,25,75,22,1,0,255,224,0,31,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,15,254,0,15, + 255,128,14,3,192,14,1,224,14,0,240,14,0,240,14,0, + 240,14,0,240,14,0,240,14,1,224,14,3,224,15,255,192, + 15,255,0,14,0,0,14,0,0,14,0,0,14,0,0,31, + 0,0,255,224,0,17,26,78,19,0,255,3,248,0,7,156, + 0,14,14,0,14,15,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,14,0,28,14,0,28,248,0,28,248,0,28, + 14,0,28,7,0,28,7,0,28,7,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,231,128,28,231,0, + 60,231,0,252,254,0,0,56,0,16,23,46,17,1,0,12, + 0,14,0,7,0,3,128,0,192,0,96,0,0,7,192,31, + 240,120,120,112,56,112,56,112,56,1,248,15,248,60,56,112, + 56,224,56,224,56,224,120,240,253,127,159,63,14,16,23,46, + 17,1,0,0,48,0,112,0,224,1,192,3,0,6,0,0, + 0,7,192,31,240,120,120,112,56,112,56,112,56,1,248,15, + 248,60,56,112,56,224,56,224,56,224,120,240,253,127,159,63, + 14,16,22,44,17,1,0,3,0,7,128,15,192,24,96,48, + 48,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, + 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, + 159,62,14,16,21,42,17,1,0,15,24,31,240,49,224,0, + 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, + 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, + 159,62,14,16,21,42,17,1,0,12,96,30,240,12,96,0, + 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, + 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, + 159,62,14,16,23,46,17,1,0,7,128,12,192,8,64,8, + 64,12,192,7,128,0,0,7,192,31,240,120,120,112,56,112, + 56,112,56,1,248,15,248,60,56,112,56,224,56,224,56,224, + 120,240,253,127,159,62,14,23,16,48,25,1,0,15,195,224, + 63,231,248,112,124,28,112,60,12,112,56,14,112,56,14,1, + 248,14,15,255,254,60,56,0,112,56,0,240,56,0,224,60, + 2,224,124,6,240,254,28,127,207,248,63,3,240,12,23,46, + 14,1,249,7,128,31,224,56,112,112,240,112,240,224,96,224, + 0,224,0,224,0,224,0,240,0,240,16,120,48,124,96,63, + 192,15,0,2,0,4,0,15,0,1,128,1,128,17,128,15, + 0,14,23,46,16,1,0,24,0,28,0,14,0,7,0,1, + 128,0,192,0,0,7,192,31,240,56,56,112,24,112,28,240, + 28,240,28,255,252,224,0,224,0,240,0,240,4,120,12,60, + 56,31,240,7,192,14,23,46,16,1,0,0,24,0,56,0, + 112,0,224,1,128,3,0,0,0,7,192,31,240,56,120,112, + 56,96,28,224,28,224,28,255,252,224,0,224,0,240,0,240, + 4,120,12,60,56,31,240,7,192,14,22,44,16,1,0,3, + 0,7,128,15,192,24,96,48,48,0,0,7,192,31,240,56, + 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, + 0,240,4,120,12,60,56,31,240,7,192,14,21,42,16,1, + 0,12,96,30,240,12,96,0,0,0,0,7,192,31,240,56, + 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, + 0,240,4,120,12,60,24,31,240,7,192,9,23,46,11,1, + 0,192,0,224,0,112,0,56,0,12,0,6,0,0,0,252, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,9, + 23,46,11,1,0,1,128,3,128,7,0,14,0,24,0,48, + 0,0,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,255,128,10,22,44,11,0,0,12,0,30,0,63,0,97, + 128,192,192,0,0,126,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,127,192,9,21,42,11,1,0,99,0,247,128,99, + 0,0,0,0,0,252,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,255,128,14,25,50,17,1,0,48,0,60,0,14, + 224,7,192,15,128,13,192,0,224,0,240,0,112,7,248,31, + 248,56,120,112,60,112,60,224,28,224,28,224,28,224,28,224, + 28,224,28,240,60,112,56,120,120,63,240,15,192,19,21,63, + 19,0,0,3,198,0,7,252,0,12,120,0,0,0,0,0, + 0,0,28,120,0,253,254,0,31,158,0,30,15,0,30,7, + 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,255, + 31,224,14,23,46,16,1,0,48,0,56,0,28,0,14,0, + 3,0,1,128,0,0,7,128,31,224,56,112,112,56,112,56, + 224,28,224,28,224,28,224,28,224,28,224,28,240,60,112,56, + 120,120,31,224,7,128,14,23,46,16,1,0,0,24,0,56, + 0,112,0,224,1,128,3,0,0,0,7,128,31,224,56,112, + 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, + 240,60,112,56,120,120,31,224,7,128,14,22,44,16,1,0, + 3,0,7,128,15,192,24,96,48,48,0,0,7,128,31,224, + 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, + 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, + 1,0,15,24,31,240,49,224,0,0,0,0,7,128,31,224, + 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, + 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, + 1,0,24,192,61,224,24,192,0,0,0,0,7,128,31,224, + 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, + 224,28,112,56,112,56,56,112,31,224,7,128,16,16,32,20, + 2,0,1,128,3,192,3,192,1,128,0,0,0,0,0,0, + 255,255,255,255,0,0,0,0,0,0,1,128,3,192,3,192, + 1,128,14,22,44,16,1,253,0,24,0,24,0,48,7,240, + 31,240,56,112,112,248,112,216,225,156,225,156,227,28,227,28, + 230,28,230,28,236,56,124,56,120,112,63,224,63,128,48,0, + 96,0,96,0,18,23,69,20,0,0,6,0,0,7,0,0, + 3,128,0,1,192,0,0,96,0,0,48,0,0,0,0,28, + 7,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,15,0,28,15,0,14,63,0,15,247,192,7,199,0,18, + 23,69,20,0,0,0,12,0,0,28,0,0,56,0,0,112, + 0,0,192,0,1,128,0,0,0,0,28,7,0,252,63,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,15,0,28,15, + 0,14,63,0,15,247,192,7,199,0,18,22,66,20,0,0, + 0,192,0,1,224,0,3,240,0,6,24,0,12,12,0,0, + 0,0,28,7,0,252,63,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,15,0,28,15,0,14,63,0,15,247,192,7, + 199,0,18,21,63,20,0,0,3,24,0,7,188,0,3,24, + 0,0,0,0,0,0,0,28,7,0,252,63,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,15,0,28,15,0,14,63, + 0,15,247,192,7,199,0,17,30,90,19,1,249,0,12,0, + 0,28,0,0,56,0,0,112,0,0,192,0,1,128,0,0, + 0,0,255,31,128,124,7,0,60,6,0,28,6,0,30,12, + 0,14,12,0,15,8,0,7,24,0,7,24,0,7,176,0, + 3,176,0,3,224,0,1,224,0,1,224,0,0,192,0,0, + 192,0,1,128,0,1,128,0,99,0,0,227,0,0,230,0, + 0,252,0,0,112,0,0,16,29,58,19,1,249,56,0,248, + 0,56,0,56,0,56,0,56,0,56,240,59,252,63,30,60, + 14,60,15,56,7,56,7,56,7,56,7,56,7,56,7,60, + 15,60,14,62,30,59,252,57,240,56,0,56,0,56,0,56, + 0,56,0,56,0,255,0,18,28,84,20,1,249,3,24,0, + 7,188,0,3,24,0,0,0,0,0,0,0,255,31,192,124, + 7,0,60,6,0,28,6,0,30,12,0,14,12,0,15,8, + 0,7,24,0,7,24,0,7,176,0,3,176,0,3,224,0, + 1,224,0,1,224,0,0,192,0,0,192,0,1,128,0,1, + 128,0,99,0,0,227,0,0,230,0,0,252,0,0,112,0, + 0}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 24 + Calculated Max Values w=16 h=25 x= 3 y=11 dx=20 dy= 0 ascent=25 len=50 + Font Bounding box w=39 h=50 x=-6 y=-11 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =24 descent= 0 + X Font ascent =24 descent= 0 + Max Font ascent =25 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR24n[722] U8G_SECTION(".progmem.u8g_font_ncenR24n") = { + 0,39,50,250,245,24,0,0,0,0,42,57,0,25,250,24, + 0,12,14,28,17,2,11,6,0,6,0,6,0,198,112,230, + 112,127,224,31,128,31,0,127,192,230,112,198,112,6,0,6, + 0,6,0,16,17,34,20,2,255,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,255,255,255,255,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,5,10,10,9,2, + 250,112,248,248,120,24,24,48,96,224,128,8,3,3,11,1, + 7,255,255,255,4,4,4,9,2,0,96,240,240,96,10,25, + 50,9,255,0,0,192,0,192,0,192,1,128,1,128,1,128, + 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, + 12,0,24,0,24,0,24,0,48,0,48,0,48,0,96,0, + 96,0,96,0,192,0,16,24,48,18,2,0,3,192,15,240, + 28,56,24,24,56,28,120,30,112,14,240,15,240,15,240,15, + 240,15,240,15,240,15,240,15,240,15,240,15,240,15,112,14, + 120,30,56,28,24,24,28,56,15,240,3,192,13,24,48,18, + 3,0,3,0,7,0,255,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, + 255,248,15,24,48,18,1,0,7,224,31,248,56,28,96,30, + 112,14,120,14,120,14,120,14,48,30,0,28,0,28,0,56, + 0,120,0,112,0,224,1,192,3,128,7,2,14,2,28,6, + 56,6,127,254,255,254,255,254,15,24,48,18,1,0,7,224, + 31,248,56,56,112,28,120,28,120,28,48,28,0,28,0,56, + 0,112,1,224,15,240,0,248,0,60,0,28,0,30,96,14, + 240,14,240,14,240,30,224,28,120,124,63,240,15,192,16,24, + 48,18,1,0,0,48,0,48,0,112,0,240,1,240,1,240, + 3,112,6,112,6,112,12,112,24,112,24,112,48,112,96,112, + 96,112,192,112,255,255,255,255,0,112,0,112,0,112,0,112, + 0,248,3,254,14,24,48,18,2,0,56,8,63,248,63,240, + 63,224,48,0,48,0,32,0,96,0,99,192,111,240,124,120, + 112,56,96,60,0,28,0,28,0,28,96,28,240,28,240,28, + 240,60,224,56,112,120,127,240,31,128,15,24,48,18,1,0, + 3,240,15,252,28,62,56,30,56,30,48,12,112,0,112,0, + 112,0,241,224,247,248,254,60,252,28,248,30,240,14,240,14, + 240,14,112,14,112,14,112,30,56,28,56,60,31,240,7,192, + 13,24,48,18,3,0,255,248,255,248,255,248,192,16,192,48, + 128,32,128,96,128,64,0,192,0,192,1,128,1,128,1,128, + 3,0,3,0,3,0,7,0,7,0,7,0,15,0,15,0, + 15,0,15,0,6,0,15,24,48,18,1,0,7,224,31,248, + 60,56,56,28,112,28,112,12,112,12,120,24,60,56,63,112, + 31,224,7,240,7,248,29,252,56,124,112,30,112,30,224,14, + 224,14,224,14,112,28,120,60,63,248,15,224,15,24,48,18, + 1,0,15,192,63,240,120,120,112,56,240,60,224,28,224,28, + 224,30,224,30,240,30,240,62,120,126,120,126,63,222,31,158, + 0,30,0,28,0,28,96,56,240,56,240,112,241,224,127,192, + 63,0}; +/* + Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 25, '1' Height: 24 + Calculated Max Values w=31 h=31 x= 9 y=17 dx=31 dy= 0 ascent=27 len=100 + Font Bounding box w=39 h=50 x=-6 y=-11 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent=-7 + X Font ascent =25 descent=-7 + Max Font ascent =27 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_ncenR24r[5367] U8G_SECTION(".progmem.u8g_font_ncenR24r") = { + 0,39,50,250,245,25,5,159,15,28,32,127,249,27,249,25, + 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, + 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, + 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, + 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, + 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, + 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, + 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, + 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, + 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, + 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, + 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, + 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, + 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, + 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, + 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, + 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, + 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, + 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, + 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, + 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, + 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, + 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, + 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, + 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, + 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, + 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, + 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, + 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, + 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, + 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, + 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, + 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, + 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, + 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, + 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, + 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, + 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, + 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, + 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, + 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, + 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, + 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, + 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, + 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, + 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, + 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, + 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, + 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, + 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, + 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, + 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, + 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, + 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, + 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, + 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, + 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, + 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, + 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, + 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, + 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, + 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, + 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, + 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, + 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, + 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, + 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, + 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, + 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, + 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, + 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, + 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, + 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, + 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, + 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, + 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, + 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, + 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, + 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, + 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, + 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, + 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, + 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, + 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, + 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, + 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, + 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, + 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, + 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, + 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, + 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, + 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, + 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, + 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, + 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, + 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, + 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, + 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, + 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, + 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, + 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, + 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, + 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, + 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, + 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, + 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, + 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, + 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, + 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, + 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, + 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, + 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, + 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, + 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, + 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, + 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, + 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, + 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, + 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, + 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, + 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, + 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, + 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, + 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, + 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, + 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, + 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, + 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, + 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, + 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, + 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, + 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, + 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, + 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, + 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, + 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, + 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, + 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, + 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, + 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, + 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, + 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, + 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, + 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, + 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, + 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, + 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, + 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, + 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, + 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, + 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, + 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, + 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, + 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, + 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, + 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, + 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, + 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, + 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, + 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, + 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, + 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, + 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, + 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, + 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, + 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, + 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, + 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, + 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, + 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, + 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, + 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, + 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, + 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, + 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, + 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, + 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, + 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, + 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, + 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, + 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, + 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, + 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, + 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, + 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, + 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, + 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, + 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, + 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, + 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, + 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, + 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, + 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, + 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, + 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, + 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, + 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, + 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, + 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, + 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, + 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, + 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, + 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, + 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, + 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, + 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, + 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, + 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, + 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, + 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, + 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, + 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, + 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, + 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, + 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, + 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, + 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, + 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, + 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, + 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, + 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, + 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, + 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, + 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, + 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, + 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, + 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, + 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, + 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, + 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, + 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, + 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, + 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, + 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, + 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, + 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, + 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, + 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, + 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, + 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, + 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, + 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, + 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, + 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, + 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, + 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, + 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, + 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, + 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, + 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, + 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, + 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, + 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, + 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, + 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, + 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, + 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, + 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, + 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, + 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, + 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, + 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, + 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, + 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, + 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, + 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, + 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, + 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, + 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, + 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, + 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, + 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, + 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, + 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, + 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, + 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, + 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, + 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, + 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, + 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, + 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, + 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, + 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, + 127,135,225,254,192,120,255}; +/* + Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w=11 h= 9 x= 1 y= 4 dx=12 dy= 0 ascent= 9 len=10 + Font Bounding box w=11 h=11 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 9 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_orgv01[1535] U8G_SECTION(".progmem.u8g_font_orgv01") = { + 1,11,11,0,254,5,0,249,1,238,32,255,255,9,254,5, + 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, + 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, + 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, + 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, + 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, + 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, + 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, + 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, + 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, + 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, + 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, + 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, + 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, + 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, + 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, + 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, + 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, + 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, + 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, + 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, + 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, + 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, + 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, + 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, + 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, + 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, + 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, + 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, + 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, + 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, + 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, + 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, + 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, + 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, + 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, + 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, + 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, + 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, + 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, + 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, + 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, + 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, + 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, + 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 2,20,36,128,0,128,128,2,85,101,32,248,160,248,32,2, + 85,101,64,224,64,72,120,2,85,101,136,112,80,112,136,2, + 85,101,136,248,32,112,32,2,21,37,128,128,0,128,128,2, + 86,102,248,128,248,248,8,248,4,81,97,248,18,85,117,248, + 168,200,168,248,2,181,202,251,224,138,0,251,224,136,32,139, + 224,19,83,115,72,144,72,3,66,82,240,16,255,2,85,101, + 248,248,200,200,248,6,81,97,248,2,0,112,2,0,112,2, + 0,112,2,0,112,2,0,112,2,0,112,2,0,112,2,0, + 112,2,0,112,2,0,112,2,0,112,4,83,99,144,72,144, + 2,0,112,2,0,112,2,0,112,18,85,117,32,0,224,128, + 248,2,88,104,64,32,0,248,136,248,136,136,2,88,104,16, + 32,0,248,136,248,136,136,2,88,104,32,80,0,248,136,248, + 136,136,2,89,105,8,248,128,0,248,136,248,136,136,2,87, + 103,80,0,248,136,248,136,136,2,87,103,32,0,248,136,248, + 136,136,2,85,101,248,160,248,160,184,0,87,103,248,128,128, + 128,248,16,48,2,88,104,64,32,0,248,128,248,128,248,2, + 88,104,16,32,0,248,128,248,128,248,2,88,104,32,80,0, + 248,128,248,128,248,2,86,102,80,248,128,248,128,248,2,88, + 104,64,32,0,248,32,32,32,248,2,88,104,16,32,0,248, + 32,32,32,248,2,88,104,32,80,0,248,32,32,32,248,2, + 87,103,80,0,248,32,32,32,248,2,85,101,240,136,232,136, + 240,2,89,105,8,248,128,0,248,136,136,136,136,2,88,104, + 64,32,0,248,136,136,136,248,2,88,104,16,32,0,248,136, + 136,136,248,2,88,104,32,80,0,248,136,136,136,248,2,89, + 105,8,248,128,0,248,136,136,136,248,2,87,103,80,0,248, + 136,136,136,248,3,51,67,160,64,160,2,85,101,248,152,168, + 200,248,2,87,103,64,32,136,136,136,136,248,2,87,103,16, + 32,136,136,136,136,248,2,86,102,32,80,136,136,136,248,2, + 86,102,80,0,136,136,136,248,2,88,104,16,32,0,136,136, + 80,32,32,18,85,117,128,240,136,240,128,1,86,102,240,136, + 176,136,176,128,2,68,84,240,16,240,240,2,71,87,64,32, + 0,240,16,240,240,2,71,87,32,64,0,240,16,240,240,2, + 71,87,96,144,0,240,16,240,240,2,70,86,144,0,240,16, + 240,240,2,70,86,32,0,240,16,240,240,2,116,132,254,30, + 240,254,0,70,86,240,128,128,240,32,96,2,71,87,64,32, + 0,240,240,128,240,2,71,87,32,64,0,240,240,128,240,2, + 71,87,96,144,0,240,240,128,240,2,70,86,144,0,240,240, + 128,240,2,39,39,128,64,0,64,64,64,64,2,39,39,64, + 128,0,128,128,128,128,2,55,39,64,160,0,64,64,64,64, + 2,54,38,160,0,64,64,64,64,2,85,85,56,16,240,144, + 240,2,71,87,80,160,0,240,144,144,144,2,71,87,64,32, + 0,240,144,144,240,2,71,87,32,64,0,240,144,144,240,2, + 71,87,96,144,0,240,144,144,240,2,71,87,80,160,0,240, + 144,144,240,2,70,86,144,0,240,144,144,240,2,85,101,32, + 0,248,0,32,2,68,84,240,176,208,240,2,71,87,64,32, + 0,144,144,144,240,2,71,87,32,64,0,144,144,144,240,2, + 71,87,96,144,0,144,144,144,240,2,70,86,144,0,144,144, + 144,240,1,72,88,32,64,0,144,144,144,240,16,18,85,117, + 128,240,136,240,128,1,71,87,144,0,144,144,144,240,16}; +/* + Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w=11 h=11 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_orgv01n[130] U8G_SECTION(".progmem.u8g_font_orgv01n") = { + 1,11,11,0,254,5,0,0,0,0,42,57,0,5,255,5, + 0,3,51,67,160,64,160,3,51,67,64,224,64,1,18,34, + 128,128,4,65,81,240,2,17,33,128,2,85,101,8,16,32, + 64,128,2,85,101,248,136,136,136,248,2,21,37,128,128,128, + 128,128,2,85,101,248,8,248,128,248,2,85,101,248,8,248, + 8,248,2,85,101,136,136,248,8,8,2,85,101,248,128,248, + 8,248,2,85,101,248,128,248,136,248,2,85,101,248,8,8, + 8,8,2,85,101,248,136,248,136,248,2,85,101,248,136,248, + 8,248}; +/* + Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 5 + Font Bounding box w=11 h=11 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_orgv01r[719] U8G_SECTION(".progmem.u8g_font_orgv01r") = { + 1,11,11,0,254,5,0,249,1,238,32,127,255,5,255,5, + 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, + 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, + 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, + 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, + 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, + 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, + 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, + 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, + 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, + 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, + 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, + 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, + 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, + 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, + 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, + 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, + 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, + 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, + 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, + 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, + 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, + 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, + 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, + 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, + 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, + 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, + 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, + 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, + 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, + 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, + 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, + 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, + 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, + 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, + 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, + 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, + 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, + 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, + 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, + 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, + 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, + 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, + 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, + 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=24 x= 5 y=14 dx=27 dy= 0 ascent=24 len=72 + Font Bounding box w=70 h=31 x=-22 y=-7 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =18 descent=-6 + X Font ascent =18 descent=-6 + Max Font ascent =24 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb18[7637] U8G_SECTION(".progmem.u8g_font_osb18") = { + 0,70,31,234,249,18,4,190,10,54,32,255,250,24,250,18, + 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, + 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, + 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, + 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, + 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, + 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, + 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, + 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, + 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, + 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, + 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, + 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, + 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, + 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, + 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, + 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, + 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, + 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, + 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, + 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, + 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, + 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, + 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, + 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, + 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, + 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, + 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, + 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, + 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, + 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, + 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, + 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, + 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, + 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, + 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, + 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, + 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, + 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, + 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, + 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, + 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, + 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, + 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, + 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, + 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, + 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, + 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, + 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, + 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, + 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, + 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, + 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, + 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, + 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, + 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, + 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, + 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, + 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, + 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, + 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, + 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, + 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, + 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, + 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, + 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, + 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, + 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, + 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, + 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, + 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, + 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, + 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, + 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, + 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, + 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, + 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, + 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, + 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, + 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, + 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, + 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, + 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, + 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, + 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, + 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, + 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, + 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, + 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, + 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, + 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, + 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, + 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, + 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, + 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, + 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, + 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, + 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, + 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, + 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, + 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, + 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, + 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, + 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, + 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, + 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, + 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, + 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, + 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, + 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, + 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, + 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, + 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, + 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, + 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, + 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, + 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, + 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, + 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, + 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, + 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, + 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, + 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, + 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, + 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, + 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, + 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, + 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, + 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, + 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, + 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, + 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, + 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, + 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, + 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, + 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, + 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, + 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, + 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, + 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, + 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, + 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, + 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, + 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, + 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, + 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, + 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, + 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, + 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, + 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, + 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, + 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, + 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, + 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, + 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, + 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, + 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, + 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, + 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, + 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, + 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, + 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, + 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, + 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, + 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, + 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, + 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, + 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, + 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, + 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, + 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, + 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, + 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, + 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, + 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, + 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, + 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, + 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, + 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, + 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, + 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, + 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, + 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, + 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, + 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, + 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, + 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, + 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, + 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, + 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, + 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, + 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, + 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, + 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, + 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, + 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, + 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, + 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, + 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, + 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, + 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, + 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, + 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, + 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, + 120,8,255,4,143,196,131,252,64,120,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,7,0, + 0,4,18,18,6,1,250,96,240,240,96,0,0,64,96,96, + 96,96,96,240,240,240,240,240,96,9,18,36,15,3,253,4, + 0,4,0,4,0,30,0,53,0,117,128,231,128,231,128,228, + 0,228,0,228,0,228,0,100,128,116,128,31,0,4,0,4, + 0,4,0,16,18,36,19,2,0,0,248,1,132,3,6,7, + 14,7,14,7,0,7,0,63,0,7,240,7,128,3,128,3, + 128,3,128,3,1,123,2,143,204,135,252,120,240,12,12,24, + 14,1,3,132,16,223,176,112,224,96,96,192,48,192,48,192, + 48,192,48,64,96,96,96,127,224,207,48,14,18,36,14,0, + 0,254,124,56,16,60,16,60,32,30,32,30,64,14,64,15, + 128,7,128,127,240,7,0,127,240,7,0,7,0,7,0,7, + 0,7,0,31,224,2,22,22,8,3,252,192,192,192,192,192, + 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,192, + 192,11,23,46,15,1,251,15,0,48,128,96,192,97,192,97, + 192,112,128,124,0,63,0,223,128,143,192,129,224,192,96,248, + 32,126,32,63,64,15,128,3,192,49,192,112,192,112,192,96, + 128,33,128,30,0,8,3,3,12,2,14,231,231,231,18,18, + 54,20,1,0,3,240,0,12,12,0,16,2,0,33,201,0, + 67,56,128,70,24,128,142,8,64,142,8,64,142,0,64,142, + 0,64,142,8,64,142,8,64,70,8,128,67,16,128,33,225, + 0,16,2,0,12,12,0,3,240,0,7,9,9,10,1,9, + 120,204,204,60,76,204,206,126,254,7,10,10,12,3,1,32, + 100,68,204,204,204,204,196,100,34,13,7,14,15,1,4,255, + 248,255,248,0,24,0,24,0,24,0,24,0,24,6,3,3, + 8,1,5,252,252,252,18,18,54,20,1,0,3,240,0,12, + 12,0,16,2,0,47,225,0,71,48,128,71,56,128,135,56, + 64,135,48,64,135,192,64,135,48,64,135,56,64,135,56,64, + 71,58,128,71,58,128,47,157,0,16,2,0,12,12,0,3, + 240,0,7,2,2,11,2,14,254,254,8,7,7,14,3,11, + 60,102,131,129,129,194,126,21,18,54,23,1,254,0,48,0, + 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, + 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,0,0,255,255,248, + 255,255,248,7,11,11,11,2,7,124,206,206,238,28,48,98, + 66,254,190,8,8,11,11,12,2,7,60,198,231,231,6,56, + 6,103,231,199,60,4,4,4,11,5,13,48,112,96,192,13, + 18,36,15,1,250,97,128,225,192,225,192,225,192,225,192,225, + 192,225,192,64,136,64,136,65,248,127,120,94,48,64,0,96, + 0,96,0,112,0,112,0,112,0,13,21,42,15,1,253,31, + 248,126,96,126,96,254,96,254,96,254,96,254,96,126,96,62, + 96,14,96,6,96,6,96,6,96,6,96,6,96,6,96,6, + 96,6,96,6,96,6,96,6,96,4,4,4,8,2,6,96, + 240,240,96,5,5,5,11,3,250,32,96,24,24,240,6,11, + 11,11,3,7,48,240,112,112,112,112,112,112,112,112,252,7, + 9,9,9,1,9,56,68,198,198,198,198,68,56,254,7,10, + 10,13,3,1,152,140,68,102,102,102,102,70,76,136,18,18, + 54,22,3,0,48,8,0,240,8,0,112,16,0,112,48,0, + 112,32,0,112,96,0,112,64,0,112,195,0,112,135,0,113, + 143,0,253,15,0,3,23,0,2,39,0,4,39,0,12,63, + 192,8,7,0,24,7,0,16,31,192,18,18,54,23,3,0, + 48,4,0,240,8,0,112,24,0,112,16,0,112,48,0,112, + 32,0,112,96,0,112,79,0,112,147,192,113,177,192,253,57, + 192,3,3,128,2,6,0,6,8,0,4,16,64,8,63,192, + 24,47,192,16,39,128,20,18,54,23,2,0,124,2,0,199, + 6,0,231,4,0,6,12,0,56,8,0,6,16,0,7,16, + 0,231,33,192,231,97,192,198,67,192,60,133,192,0,133,192, + 1,9,192,1,9,192,2,31,240,6,1,192,4,1,192,8, + 7,240,8,18,18,12,2,250,48,120,120,48,56,68,68,4, + 8,24,48,114,97,225,225,225,114,60,17,23,69,19,1,1, + 7,0,0,7,0,0,1,128,0,0,128,0,0,0,0,0, + 192,0,0,192,0,1,192,0,1,224,0,1,224,0,3,224, + 0,2,240,0,2,240,0,4,240,0,4,120,0,4,120,0, + 8,56,0,15,252,0,8,60,0,16,28,0,16,30,0,48, + 30,0,252,255,128,17,23,69,19,1,1,0,56,0,0,48, + 0,0,96,0,0,192,0,0,0,0,0,192,0,0,192,0, + 0,192,0,1,224,0,1,224,0,1,224,0,2,240,0,2, + 240,0,4,112,0,4,120,0,4,120,0,8,56,0,15,252, + 0,8,60,0,16,28,0,16,30,0,48,30,0,252,127,128, + 17,23,69,19,1,0,0,192,0,1,192,0,3,96,0,6, + 24,0,0,0,0,0,192,0,0,192,0,0,192,0,1,224, + 0,1,224,0,1,224,0,2,240,0,2,240,0,4,112,0, + 4,120,0,4,120,0,8,56,0,15,252,0,8,60,0,16, + 28,0,16,30,0,48,30,0,252,127,128,17,23,69,19,1, + 0,1,8,0,7,240,0,4,240,0,0,0,0,0,0,0, + 0,192,0,0,192,0,1,192,0,1,224,0,1,224,0,3, + 224,0,2,240,0,2,240,0,4,240,0,4,120,0,4,120, + 0,8,56,0,15,252,0,8,60,0,16,28,0,16,30,0, + 48,30,0,252,255,128,16,23,46,18,1,0,14,112,14,112, + 14,112,0,0,0,0,1,128,1,128,1,128,3,192,3,192, + 3,192,5,224,5,224,4,224,8,240,8,240,8,112,31,248, + 16,120,16,60,48,60,48,60,252,255,18,23,69,19,1,0, + 1,224,0,2,16,0,2,16,0,1,224,0,0,0,0,0, + 192,0,0,192,0,0,224,0,1,224,0,1,224,0,1,240, + 0,2,240,0,2,240,0,4,120,0,4,120,0,4,120,0, + 8,60,0,15,252,0,8,28,0,16,30,0,16,30,0,48, + 30,0,252,127,192,23,18,54,25,1,0,0,127,254,0,60, + 14,0,60,6,0,124,6,0,92,2,0,220,34,0,156,32, + 1,156,96,1,28,96,3,31,224,2,28,96,6,28,34,7, + 252,34,8,28,2,8,28,2,24,28,6,56,28,14,254,127, + 254,13,24,48,17,2,250,7,136,24,120,48,56,112,24,112, + 24,240,8,240,8,240,8,240,0,240,0,240,0,240,8,240, + 8,112,8,112,8,56,16,24,32,7,192,2,0,3,128,0, + 192,0,192,8,192,7,128,14,23,46,18,2,1,28,0,12, + 0,6,0,1,0,0,0,255,252,56,28,56,12,56,12,56, + 4,56,68,56,64,56,192,56,192,63,192,56,192,56,68,56, + 68,56,4,56,4,56,12,56,28,255,252,14,23,46,18,2, + 1,0,224,0,192,1,128,2,0,0,0,255,252,56,28,56, + 12,56,12,56,4,56,68,56,64,56,192,56,192,63,192,56, + 192,56,68,56,68,56,4,56,4,56,12,56,28,255,252,14, + 23,46,18,2,0,3,0,7,128,12,192,16,32,0,0,255, + 252,56,28,56,12,56,12,56,4,56,68,56,64,56,192,56, + 192,63,192,56,192,56,68,56,68,56,4,56,4,56,12,56, + 28,255,252,14,23,46,18,2,0,28,224,28,224,28,224,0, + 0,0,0,255,252,56,28,56,12,56,12,56,4,56,68,56, + 64,56,192,56,192,63,192,56,192,56,68,56,68,56,4,56, + 12,56,12,56,28,255,252,8,23,23,11,2,1,192,96,48, + 16,0,255,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,255,8,23,23,11,2,1,7,14,8,16,0,255, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 255,8,23,23,11,2,0,16,56,108,130,0,255,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,56,56,255,8,23, + 23,11,2,0,231,231,231,0,0,255,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,255,16,18,36,19,2, + 0,255,224,56,56,56,28,56,14,56,14,56,14,56,15,56, + 15,255,15,56,15,56,15,56,15,56,14,56,14,56,12,56, + 28,56,56,255,224,17,23,69,18,1,0,3,136,0,3,240, + 0,4,96,0,0,0,0,0,0,0,252,63,128,60,14,0, + 62,4,0,31,4,0,31,4,0,23,132,0,23,196,0,19, + 196,0,17,228,0,17,244,0,16,244,0,16,124,0,16,124, + 0,16,60,0,16,28,0,16,28,0,56,12,0,254,4,0, + 15,24,48,18,2,0,12,0,12,0,14,0,3,0,1,0, + 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, + 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, + 48,56,8,32,7,192,15,24,48,18,2,0,0,96,0,96, + 0,224,1,128,1,0,0,0,7,192,8,32,56,48,48,24, + 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, + 112,28,112,28,48,24,48,56,8,32,7,192,15,24,48,18, + 2,0,1,0,3,128,7,128,14,192,24,48,0,0,7,192, + 8,32,56,48,48,24,112,28,112,28,240,30,240,30,240,30, + 240,30,240,30,240,30,112,28,112,28,48,24,48,56,8,32, + 7,192,15,23,46,18,2,0,7,32,15,224,16,192,0,0, + 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, + 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, + 48,56,8,32,7,192,15,23,46,18,2,0,28,224,28,224, + 28,224,0,0,0,0,7,192,8,32,56,48,48,24,112,28, + 112,28,240,30,240,30,240,30,240,30,240,30,240,30,112,28, + 112,28,48,24,48,56,8,32,7,192,16,15,30,24,4,0, + 192,3,96,6,48,12,24,24,12,48,6,96,3,192,1,128, + 3,192,6,96,12,48,56,24,112,12,224,6,192,3,15,18, + 36,18,2,0,7,194,8,116,48,60,48,56,112,60,112,124, + 240,94,240,222,241,158,243,30,246,30,244,30,124,28,120,28, + 56,24,120,24,92,32,135,192,18,24,72,20,2,0,6,0, + 0,7,0,0,3,0,0,1,128,0,0,0,0,0,0,0, + 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, + 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, + 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, + 14,8,0,3,240,0,18,24,72,20,2,0,0,24,0,0, + 56,0,0,112,0,0,192,0,0,128,0,0,0,0,255,31, + 192,56,7,0,56,2,0,56,2,0,56,2,0,56,2,0, + 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, + 2,0,56,2,0,56,2,0,24,2,0,28,4,0,14,8, + 0,3,240,0,18,24,72,20,2,0,0,128,0,1,192,0, + 1,224,0,6,48,0,8,8,0,0,0,0,255,31,192,56, + 7,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, + 0,56,2,0,56,2,0,56,2,0,56,2,0,56,2,0, + 56,2,0,56,2,0,24,2,0,28,4,0,14,8,0,3, + 240,0,18,23,69,20,2,0,7,56,0,7,56,0,7,56, + 0,0,0,0,0,0,0,255,31,192,56,7,0,56,2,0, + 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, + 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, + 0,24,2,0,28,4,0,14,8,0,3,240,0,16,23,46, + 19,2,1,0,112,0,96,0,192,1,0,0,0,254,127,60, + 12,60,8,30,16,30,16,30,16,15,32,15,32,7,64,7, + 192,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, + 240,15,18,36,18,2,0,255,128,56,0,56,0,63,224,56, + 56,56,28,56,30,56,30,56,30,56,30,56,28,56,56,63, + 224,56,0,56,0,56,0,56,0,255,128,12,18,36,13,0, + 0,7,128,12,192,24,224,56,224,56,224,56,224,56,192,59, + 0,56,192,56,96,56,112,56,112,56,112,56,112,56,112,63, + 112,63,96,251,192,11,18,36,13,1,0,32,0,48,0,48, + 0,24,0,4,0,0,0,30,0,99,0,99,128,115,128,7, + 128,27,128,115,128,227,128,227,160,227,160,247,160,121,192,11, + 18,36,13,1,0,3,0,3,0,6,0,4,0,8,0,0, + 0,30,0,99,0,99,128,115,128,35,128,31,128,115,128,227, + 128,227,160,227,160,247,160,121,192,11,18,36,13,1,0,12, + 0,12,0,30,0,50,0,65,0,0,0,30,0,99,0,99, + 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, + 160,121,192,11,17,34,13,1,0,57,0,127,0,70,0,0, + 0,0,0,30,0,99,0,99,128,115,128,35,128,31,128,115, + 128,227,128,227,160,227,160,247,160,121,192,11,17,34,13,1, + 0,119,0,119,0,119,0,0,0,0,0,30,0,99,0,99, + 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, + 160,121,192,11,18,36,13,1,0,28,0,38,0,34,0,34, + 0,28,0,0,0,30,0,99,0,99,128,115,128,35,128,31, + 128,115,128,227,128,227,160,227,160,231,160,121,192,15,12,24, + 18,1,0,62,248,99,140,99,142,115,142,7,142,27,254,115, + 128,227,128,227,130,227,130,247,196,120,120,9,18,36,12,1, + 250,30,0,49,0,113,128,227,128,227,128,224,0,224,0,224, + 0,224,128,112,128,49,0,30,0,8,0,8,0,6,0,6, + 0,6,0,28,0,9,18,36,12,1,0,32,0,112,0,48, + 0,24,0,4,0,0,0,30,0,51,0,99,128,227,128,227, + 128,255,128,224,0,224,0,224,128,112,128,49,0,30,0,9, + 18,36,12,1,0,3,0,7,0,6,0,12,0,8,0,0, + 0,30,0,51,0,99,128,227,128,227,128,255,128,224,0,224, + 0,224,128,112,128,49,0,30,0,9,18,36,12,1,0,12, + 0,28,0,28,0,50,0,65,0,0,0,30,0,51,0,99, + 128,227,128,227,128,255,128,224,0,224,0,224,128,112,128,49, + 0,30,0,9,17,34,12,1,0,115,128,115,128,115,128,0, + 0,0,0,30,0,51,0,99,128,227,128,227,128,255,128,224, + 0,224,0,224,0,112,128,49,0,30,0,7,18,18,8,1, + 0,192,224,112,16,8,0,120,56,56,56,56,56,56,56,56, + 56,56,126,6,18,18,8,1,0,12,28,24,48,0,0,240, + 112,112,112,112,112,112,112,112,112,112,248,7,18,18,7,0, + 0,56,56,108,198,0,0,120,56,56,56,56,56,56,56,56, + 56,56,126,7,17,17,8,1,0,238,238,238,0,0,120,56, + 56,56,56,56,56,56,56,56,56,126,10,18,36,12,1,0, + 57,128,30,0,14,0,31,0,39,0,3,128,31,128,51,192, + 97,192,225,192,225,192,225,192,225,192,225,192,225,192,97,128, + 51,128,30,0,11,17,34,13,1,0,24,128,63,128,39,0, + 0,0,0,0,243,128,125,192,121,192,113,192,113,192,113,192, + 113,192,113,192,113,192,113,192,113,192,251,224,10,18,36,12, + 1,0,48,0,48,0,24,0,12,0,4,0,0,0,30,0, + 51,0,97,128,225,192,225,192,225,192,225,192,225,192,225,192, + 97,128,51,0,30,0,10,18,36,12,1,0,3,0,3,0, + 7,0,4,0,8,0,0,0,30,0,51,0,97,128,225,192, + 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, + 10,18,36,12,1,0,12,0,14,0,30,0,51,0,96,128, + 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, + 225,192,225,192,97,128,51,0,30,0,10,17,34,12,1,0, + 56,128,63,0,70,0,0,0,0,0,30,0,51,0,97,128, + 225,192,225,192,225,192,225,192,225,192,225,192,97,128,51,0, + 30,0,10,17,34,12,1,0,115,128,115,128,115,128,0,0, + 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, + 225,192,225,192,97,128,51,0,30,0,21,17,51,23,1,254, + 0,48,0,0,120,0,0,120,0,0,48,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,248,255,255,248,0,0, + 0,0,0,0,0,0,0,0,48,0,0,120,0,0,120,0, + 0,48,0,10,12,24,12,1,0,30,64,51,128,97,128,225, + 192,227,192,229,192,233,192,241,192,241,192,97,128,115,0,158, + 0,12,18,36,13,0,0,24,0,24,0,12,0,6,0,2, + 0,0,0,249,224,56,224,56,224,56,224,56,224,56,224,56, + 224,56,224,56,224,57,224,58,224,28,240,12,18,36,13,0, + 0,1,128,1,128,3,0,2,0,0,0,0,0,249,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, + 224,58,224,28,240,12,18,36,13,0,0,6,0,6,0,15, + 0,25,128,0,0,0,0,249,224,56,224,56,224,56,224,56, + 224,56,224,56,224,56,224,56,224,57,224,58,224,28,240,12, + 17,34,13,0,0,57,192,57,192,57,192,0,0,0,0,249, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, + 224,57,224,58,224,28,240,12,24,48,12,0,250,1,128,1, + 128,3,0,6,0,4,0,0,0,252,240,112,64,56,64,56, + 128,28,128,28,128,29,0,15,0,15,0,7,0,6,0,6, + 0,2,0,4,0,116,0,116,0,104,0,56,0,12,23,46, + 13,0,250,24,0,120,0,184,0,56,0,56,0,57,224,58, + 240,60,112,60,112,56,112,56,96,56,224,56,192,56,128,57, + 0,58,0,60,0,56,0,56,0,56,0,56,0,96,0,128, + 0,13,23,46,13,0,250,28,224,28,224,28,224,0,0,0, + 0,254,120,56,32,60,64,28,64,30,64,14,64,14,128,7, + 128,7,128,7,0,3,0,3,0,2,0,2,0,58,0,60, + 0,52,0,56,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 18 + Calculated Max Values w=21 h=23 x= 3 y= 8 dx=23 dy= 0 ascent=18 len=63 + Font Bounding box w=70 h=31 x=-22 y=-7 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =18 descent= 0 + X Font ascent =18 descent= 0 + Max Font ascent =18 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb18n[600] U8G_SECTION(".progmem.u8g_font_osb18n") = { + 0,70,31,234,249,18,0,0,0,0,42,57,0,18,251,18, + 0,9,10,20,13,2,8,24,0,24,0,201,128,235,128,28, + 0,44,0,235,128,217,128,24,0,24,0,21,21,63,23,1, + 253,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, + 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 4,9,9,7,2,251,224,240,240,240,16,32,32,64,128,6, + 3,3,8,1,5,252,252,252,4,4,4,8,2,0,96,240, + 240,96,9,23,46,11,1,251,1,128,1,128,1,0,3,0, + 3,0,2,0,6,0,6,0,4,0,12,0,12,0,8,0, + 24,0,24,0,24,0,16,0,48,0,48,0,32,0,96,0, + 96,0,64,0,192,0,12,18,36,15,1,0,15,0,25,128, + 48,192,112,224,112,224,240,224,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,112,224,112,224,48,192,25,128,15,0, + 8,18,18,15,3,0,24,56,248,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,255,11,18,36,15,2,0,31,0, + 113,192,96,224,224,224,240,224,248,224,121,192,1,192,3,0, + 6,0,8,0,48,32,64,32,64,32,255,224,191,224,143,192, + 135,128,12,18,36,15,1,0,31,0,49,192,96,224,112,224, + 120,224,120,224,0,192,1,128,62,0,1,192,0,224,0,240, + 112,240,248,240,240,240,192,224,65,192,63,0,11,18,36,15, + 2,0,3,0,7,0,7,0,15,0,15,0,23,0,55,0, + 39,0,103,0,71,0,199,0,135,0,255,224,7,0,7,0, + 7,0,7,0,63,224,11,18,36,15,2,0,65,128,127,128, + 126,0,120,0,64,0,64,0,95,0,99,128,65,192,65,224, + 1,224,33,224,241,224,241,224,225,192,193,192,67,128,62,0, + 11,18,36,15,2,0,7,128,24,64,48,224,113,224,113,224, + 240,0,240,0,247,128,249,192,240,224,240,224,240,224,240,224, + 112,224,112,224,48,192,57,192,15,0,11,18,36,15,2,0, + 156,64,190,96,255,32,255,224,128,32,128,64,128,64,0,128, + 1,128,3,0,7,0,6,0,14,0,30,0,30,0,30,0, + 30,0,12,0,12,18,36,15,1,0,31,128,32,64,64,32, + 192,32,192,32,240,32,252,64,127,128,127,192,63,224,103,240, + 193,240,192,112,192,48,192,48,96,32,112,64,31,128,12,18, + 36,15,2,0,31,0,113,128,96,192,224,224,224,224,224,240, + 224,240,96,240,113,240,30,240,0,240,0,240,56,224,120,224, + 120,224,97,192,33,128,30,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=24 x= 3 y=13 dx=27 dy= 0 ascent=20 len=72 + Font Bounding box w=70 h=31 x=-22 y=-7 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =18 descent=-6 + X Font ascent =18 descent=-6 + Max Font ascent =20 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb18r[3611] U8G_SECTION(".progmem.u8g_font_osb18r") = { + 0,70,31,234,249,18,4,190,10,54,32,127,250,20,250,18, + 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, + 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, + 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, + 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, + 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, + 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, + 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, + 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, + 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, + 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, + 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, + 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, + 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, + 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, + 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, + 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, + 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, + 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, + 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, + 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, + 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, + 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, + 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, + 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, + 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, + 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, + 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, + 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, + 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, + 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, + 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, + 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, + 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, + 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, + 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, + 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, + 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, + 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, + 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, + 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, + 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, + 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, + 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, + 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, + 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, + 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, + 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, + 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, + 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, + 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, + 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, + 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, + 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, + 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, + 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, + 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, + 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, + 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, + 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, + 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, + 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, + 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, + 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, + 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, + 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, + 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, + 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, + 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, + 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, + 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, + 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, + 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, + 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, + 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, + 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, + 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, + 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, + 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, + 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, + 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, + 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, + 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, + 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, + 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, + 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, + 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, + 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, + 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, + 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, + 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, + 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, + 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, + 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, + 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, + 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, + 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, + 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, + 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, + 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, + 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, + 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, + 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, + 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, + 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, + 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, + 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, + 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, + 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, + 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, + 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, + 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, + 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, + 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, + 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, + 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, + 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, + 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, + 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, + 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, + 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, + 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, + 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, + 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, + 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, + 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, + 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, + 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, + 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, + 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, + 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, + 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, + 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, + 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, + 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, + 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, + 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, + 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, + 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, + 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, + 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, + 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, + 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, + 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, + 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, + 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, + 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, + 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, + 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, + 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, + 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, + 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, + 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, + 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, + 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, + 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, + 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, + 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, + 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, + 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, + 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, + 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, + 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, + 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, + 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, + 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, + 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, + 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, + 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, + 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, + 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, + 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, + 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, + 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, + 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, + 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, + 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, + 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, + 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, + 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, + 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, + 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, + 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, + 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, + 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, + 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, + 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, + 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, + 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, + 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, + 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, + 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, + 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, + 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, + 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, + 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, + 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, + 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, + 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, + 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, + 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, + 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, + 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, + 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, + 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, + 120,8,255,4,143,196,131,252,64,120,255}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 21, '1' Height: 21 + Calculated Max Values w=28 h=29 x= 5 y=17 dx=31 dy= 0 ascent=28 len=87 + Font Bounding box w=77 h=36 x=-24 y=-8 + Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 + Pure Font ascent =21 descent=-7 + X Font ascent =21 descent=-7 + Max Font ascent =28 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb21[9612] U8G_SECTION(".progmem.u8g_font_osb21") = { + 0,77,36,232,248,21,5,141,12,241,32,255,249,28,248,21, + 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, + 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, + 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, + 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, + 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, + 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, + 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, + 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, + 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, + 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, + 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, + 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, + 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, + 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, + 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, + 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, + 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, + 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, + 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, + 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, + 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, + 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, + 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, + 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, + 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, + 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, + 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, + 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, + 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, + 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, + 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, + 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, + 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, + 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, + 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, + 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, + 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, + 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, + 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, + 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, + 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, + 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, + 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, + 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, + 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, + 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, + 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, + 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, + 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, + 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, + 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, + 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, + 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, + 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, + 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, + 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, + 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, + 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, + 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, + 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, + 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, + 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, + 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, + 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, + 0,112,240,248,248,248,8,16,16,32,192,21,24,72,26,2, + 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, + 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, + 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, + 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, + 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, + 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, + 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, + 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, + 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, + 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, + 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, + 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, + 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, + 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, + 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, + 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, + 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, + 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, + 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, + 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, + 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, + 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, + 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, + 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, + 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, + 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, + 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, + 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, + 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, + 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, + 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, + 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, + 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, + 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, + 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, + 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, + 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, + 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, + 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, + 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, + 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, + 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, + 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, + 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, + 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, + 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, + 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, + 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, + 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, + 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, + 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, + 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, + 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, + 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, + 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, + 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, + 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, + 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, + 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, + 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, + 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, + 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, + 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, + 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, + 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, + 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, + 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, + 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, + 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, + 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, + 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, + 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, + 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, + 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, + 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, + 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, + 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, + 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, + 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, + 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, + 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, + 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, + 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, + 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, + 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, + 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, + 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, + 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, + 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, + 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, + 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, + 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, + 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, + 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, + 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, + 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, + 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, + 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, + 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, + 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, + 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, + 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, + 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, + 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, + 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, + 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, + 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, + 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, + 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, + 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, + 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, + 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, + 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, + 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, + 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, + 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, + 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, + 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, + 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, + 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, + 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, + 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, + 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, + 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, + 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, + 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, + 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, + 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, + 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, + 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, + 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, + 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, + 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, + 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, + 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, + 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, + 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, + 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, + 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, + 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, + 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, + 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, + 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, + 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, + 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, + 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, + 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, + 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, + 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, + 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, + 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, + 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, + 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, + 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, + 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, + 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, + 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, + 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, + 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, + 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, + 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, + 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, + 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, + 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, + 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, + 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, + 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, + 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, + 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, + 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, + 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, + 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, + 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, + 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, + 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, + 143,193,131,241,128,254,64,62,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,8,0,0,5, + 21,21,9,2,249,112,248,248,112,0,0,32,32,32,32,32, + 112,112,112,112,248,248,248,248,248,112,10,21,42,16,3,253, + 2,0,2,0,2,0,15,0,26,128,50,192,114,192,243,192, + 243,192,242,0,242,0,242,0,242,0,242,64,114,64,50,64, + 30,128,15,0,2,0,2,0,2,0,17,21,63,20,2,1, + 0,254,0,1,131,0,3,131,0,3,135,128,7,135,128,7, + 135,0,7,128,0,7,128,0,7,128,0,31,128,0,39,248, + 0,7,128,0,7,192,0,3,192,0,3,128,0,3,128,0, + 3,128,128,123,1,128,143,135,0,135,254,0,121,252,0,13, + 13,26,17,2,3,207,152,255,248,112,112,96,48,192,24,192, + 24,192,24,192,24,192,24,96,48,112,112,255,248,207,152,15, + 21,42,16,1,0,254,126,124,24,124,24,60,16,60,16,30, + 32,30,32,30,64,15,64,15,128,7,128,127,248,7,128,127, + 248,7,128,7,128,7,128,7,128,7,128,7,128,63,240,2, + 26,26,8,3,251,192,192,192,192,192,192,192,192,192,192,0, + 0,0,0,0,0,192,192,192,192,192,192,192,192,192,192,13, + 27,54,18,1,250,15,128,16,64,32,96,96,224,97,224,97, + 224,112,128,124,0,63,0,95,192,79,240,195,240,192,248,224, + 56,248,24,126,16,127,144,31,224,7,224,1,224,48,224,120, + 96,120,96,112,96,96,192,48,128,31,0,9,4,8,13,2, + 16,99,0,247,128,247,128,99,0,20,21,63,22,1,1,3, + 252,0,12,3,0,16,0,128,32,0,64,32,244,64,65,140, + 32,67,132,32,131,132,16,135,132,16,135,132,16,135,128,16, + 135,128,16,135,128,16,135,130,16,67,132,32,67,132,32,33, + 136,64,32,240,64,16,0,128,12,3,0,3,252,0,8,11, + 11,10,1,10,56,76,108,108,60,204,205,205,118,0,255,7, + 11,11,13,3,2,34,68,196,204,204,204,204,204,68,98,34, + 14,8,16,16,1,4,255,252,255,252,0,12,0,12,0,12, + 0,12,0,12,0,12,7,3,3,11,2,6,254,254,254,20, + 21,63,22,1,1,3,252,0,12,3,0,16,0,128,32,0, + 64,47,248,64,67,206,32,67,206,32,131,207,16,131,206,16, + 131,206,16,131,240,16,131,204,16,131,206,16,131,206,16,67, + 206,160,67,206,160,35,206,192,47,231,64,16,0,128,12,3, + 0,3,252,0,7,2,2,13,3,17,254,254,9,10,20,17, + 4,12,8,0,62,0,119,0,193,128,193,128,193,128,193,128, + 99,0,127,0,28,0,24,22,66,26,1,254,0,24,0,0, + 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, + 0,0,24,0,255,255,255,255,255,255,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, + 24,0,0,0,0,0,0,0,255,255,255,255,255,255,9,12, + 24,13,2,9,62,0,71,0,199,128,231,0,111,0,12,0, + 24,0,33,0,65,128,255,0,159,0,142,0,10,13,26,13, + 2,8,62,0,67,0,195,128,227,128,99,128,3,0,60,0, + 7,0,3,128,243,192,227,128,199,128,62,0,5,5,5,12, + 5,16,24,56,112,96,192,14,22,44,17,2,248,96,192,224, + 224,241,224,241,224,225,224,225,224,224,224,224,224,96,192,64, + 196,64,196,65,252,127,124,78,56,64,0,64,0,96,0,224, + 0,240,0,240,0,112,0,96,0,13,25,50,17,2,252,31, + 248,126,96,254,96,254,96,254,96,254,96,254,96,254,96,254, + 96,126,96,62,96,6,96,6,96,6,96,6,96,6,96,6, + 96,6,96,6,96,6,96,6,96,6,96,6,96,6,96,6, + 96,4,4,4,8,2,7,96,240,240,96,5,6,6,13,4, + 249,32,64,48,24,24,240,7,12,12,13,3,9,28,252,60, + 60,60,60,60,60,60,60,60,254,8,11,11,11,2,10,60, + 102,230,231,231,231,230,102,60,0,255,7,11,11,13,3,2, + 136,68,102,102,102,102,102,102,68,140,136,22,21,63,26,3, + 0,12,1,128,28,1,0,252,3,0,60,2,0,60,6,0, + 60,12,0,60,12,0,60,24,0,60,16,0,60,48,112,60, + 32,240,60,97,240,254,65,240,0,194,240,0,130,240,1,132, + 240,3,8,240,3,15,252,6,0,240,4,0,240,12,3,248, + 21,22,66,26,3,0,0,1,128,28,1,0,252,3,0,60, + 2,0,60,6,0,60,4,0,60,12,0,60,24,0,60,24, + 0,60,51,224,60,36,112,60,108,120,60,78,120,254,206,120, + 0,134,112,1,128,192,1,1,0,3,2,8,2,4,8,6, + 15,248,4,11,240,12,8,224,22,21,63,25,2,0,62,0, + 128,67,1,128,195,129,0,227,131,0,99,130,0,3,6,0, + 60,4,0,7,8,0,3,152,0,243,208,112,227,176,112,199, + 160,240,62,97,240,0,65,240,0,194,240,0,130,240,1,132, + 240,1,7,252,3,0,240,2,0,240,6,3,252,9,22,44, + 13,2,249,24,0,60,0,60,0,60,0,24,0,0,0,28, + 0,34,0,34,0,34,0,6,0,12,0,28,0,56,0,112, + 0,113,0,240,128,240,128,240,128,240,128,113,0,62,0,19, + 27,81,22,2,1,3,0,0,3,128,0,1,128,0,0,192, + 0,0,64,0,0,0,0,0,64,0,0,96,0,0,224,0, + 0,224,0,0,240,0,1,240,0,1,240,0,1,248,0,2, + 120,0,2,120,0,2,124,0,4,60,0,4,60,0,4,62, + 0,15,254,0,8,30,0,8,31,0,16,15,0,16,15,0, + 48,15,128,254,127,224,19,27,81,21,2,1,0,24,0,0, + 56,0,0,48,0,0,96,0,0,64,0,0,0,0,0,64, + 0,0,96,0,0,224,0,0,224,0,0,240,0,1,240,0, + 1,240,0,1,248,0,2,120,0,2,120,0,2,124,0,4, + 60,0,4,60,0,8,60,0,15,254,0,8,30,0,16,30, + 0,16,15,0,16,15,0,48,15,128,254,127,224,19,27,81, + 22,2,0,0,64,0,0,224,0,1,240,0,3,24,0,4, + 4,0,0,0,0,0,64,0,0,96,0,0,224,0,0,224, + 0,0,240,0,1,240,0,1,240,0,1,248,0,2,120,0, + 2,120,0,2,124,0,4,60,0,4,60,0,4,62,0,15, + 254,0,8,30,0,8,31,0,16,15,0,16,15,0,48,15, + 128,254,127,224,19,27,81,21,2,0,0,4,0,1,200,0, + 3,248,0,4,112,0,0,0,0,0,0,0,0,64,0,0, + 96,0,0,224,0,0,224,0,0,240,0,1,240,0,1,240, + 0,1,248,0,2,120,0,2,120,0,2,124,0,4,60,0, + 4,60,0,4,60,0,15,254,0,8,30,0,24,30,0,16, + 15,0,16,15,0,48,15,128,254,127,224,19,27,81,22,2, + 0,3,12,0,7,158,0,7,158,0,3,12,0,0,0,0, + 0,0,0,0,96,0,0,96,0,0,224,0,0,240,0,0, + 240,0,1,240,0,1,248,0,1,120,0,2,120,0,2,124, + 0,2,60,0,4,60,0,4,62,0,4,30,0,15,254,0, + 8,31,0,8,15,0,16,15,0,16,15,0,48,15,128,254, + 127,224,19,27,81,21,1,0,0,240,0,1,8,0,1,8, + 0,1,8,0,0,240,0,0,0,0,0,96,0,0,96,0, + 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,1, + 120,0,1,120,0,2,124,0,2,60,0,2,60,0,4,62, + 0,4,30,0,7,254,0,8,31,0,8,15,0,8,15,0, + 24,15,0,24,15,128,254,63,224,26,21,84,28,0,0,0, + 63,255,192,0,15,131,192,0,15,129,192,0,31,128,192,0, + 23,128,192,0,55,128,64,0,39,132,64,0,103,132,0,0, + 71,140,0,0,199,156,0,0,135,252,0,1,135,156,0,1, + 7,140,0,3,7,132,64,3,255,132,64,6,7,128,64,4, + 7,128,64,12,7,128,192,12,7,129,192,28,7,131,192,255, + 63,255,192,15,28,56,18,2,250,15,230,28,30,56,30,56, + 14,120,14,120,6,248,6,248,6,248,2,248,0,248,0,248, + 0,248,0,248,2,120,2,120,2,120,4,56,4,60,12,28, + 8,6,48,1,192,1,0,1,192,0,96,0,96,4,96,3, + 192,16,27,54,19,1,1,6,0,7,0,3,0,1,128,0, + 0,0,0,255,255,30,15,30,7,30,3,30,3,30,1,30, + 17,30,16,30,48,30,48,31,240,30,48,30,48,30,17,30, + 17,30,1,30,1,30,3,30,7,30,15,255,255,16,27,54, + 19,1,1,0,56,0,120,0,96,0,192,0,0,0,0,255, + 255,30,15,30,7,30,3,30,3,30,1,30,17,30,16,30, + 48,30,48,31,240,30,48,30,48,30,17,30,17,30,1,30, + 1,30,3,30,7,30,15,255,255,16,27,54,19,1,0,0, + 128,1,192,3,96,6,56,8,0,0,0,255,255,30,15,30, + 7,30,3,30,3,30,1,30,17,30,16,30,48,30,48,31, + 240,30,48,30,48,30,17,30,17,30,1,30,1,30,3,30, + 7,30,15,255,255,16,27,54,19,1,0,6,24,15,60,15, + 60,6,24,0,0,0,0,255,255,30,15,30,7,30,3,30, + 3,30,1,30,17,30,16,30,48,30,48,31,240,30,48,30, + 48,30,17,30,17,30,1,30,1,30,3,30,7,30,15,255, + 255,9,27,54,11,1,1,96,0,112,0,56,0,8,0,0, + 0,0,0,255,128,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,255,128,10,27,54, + 12,1,1,3,128,3,128,6,0,12,0,8,0,0,0,255, + 192,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,255,192,9,27,54,11,1,0,12, + 0,28,0,62,0,99,0,0,128,0,0,255,128,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,255,128,10,27,54,13,2,0,97,128,243,192,243, + 192,97,128,0,0,0,0,255,192,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,255, + 192,19,21,63,22,2,0,255,248,0,30,14,0,30,7,0, + 30,3,128,30,3,192,30,3,192,30,3,192,30,3,224,30, + 3,224,30,3,224,255,131,224,30,3,224,30,3,224,30,3, + 224,30,3,192,30,3,192,30,3,128,30,3,128,30,7,0, + 30,14,0,255,248,0,21,26,78,22,1,1,0,226,0,1, + 254,0,2,28,0,0,0,0,0,0,0,254,15,248,31,1, + 192,31,0,128,15,128,128,15,192,128,15,192,128,11,224,128, + 11,240,128,9,248,128,8,248,128,8,252,128,8,126,128,8, + 62,128,8,31,128,8,31,128,8,15,128,8,7,128,8,7, + 128,8,3,128,28,1,128,255,129,128,17,27,81,20,2,1, + 14,0,0,7,0,0,3,0,0,1,128,0,0,0,0,0, + 128,0,7,112,0,12,24,0,24,12,0,56,14,0,120,14, + 0,120,15,0,120,15,0,248,15,128,248,15,128,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,120,15,0,120, + 15,0,120,15,0,56,14,0,24,12,0,12,24,0,7,112, + 0,17,27,81,20,2,1,0,56,0,0,112,0,0,96,0, + 0,192,0,0,0,0,0,128,0,7,112,0,12,24,0,24, + 12,0,56,14,0,120,14,0,120,15,0,120,15,0,248,15, + 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, + 248,15,128,120,15,0,120,15,0,120,15,0,56,14,0,24, + 12,0,12,24,0,7,112,0,17,27,81,20,2,0,0,128, + 0,1,192,0,3,96,0,6,48,0,8,8,0,0,128,0, + 7,112,0,12,24,0,24,12,0,56,14,0,120,14,0,120, + 15,0,120,15,0,248,15,128,248,15,128,248,15,128,248,15, + 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, + 120,15,0,56,14,0,24,12,0,12,24,0,7,112,0,17, + 27,81,20,2,0,0,8,0,7,136,0,7,240,0,8,224, + 0,0,0,0,0,128,0,7,112,0,12,24,0,24,12,0, + 56,14,0,120,14,0,120,15,0,120,15,0,248,15,128,248, + 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, + 128,120,15,0,120,15,0,120,15,0,56,14,0,24,12,0, + 12,24,0,7,112,0,17,27,81,20,2,0,12,48,0,30, + 120,0,30,120,0,12,48,0,0,0,0,0,128,0,7,112, + 0,12,24,0,24,12,0,56,14,0,120,14,0,120,15,0, + 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,248,15,128,120,15,0,120,15,0,120,15, + 0,56,14,0,24,12,0,12,24,0,7,112,0,18,19,57, + 26,4,254,64,0,64,224,0,192,112,1,128,56,3,0,28, + 6,0,14,12,0,7,24,0,3,176,0,1,224,0,0,224, + 0,1,240,0,3,56,0,6,28,0,12,12,0,24,6,0, + 48,3,0,112,1,128,224,0,192,64,0,0,17,22,66,20, + 2,0,0,128,0,7,113,128,12,27,0,24,14,0,56,14, + 0,56,14,0,120,31,0,120,31,0,248,47,128,248,111,128, + 248,79,128,248,143,128,249,15,128,251,15,128,250,15,128,124, + 15,0,124,15,0,120,14,0,56,14,0,56,12,0,108,24, + 0,199,112,0,19,27,81,22,2,1,7,0,0,3,128,0, + 1,128,0,0,192,0,0,0,0,0,0,0,255,15,224,60, + 3,128,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,28, + 1,0,28,2,0,14,4,0,7,248,0,19,27,81,22,2, + 1,0,28,0,0,56,0,0,48,0,0,96,0,0,0,0, + 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,28,1,0,28,2,0,14,4,0,7, + 248,0,19,27,81,22,2,0,0,192,0,0,224,0,1,240, + 0,6,24,0,0,4,0,0,0,0,255,15,224,60,3,128, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,60,1,0,60,1,0,60,1,0,28,3,0, + 28,2,0,14,4,0,7,248,0,19,27,81,22,2,0,3, + 12,0,7,158,0,7,158,0,3,12,0,0,0,0,0,0, + 0,255,143,224,60,3,128,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,60,1,0,28,1,0,28,2,0,14,4,0,7,248,0, + 19,27,81,21,2,1,0,28,0,0,60,0,0,48,0,0, + 96,0,0,0,0,0,0,0,255,31,224,62,7,0,30,6, + 0,30,6,0,31,4,0,15,4,0,15,136,0,7,136,0, + 7,144,0,7,208,0,3,240,0,3,224,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,7,248,0,17,21,63,19,1,0,255,192,0, + 30,0,0,30,0,0,30,0,0,31,248,0,30,14,0,30, + 15,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, + 128,30,15,0,30,14,0,31,248,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,255,192,0,14,21,42,16, + 1,0,7,192,12,96,28,112,28,112,60,112,60,112,60,112, + 60,96,61,128,60,96,60,48,60,56,60,56,60,56,60,60, + 60,60,60,56,63,184,63,184,63,48,253,224,12,21,42,14, + 1,0,96,0,112,0,56,0,24,0,12,0,4,0,0,0, + 30,0,99,128,99,192,243,192,115,192,7,192,27,192,115,192, + 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, + 1,0,1,128,3,128,3,0,6,0,12,0,8,0,0,0, + 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, + 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, + 1,0,12,0,12,0,30,0,19,0,33,128,64,128,0,0, + 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, + 115,192,243,192,243,208,243,208,243,208,125,224,12,20,40,14, + 1,0,56,128,127,128,71,0,0,0,0,0,0,0,30,0, + 99,128,99,192,243,192,115,192,3,192,31,192,51,192,115,192, + 243,192,243,208,243,208,245,208,121,224,12,20,40,14,1,0, + 97,128,243,192,243,192,97,128,0,0,0,0,30,0,99,128, + 99,192,243,192,115,192,35,192,15,192,51,192,115,192,243,192, + 243,208,243,208,243,208,125,224,12,21,42,14,1,1,30,0, + 33,0,33,0,33,0,50,0,12,0,0,0,31,0,99,128, + 97,192,241,192,113,192,33,192,15,192,49,192,97,192,225,192, + 225,208,225,208,227,208,124,224,17,14,42,19,1,0,62,60, + 0,99,230,0,99,199,0,243,199,128,115,199,128,7,199,128, + 27,255,128,115,192,0,115,192,0,243,192,128,243,192,128,243, + 225,0,242,225,0,124,62,0,10,21,42,13,1,249,15,0, + 56,128,112,192,113,192,243,192,243,128,240,0,240,0,240,0, + 240,0,112,64,112,64,56,128,31,0,4,0,8,0,6,0, + 3,0,3,0,3,0,30,0,11,21,42,13,1,0,48,0, + 48,0,56,0,24,0,12,0,0,0,0,0,15,0,51,128, + 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, + 112,64,112,64,56,128,15,0,11,21,42,13,1,0,1,128, + 3,128,3,128,6,0,4,0,8,0,0,0,15,0,51,128, + 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, + 112,64,112,64,56,128,15,0,11,21,42,13,1,0,12,0, + 14,0,30,0,27,0,49,128,64,0,0,0,15,0,51,128, + 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, + 112,64,112,64,56,128,15,0,11,20,40,13,1,0,49,128, + 123,192,123,192,49,128,0,0,0,0,15,0,51,128,113,192, + 113,192,241,192,241,224,255,224,240,0,240,0,240,32,112,64, + 112,64,56,128,15,0,7,21,21,9,1,0,192,224,112,48, + 24,8,0,124,60,60,60,60,60,60,60,60,60,60,60,60, + 126,6,21,21,9,2,0,12,12,28,56,32,0,0,248,120, + 120,120,120,120,120,120,120,120,120,120,120,252,8,21,21,8, + 1,0,56,56,124,110,131,0,0,252,60,60,60,60,60,60, + 60,60,60,60,60,60,254,8,20,20,9,1,0,102,255,255, + 102,0,0,124,60,60,60,60,60,60,60,60,60,60,60,60, + 126,12,21,42,14,1,0,60,64,31,128,15,0,15,0,55, + 128,3,128,3,192,31,192,49,224,113,224,112,224,240,224,240, + 240,240,240,240,240,240,224,240,224,112,224,113,192,49,192,15, + 0,13,19,38,16,2,1,30,64,63,192,35,128,0,0,0, + 0,251,192,124,224,120,224,120,240,120,240,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,253,248,12,21,42, + 14,1,0,48,0,56,0,56,0,12,0,6,0,2,0,0, + 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, + 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, + 14,1,0,1,128,1,192,3,128,3,0,6,0,4,0,0, + 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, + 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, + 14,1,0,6,0,14,0,15,0,27,0,48,128,32,64,0, + 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, + 240,240,224,240,224,112,224,112,192,49,128,15,0,12,20,40, + 14,1,0,28,64,63,192,71,128,0,0,0,0,0,0,15, + 0,49,128,112,192,112,224,240,224,240,224,240,240,240,240,240, + 224,240,224,112,224,112,192,49,128,15,0,12,20,40,14,1, + 0,49,128,123,192,123,192,49,128,0,0,0,0,15,0,49, + 128,112,192,112,224,240,224,240,224,240,240,240,240,240,224,240, + 224,112,224,112,192,49,128,15,0,24,19,57,26,1,254,0, + 24,0,0,60,0,0,60,0,0,24,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,24,0,0,60,0,0, + 60,0,0,60,0,0,24,0,12,14,28,14,1,0,15,16, + 49,160,113,192,112,224,241,224,243,224,242,240,244,240,248,224, + 240,224,112,224,112,192,121,128,143,0,14,21,42,15,0,0, + 24,0,28,0,12,0,6,0,3,0,0,0,0,0,253,248, + 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, + 60,120,60,248,60,248,29,120,14,124,14,21,42,15,0,0, + 0,192,0,192,1,192,1,128,3,0,0,0,0,0,253,248, + 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, + 60,120,60,120,60,248,29,120,14,124,14,21,42,15,0,0, + 3,0,7,0,7,128,12,128,24,64,0,0,0,0,253,248, + 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, + 60,120,60,120,60,248,29,120,14,124,14,20,40,15,0,0, + 24,192,61,224,61,224,24,192,0,0,0,0,253,248,60,120, + 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, + 60,120,60,248,29,120,14,124,13,28,56,15,1,249,0,192, + 0,192,1,192,3,128,2,0,0,0,0,0,252,248,120,32, + 56,32,60,64,28,64,28,64,30,64,14,128,15,128,7,128, + 7,0,7,0,3,0,3,0,2,0,2,0,50,0,124,0, + 116,0,116,0,56,0,13,26,52,15,1,250,28,0,124,0, + 188,0,60,0,60,0,60,0,60,240,63,120,60,120,60,120, + 60,120,60,120,60,112,60,112,60,96,60,192,60,128,61,0, + 62,0,60,0,60,0,60,0,60,0,60,0,48,0,192,0, + 13,27,54,15,1,249,24,96,60,240,60,240,24,96,0,0, + 0,0,254,120,120,48,56,32,60,32,28,32,30,64,30,64, + 14,64,15,128,7,128,7,128,7,0,3,0,3,0,1,0, + 2,0,50,0,122,0,116,0,116,0,56,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 21 + Calculated Max Values w=24 h=27 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 + Font Bounding box w=77 h=36 x=-24 y=-8 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =21 descent= 0 + X Font ascent =21 descent= 0 + Max Font ascent =22 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb21n[703] U8G_SECTION(".progmem.u8g_font_osb21n") = { + 0,77,36,232,248,21,0,0,0,0,42,57,0,22,250,21, + 0,11,12,24,14,2,9,14,0,14,0,78,192,228,224,245, + 192,14,0,14,0,245,192,228,192,78,192,14,0,14,0,24, + 25,75,26,1,252,0,24,0,0,24,0,0,24,0,0,24, + 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,255,255,255,255,255,255,0, + 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, + 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, + 5,10,10,7,1,251,112,248,248,248,120,8,16,16,32,192, + 7,3,3,11,2,6,254,254,254,4,4,4,8,2,0,96, + 240,240,96,9,27,54,13,2,250,1,128,1,128,1,128,3, + 0,3,0,3,0,2,0,6,0,6,0,6,0,12,0,12, + 0,12,0,24,0,24,0,24,0,16,0,48,0,48,0,48, + 0,96,0,96,0,96,0,192,0,192,0,192,0,128,0,14, + 21,42,16,1,1,15,192,24,96,56,112,56,112,120,120,120, + 120,248,120,248,124,248,124,248,124,248,124,248,124,248,124,248, + 124,248,120,120,120,120,120,56,112,56,112,24,96,15,192,9, + 21,42,16,3,0,6,0,14,0,30,0,254,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,255,128,12, + 21,42,16,2,1,63,192,97,224,96,224,224,240,224,240,240, + 240,248,240,121,224,49,224,3,192,7,128,14,0,28,0,48, + 16,96,16,64,16,192,16,255,240,255,224,143,224,135,192,13, + 21,42,16,2,1,63,192,96,224,96,224,224,240,240,240,248, + 240,120,240,112,240,0,224,1,192,31,0,0,224,0,240,0, + 112,112,120,248,120,248,120,240,120,224,112,96,240,59,192,13, + 21,42,16,1,0,1,192,1,192,3,192,3,192,7,192,7, + 192,15,192,27,192,27,192,51,192,35,192,99,192,67,192,195, + 192,255,248,3,192,3,192,3,192,3,192,3,192,31,248,13, + 21,42,16,2,0,96,224,127,192,127,128,127,0,120,0,64, + 0,64,0,64,0,79,0,113,224,64,240,64,240,0,248,0, + 248,112,248,248,248,248,248,240,240,224,240,97,224,59,192,13, + 21,42,16,2,1,15,224,24,32,56,48,48,240,112,240,112, + 240,240,96,240,0,240,0,247,128,248,224,240,112,240,112,240, + 112,240,120,112,120,112,112,112,112,48,112,56,96,13,192,11, + 21,42,16,3,0,156,64,190,96,255,32,255,32,199,224,129, + 160,128,64,128,64,0,128,0,128,1,0,3,0,7,0,6, + 0,14,0,14,0,30,0,30,0,30,0,30,0,30,0,14, + 21,42,16,2,1,31,192,48,32,96,48,96,16,224,16,240, + 16,248,32,254,32,127,192,63,192,31,240,31,248,99,248,64, + 248,192,60,192,24,192,24,192,24,96,16,112,48,31,192,13, + 21,42,16,2,1,31,128,48,192,112,96,112,112,240,112,240, + 112,240,120,240,120,240,120,112,120,112,120,56,248,15,120,0, + 120,0,120,56,112,120,112,120,96,112,224,96,192,63,128}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 21, '1' Height: 21 + Calculated Max Values w=28 h=29 x= 3 y=16 dx=31 dy= 0 ascent=23 len=87 + Font Bounding box w=77 h=36 x=-24 y=-8 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =21 descent=-7 + X Font ascent =21 descent=-7 + Max Font ascent =23 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb21r[4521] U8G_SECTION(".progmem.u8g_font_osb21r") = { + 0,77,36,232,248,21,5,141,12,241,32,127,249,23,249,21, + 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, + 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, + 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, + 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, + 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, + 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, + 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, + 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, + 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, + 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, + 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, + 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, + 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, + 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, + 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, + 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, + 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, + 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, + 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, + 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, + 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, + 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, + 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, + 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, + 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, + 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, + 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, + 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, + 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, + 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, + 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, + 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, + 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, + 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, + 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, + 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, + 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, + 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, + 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, + 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, + 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, + 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, + 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, + 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, + 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, + 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, + 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, + 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, + 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, + 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, + 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, + 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, + 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, + 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, + 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, + 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, + 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, + 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, + 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, + 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, + 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, + 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, + 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, + 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, + 0,112,240,248,248,248,8,16,16,32,192,21,24,72,26,2, + 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, + 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, + 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, + 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, + 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, + 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, + 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, + 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, + 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, + 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, + 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, + 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, + 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, + 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, + 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, + 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, + 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, + 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, + 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, + 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, + 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, + 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, + 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, + 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, + 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, + 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, + 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, + 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, + 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, + 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, + 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, + 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, + 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, + 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, + 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, + 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, + 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, + 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, + 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, + 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, + 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, + 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, + 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, + 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, + 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, + 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, + 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, + 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, + 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, + 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, + 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, + 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, + 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, + 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, + 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, + 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, + 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, + 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, + 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, + 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, + 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, + 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, + 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, + 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, + 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, + 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, + 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, + 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, + 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, + 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, + 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, + 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, + 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, + 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, + 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, + 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, + 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, + 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, + 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, + 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, + 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, + 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, + 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, + 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, + 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, + 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, + 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, + 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, + 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, + 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, + 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, + 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, + 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, + 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, + 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, + 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, + 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, + 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, + 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, + 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, + 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, + 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, + 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, + 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, + 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, + 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, + 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, + 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, + 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, + 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, + 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, + 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, + 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, + 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, + 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, + 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, + 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, + 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, + 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, + 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, + 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, + 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, + 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, + 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, + 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, + 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, + 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, + 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, + 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, + 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, + 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, + 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, + 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, + 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, + 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, + 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, + 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, + 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, + 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, + 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, + 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, + 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, + 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, + 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, + 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, + 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, + 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, + 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, + 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, + 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, + 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, + 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, + 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, + 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, + 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, + 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, + 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, + 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, + 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, + 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, + 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, + 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, + 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, + 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, + 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, + 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, + 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, + 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, + 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, + 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, + 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, + 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, + 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, + 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, + 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, + 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, + 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, + 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, + 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, + 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, + 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, + 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, + 143,193,131,241,128,254,64,62,255}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 26, '1' Height: 25 + Calculated Max Values w=34 h=33 x= 6 y=20 dx=36 dy= 0 ascent=34 len=125 + Font Bounding box w=95 h=44 x=-29 y=-10 + Calculated Min Values x=-2 y=-10 dx= 0 dy= 0 + Pure Font ascent =26 descent=-8 + X Font ascent =26 descent=-8 + Max Font ascent =34 descent=-10 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb26[12640] U8G_SECTION(".progmem.u8g_font_osb26") = { + 0,95,44,227,246,26,7,105,16,163,32,255,248,34,246,26, + 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, + 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, + 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, + 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, + 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, + 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, + 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, + 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, + 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, + 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, + 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, + 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, + 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, + 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, + 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, + 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, + 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, + 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, + 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, + 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, + 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, + 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, + 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, + 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, + 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, + 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, + 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, + 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, + 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, + 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, + 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, + 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, + 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, + 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, + 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, + 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, + 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, + 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, + 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, + 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, + 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, + 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, + 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, + 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, + 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, + 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, + 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, + 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, + 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, + 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, + 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, + 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, + 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, + 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, + 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, + 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, + 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, + 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, + 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, + 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, + 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, + 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, + 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, + 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, + 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, + 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, + 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, + 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, + 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, + 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, + 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, + 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, + 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, + 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, + 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, + 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, + 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, + 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, + 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, + 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, + 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, + 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, + 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, + 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, + 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, + 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, + 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, + 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, + 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, + 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, + 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, + 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, + 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, + 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, + 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, + 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, + 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, + 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, + 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, + 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, + 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, + 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, + 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, + 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, + 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, + 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, + 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, + 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, + 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, + 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, + 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, + 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, + 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, + 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, + 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, + 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, + 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, + 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, + 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, + 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, + 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, + 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, + 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, + 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, + 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, + 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, + 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, + 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, + 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, + 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, + 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, + 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, + 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, + 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, + 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, + 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, + 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, + 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, + 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, + 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, + 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, + 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, + 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, + 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, + 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, + 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, + 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, + 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, + 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, + 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, + 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, + 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, + 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, + 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, + 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, + 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, + 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, + 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, + 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, + 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, + 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, + 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, + 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, + 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, + 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, + 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, + 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, + 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, + 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, + 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, + 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, + 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, + 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, + 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, + 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, + 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, + 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, + 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, + 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, + 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, + 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, + 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, + 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, + 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, + 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, + 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, + 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, + 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, + 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, + 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, + 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, + 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, + 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, + 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, + 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, + 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, + 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, + 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, + 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, + 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, + 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, + 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, + 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, + 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, + 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, + 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, + 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, + 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, + 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, + 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, + 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, + 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, + 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, + 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, + 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, + 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, + 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, + 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, + 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, + 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, + 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, + 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, + 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, + 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, + 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, + 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, + 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, + 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, + 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, + 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, + 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, + 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, + 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, + 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, + 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, + 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, + 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, + 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, + 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, + 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, + 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, + 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, + 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, + 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, + 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, + 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, + 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, + 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, + 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, + 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, + 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, + 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, + 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, + 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, + 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, + 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, + 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, + 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, + 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, + 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, + 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, + 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, + 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, + 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, + 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, + 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, + 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, + 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, + 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, + 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, + 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, + 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, + 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, + 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, + 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, + 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, + 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, + 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, + 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, + 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, + 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, + 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, + 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, + 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, + 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, + 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, + 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, + 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, + 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, + 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, + 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, + 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, + 32,135,252,32,129,255,224,128,63,192,64,15,128,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, + 0,10,0,0,6,26,26,10,2,248,120,252,252,252,120,0, + 0,0,32,48,48,48,48,48,48,120,120,120,120,252,252,252, + 252,252,252,120,13,25,50,19,3,252,1,0,1,0,1,0, + 1,0,15,192,29,32,57,48,121,112,121,112,249,112,241,96, + 241,0,241,0,241,0,241,0,241,8,121,16,121,16,57,16, + 29,32,15,192,1,0,1,0,1,0,1,0,21,26,78,24, + 2,0,0,2,0,0,61,192,0,112,96,0,240,112,1,224, + 112,1,224,240,3,224,240,3,224,224,3,224,0,3,224,0, + 3,224,0,31,224,0,35,225,0,1,254,0,1,240,0,1, + 240,0,0,240,0,0,240,0,0,240,0,0,224,0,0,224, + 8,60,192,16,199,192,48,131,255,224,131,255,192,124,63,128, + 18,17,51,20,1,3,64,0,128,227,241,192,127,255,128,60, + 15,0,56,7,0,48,3,0,112,3,128,96,1,128,96,1, + 128,96,1,128,96,1,128,112,3,128,48,3,0,56,7,0, + 62,31,0,127,255,128,99,241,128,18,25,75,20,1,0,255, + 143,192,63,3,128,63,3,0,31,3,0,31,130,0,15,130, + 0,15,196,0,15,196,0,7,196,0,7,232,0,3,232,0, + 3,248,0,3,240,0,63,255,128,1,240,0,1,240,0,63, + 255,128,1,240,0,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,31,254,0,2,32,32,10,4,250, + 192,192,192,192,192,192,192,192,192,192,192,192,192,0,0,0, + 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 15,32,64,22,2,249,7,224,28,24,56,24,48,28,112,124, + 112,124,112,124,120,56,124,0,63,0,31,224,127,240,71,252, + 193,252,192,126,224,30,248,14,254,6,127,134,63,228,31,248, + 7,248,1,248,0,124,60,60,60,28,124,28,124,28,112,24, + 48,56,24,112,15,192,11,4,8,15,2,19,113,192,241,224, + 241,224,113,192,24,25,75,28,2,1,1,255,128,6,0,64, + 12,0,48,24,0,24,48,60,136,32,227,132,65,193,134,65, + 193,130,195,192,130,131,192,131,131,192,129,131,192,1,131,192, + 1,131,192,1,131,192,65,131,192,131,195,192,130,65,192,130, + 65,193,134,32,227,4,48,60,8,16,0,24,12,0,48,6, + 0,64,1,255,128,10,13,26,13,1,12,60,0,70,0,199, + 0,231,0,71,0,63,0,103,0,231,0,231,64,231,64,123, + 128,0,0,255,128,9,15,30,17,4,1,8,0,24,128,48, + 128,97,0,99,0,227,0,227,0,227,0,227,0,227,0,227, + 0,97,0,49,128,48,128,8,0,16,9,18,20,2,5,255, + 255,255,255,0,3,0,3,0,3,0,3,0,3,0,3,0, + 3,9,4,8,13,2,7,255,128,255,128,255,128,255,128,24, + 25,75,28,2,1,1,255,128,6,0,64,12,0,48,24,0, + 24,55,254,8,33,227,132,65,227,198,65,227,194,193,227,194, + 129,227,195,129,231,129,129,252,1,129,231,1,129,227,129,129, + 227,193,129,227,195,193,227,210,65,227,210,65,227,214,33,227, + 212,55,249,232,16,0,24,12,0,48,6,0,64,1,255,128, + 9,2,4,15,3,20,255,128,255,128,11,10,20,19,4,16, + 63,128,123,192,224,192,192,96,192,96,192,96,192,224,97,192, + 63,128,31,0,29,26,104,33,2,254,0,6,0,0,0,6, + 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, + 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, + 0,0,255,255,255,248,255,255,255,248,0,6,0,0,0,6, + 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, + 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, + 0,0,0,0,0,0,0,0,0,0,255,255,255,240,255,255, + 255,240,10,16,32,15,3,9,31,0,103,128,195,192,195,192, + 227,192,243,128,7,128,14,0,28,0,48,64,64,64,64,64, + 255,192,255,192,159,128,135,0,11,16,32,15,2,9,31,0, + 35,128,99,192,115,192,115,192,51,128,3,0,28,0,3,128, + 3,192,97,224,241,224,241,224,227,224,99,192,63,0,6,7, + 7,15,6,18,28,28,60,120,96,192,128,17,27,81,20,2, + 246,96,48,0,112,120,0,240,120,0,240,120,0,240,120,0, + 240,120,0,240,120,0,240,120,0,240,120,0,96,56,0,96, + 48,128,96,48,128,96,113,128,32,127,128,48,255,128,95,207, + 0,71,143,0,64,0,0,96,0,0,96,0,0,112,0,0, + 112,0,0,120,0,0,120,0,0,120,0,0,120,0,0,48, + 0,0,17,30,90,20,2,251,15,255,128,63,140,0,127,140, + 0,127,140,0,255,140,0,255,140,0,255,140,0,255,140,0, + 255,140,0,127,140,0,127,140,0,63,140,0,31,140,0,1, + 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, + 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, + 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, + 140,0,5,5,5,9,2,9,112,248,248,248,112,7,7,7, + 15,4,249,32,32,24,14,14,14,252,8,15,15,16,4,10, + 12,28,252,60,60,60,60,60,60,60,60,60,60,60,255,9, + 13,26,13,2,12,28,0,103,0,99,0,227,128,227,128,227, + 128,227,128,227,128,99,0,103,0,28,0,0,0,255,128,9, + 14,28,17,4,2,132,0,198,0,99,0,99,0,115,128,115, + 128,115,128,115,128,115,128,99,128,99,0,195,0,134,0,12, + 0,25,26,104,31,4,0,0,0,48,0,12,0,48,0,28, + 0,96,0,252,0,96,0,60,0,192,0,60,0,128,0,60, + 1,128,0,60,3,0,0,60,3,0,0,60,6,0,0,60, + 6,0,0,60,12,14,0,60,12,30,0,60,24,30,0,60, + 16,62,0,255,48,62,0,0,96,94,0,0,96,158,0,0, + 192,158,0,0,193,30,0,1,131,30,0,1,131,255,128,3, + 0,30,0,2,0,30,0,6,0,30,0,12,0,255,128,25, + 26,104,31,4,0,0,0,48,0,28,0,32,0,252,0,96, + 0,60,0,64,0,60,0,192,0,60,1,128,0,60,1,128, + 0,60,3,0,0,60,3,0,0,60,6,0,0,60,4,62, + 0,60,12,207,0,60,9,135,128,60,25,135,128,60,49,199, + 128,255,49,231,0,0,96,207,0,0,96,28,0,0,192,56, + 0,0,128,96,0,1,128,64,128,3,0,128,128,3,1,255, + 128,6,1,255,128,6,1,63,0,12,1,14,0,26,26,104, + 30,2,0,0,0,24,0,31,0,24,0,35,128,48,0,99, + 192,48,0,115,192,96,0,115,192,64,0,51,128,192,0,3, + 0,128,0,28,1,128,0,3,131,0,0,3,195,0,0,113, + 230,7,0,241,228,15,0,227,236,15,0,99,200,31,0,63, + 24,31,0,0,16,47,0,0,48,79,0,0,96,79,0,0, + 96,143,0,0,192,143,0,0,129,255,192,1,128,15,0,1, + 0,15,0,3,0,15,0,2,0,127,192,11,26,52,16,2, + 248,28,0,62,0,62,0,62,0,28,0,0,0,0,0,30, + 0,49,0,33,0,33,0,1,0,2,0,6,0,14,0,28, + 0,60,0,120,192,120,64,248,32,240,32,240,32,240,32,120, + 64,120,64,31,128,23,33,99,25,1,0,1,128,0,1,192, + 0,0,224,0,0,96,0,0,48,0,0,16,0,0,0,0, + 0,16,0,0,24,0,0,56,0,0,56,0,0,60,0,0, + 124,0,0,124,0,0,126,0,0,254,0,0,254,0,0,158, + 0,1,159,0,1,159,0,1,31,0,3,15,128,3,15,128, + 3,15,128,6,7,192,7,255,192,6,7,192,4,7,224,12, + 3,224,12,3,224,28,3,240,28,3,240,255,159,254,23,33, + 99,25,1,0,0,3,0,0,7,128,0,7,0,0,14,0, + 0,28,0,0,16,0,0,0,0,0,16,0,0,24,0,0, + 56,0,0,56,0,0,60,0,0,124,0,0,124,0,0,126, + 0,0,254,0,0,254,0,0,159,0,1,159,0,1,159,0, + 1,31,128,3,15,128,3,15,128,3,15,128,6,7,192,7, + 255,192,6,7,192,12,7,224,12,3,224,12,3,224,28,3, + 240,60,3,248,255,159,254,23,33,99,25,1,0,0,16,0, + 0,56,0,0,56,0,0,124,0,0,199,0,1,129,128,0, + 0,0,0,16,0,0,24,0,0,56,0,0,56,0,0,60, + 0,0,124,0,0,124,0,0,126,0,0,254,0,0,254,0, + 0,158,0,1,159,0,1,159,0,1,31,0,3,15,128,3, + 15,128,3,15,128,6,7,192,7,255,192,6,7,192,4,7, + 224,12,3,224,12,3,224,28,3,240,28,3,240,255,159,254, + 23,32,96,25,1,0,0,112,128,0,249,0,1,191,0,1, + 14,0,0,0,0,0,0,0,0,0,0,0,24,0,0,56, + 0,0,56,0,0,60,0,0,124,0,0,124,0,0,126,0, + 0,254,0,0,254,0,0,159,0,1,159,0,1,159,0,1, + 31,128,3,15,128,3,15,128,3,15,128,6,7,192,7,255, + 192,6,7,192,12,7,224,12,3,224,12,3,224,28,3,240, + 60,3,248,255,159,254,23,32,96,25,1,0,1,195,128,3, + 199,128,3,199,128,1,195,128,0,0,0,0,0,0,0,24, + 0,0,56,0,0,56,0,0,56,0,0,60,0,0,124,0, + 0,124,0,0,126,0,0,254,0,0,254,0,0,159,0,1, + 159,0,1,159,0,1,15,128,3,15,128,2,15,128,2,15, + 192,6,7,192,7,255,192,4,7,192,4,3,224,8,3,224, + 8,3,224,24,1,240,24,3,240,255,159,254,23,33,99,25, + 1,0,0,60,0,0,126,0,0,195,0,0,195,0,0,199, + 0,0,126,0,0,60,0,0,0,0,0,24,0,0,56,0, + 0,56,0,0,60,0,0,124,0,0,124,0,0,126,0,0, + 254,0,0,254,0,0,159,0,1,159,0,1,159,0,1,15, + 0,3,15,128,3,15,128,2,15,128,2,7,192,7,255,192, + 4,7,192,4,3,224,12,3,224,8,3,224,24,1,240,28, + 1,240,255,159,254,32,25,100,34,1,0,0,15,255,255,0, + 3,240,31,0,7,240,15,0,7,240,7,0,5,240,7,0, + 13,240,3,0,9,240,3,0,25,240,35,0,25,240,32,0, + 49,240,96,0,49,240,96,0,97,240,224,0,97,255,224,0, + 193,240,224,0,193,240,96,1,129,240,96,1,129,240,33,3, + 255,240,33,3,1,240,3,6,1,240,3,6,1,240,7,12, + 1,240,7,12,1,240,15,62,1,240,63,255,143,255,255,19, + 33,99,22,2,249,3,248,192,14,6,192,30,3,192,60,3, + 192,60,1,192,124,1,192,124,0,192,124,0,192,252,0,192, + 252,0,64,252,0,64,252,0,0,252,0,0,252,0,0,252, + 0,0,252,0,0,252,0,96,124,0,64,124,0,64,124,0, + 64,60,0,192,62,0,128,30,1,0,15,2,0,3,156,0, + 0,224,0,0,128,0,0,240,0,0,56,0,0,56,0,0, + 56,0,2,48,0,1,224,0,20,33,99,23,2,0,3,0, + 0,7,128,0,3,128,0,1,192,0,0,224,0,0,32,0, + 0,0,0,0,0,0,255,255,224,31,1,224,31,0,224,31, + 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, + 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, + 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, + 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, + 240,20,33,99,23,2,0,0,6,0,0,14,0,0,30,0, + 0,28,0,0,48,0,0,96,0,0,0,0,0,0,0,255, + 255,224,31,1,224,31,0,224,31,0,224,31,0,96,31,0, + 96,31,0,32,31,4,32,31,4,0,31,12,0,31,12,0, + 31,28,0,31,252,0,31,28,0,31,12,0,31,12,48,31, + 4,48,31,4,48,31,0,48,31,0,112,31,0,112,31,0, + 240,31,0,240,31,3,240,255,255,240,20,33,99,23,2,0, + 0,32,0,0,96,0,0,240,0,1,248,0,3,140,0,6, + 3,0,0,0,0,0,0,0,255,255,224,31,1,224,31,0, + 224,31,0,224,31,0,96,31,0,96,31,0,32,31,4,32, + 31,4,0,31,12,0,31,12,0,31,28,0,31,252,0,31, + 28,0,31,12,0,31,12,48,31,4,48,31,4,48,31,0, + 48,31,0,112,31,0,112,31,0,240,31,1,240,31,3,240, + 255,255,240,20,32,96,23,2,0,7,14,0,7,143,0,7, + 143,0,7,14,0,0,0,0,0,0,0,0,0,0,255,255, + 224,31,1,224,31,0,224,31,0,224,31,0,96,31,0,96, + 31,0,32,31,4,32,31,4,0,31,12,0,31,12,0,31, + 28,0,31,252,0,31,28,0,31,12,0,31,12,48,31,4, + 48,31,4,48,31,0,48,31,0,112,31,0,112,31,0,240, + 31,0,240,31,3,240,255,255,240,11,33,66,14,2,0,96, + 0,112,0,120,0,56,0,28,0,4,0,0,0,0,0,255, + 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, + 224,11,33,66,14,2,0,0,192,1,192,3,192,3,128,7, + 0,4,0,0,0,0,0,255,224,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,255,224,11,33,66,14,2,0,4, + 0,14,0,14,0,31,0,113,128,192,96,0,0,0,0,255, + 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, + 224,11,32,64,15,2,0,112,224,241,224,241,224,112,224,0, + 0,0,0,0,0,255,224,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,255,224,23,25,75,27,2,0,255,255,0, + 31,3,192,31,0,224,31,0,240,31,0,120,31,0,120,31, + 0,124,31,0,124,31,0,126,31,0,126,31,0,126,255,224, + 126,31,0,126,31,0,126,31,0,126,31,0,126,31,0,124, + 31,0,124,31,0,124,31,0,120,31,0,120,31,0,240,31, + 0,224,31,3,192,255,255,0,24,32,96,27,2,0,0,112, + 64,0,252,192,0,159,128,0,135,0,0,0,0,0,0,0, + 0,0,0,255,3,255,31,128,124,31,128,56,15,192,16,7, + 224,16,7,240,16,7,240,16,5,248,16,5,252,16,4,252, + 16,4,126,16,4,127,16,4,63,16,4,31,144,4,31,208, + 4,15,208,4,7,240,4,7,240,4,3,240,4,1,240,4, + 1,240,4,0,240,14,0,112,31,0,48,255,192,48,20,33, + 99,24,2,1,7,0,0,7,128,0,3,128,0,1,192,0, + 0,192,0,0,96,0,0,0,0,0,0,0,3,252,0,6, + 6,0,14,7,0,28,3,128,60,3,192,60,3,192,124,3, + 224,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, + 252,3,240,252,3,240,252,3,240,252,3,240,124,3,224,124, + 3,224,124,3,224,60,3,192,60,3,192,28,3,128,14,7, + 0,6,6,0,3,252,0,20,33,99,24,2,1,0,14,0, + 0,30,0,0,28,0,0,56,0,0,48,0,0,96,0,0, + 0,0,0,0,0,3,252,0,6,6,0,14,7,0,28,3, + 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, + 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,124,3,224,124,3,224,124,3,224,60,3, + 192,60,3,192,28,3,128,14,7,0,6,6,0,3,252,0, + 20,33,99,24,2,0,0,96,0,0,96,0,0,240,0,1, + 248,0,3,156,0,6,6,0,0,0,0,0,0,0,3,252, + 0,6,6,0,14,7,0,28,3,128,60,3,192,60,3,192, + 124,3,224,124,3,224,124,3,224,252,3,240,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, + 224,124,3,224,124,3,224,60,3,192,60,3,192,28,3,128, + 14,7,0,6,6,0,3,252,0,20,32,96,24,2,0,1, + 194,0,3,230,0,6,124,0,4,56,0,0,0,0,0,0, + 0,0,0,0,3,252,0,6,6,0,14,7,0,28,3,128, + 60,3,192,60,3,192,124,3,224,124,3,224,124,3,224,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, + 240,252,3,240,124,3,224,124,3,224,124,3,224,60,3,192, + 60,3,192,28,3,128,14,7,0,6,6,0,3,252,0,20, + 32,96,24,2,0,7,14,0,7,143,0,7,143,0,7,14, + 0,0,0,0,0,0,0,0,0,0,3,252,0,6,6,0, + 14,7,0,28,3,128,60,3,192,60,3,192,124,3,224,124, + 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, + 240,252,3,240,252,3,240,252,3,240,124,3,224,124,3,224, + 124,3,224,60,3,192,60,3,192,28,3,128,14,7,0,6, + 6,0,3,252,0,22,23,69,32,5,254,64,0,8,224,0, + 28,240,0,60,120,0,120,56,0,240,28,0,224,14,1,192, + 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, + 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, + 192,28,0,224,56,0,112,112,0,56,224,0,28,64,0,8, + 20,25,75,24,2,1,3,252,48,6,6,96,14,3,192,28, + 3,128,60,3,192,60,3,192,124,3,224,124,7,224,124,15, + 224,252,11,240,252,19,240,252,35,240,252,99,240,252,67,240, + 252,131,240,253,3,240,127,3,224,126,3,224,124,3,224,60, + 3,192,60,3,192,28,3,128,60,7,0,102,6,0,195,252, + 0,23,33,99,26,2,1,1,192,0,1,224,0,0,224,0, + 0,112,0,0,56,0,0,8,0,0,0,0,0,0,0,255, + 225,254,31,0,120,31,0,48,31,0,16,31,0,16,31,0, + 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,15,0,32,15,0, + 32,7,128,64,3,192,192,1,255,0,23,33,99,26,2,1, + 0,3,128,0,3,128,0,7,128,0,14,0,0,12,0,0, + 24,0,0,0,0,0,0,0,255,225,254,31,0,120,31,0, + 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, + 1,255,0,23,33,99,26,2,0,0,8,0,0,24,0,0, + 60,0,0,126,0,0,227,0,1,128,192,0,0,0,0,0, + 0,255,225,254,31,0,120,31,0,48,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,16,31,0,16,31,0,16,31,0,16,15,0,48, + 15,128,32,7,128,64,3,192,192,1,255,0,23,32,96,26, + 2,0,1,195,128,1,227,192,1,227,192,1,195,128,0,0, + 0,0,0,0,0,0,0,255,225,254,31,0,120,31,0,48, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,15,0,32,15,0,32,7,128,64,3,192,192,1, + 255,0,23,33,99,26,2,0,0,1,128,0,3,128,0,7, + 128,0,7,0,0,12,0,0,8,0,0,0,0,0,0,0, + 255,225,254,31,128,112,31,128,96,15,128,96,15,192,64,7, + 192,192,7,224,192,7,224,128,3,225,128,3,241,0,1,241, + 0,1,251,0,0,250,0,0,254,0,0,252,0,0,124,0, + 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, + 124,0,0,124,0,0,124,0,3,255,128,20,25,75,24,2, + 0,255,240,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,254,0,31,7,128,31,3,192,31,1,224,31,1,240,31, + 1,240,31,1,240,31,1,240,31,1,240,31,1,224,31,3, + 192,31,7,128,31,254,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,255,240,0,16,25,50,19, + 1,0,3,224,6,120,14,60,30,60,28,60,60,60,60,60, + 60,56,60,112,61,192,60,48,60,28,60,30,60,30,60,15, + 60,15,60,15,60,15,60,15,60,15,61,207,63,222,63,158, + 61,156,252,248,15,25,50,18,2,0,48,0,56,0,60,0, + 28,0,14,0,2,0,0,0,0,0,15,128,49,224,96,240, + 112,240,120,240,120,240,48,240,3,240,28,240,56,240,120,240, + 240,240,240,242,240,242,240,242,121,252,62,120,15,25,50,18, + 2,0,0,224,0,224,1,224,1,192,3,0,6,0,4,0, + 0,0,15,128,49,224,96,240,112,240,120,240,120,240,32,240, + 7,240,28,240,56,240,120,240,240,240,240,242,240,242,240,242, + 121,252,62,120,15,25,50,18,2,0,7,0,7,0,15,0, + 13,128,24,192,112,96,0,0,0,0,15,128,49,224,96,240, + 112,240,120,240,120,240,32,240,7,240,28,240,56,240,120,240, + 240,240,240,242,240,242,240,242,121,252,62,120,15,24,48,18, + 2,0,28,32,63,32,103,224,65,192,0,0,0,0,0,0, + 15,128,49,224,96,240,112,240,120,240,120,240,48,240,7,240, + 28,240,56,240,120,240,240,240,240,242,240,242,240,242,121,252, + 62,120,15,24,48,18,2,0,112,224,120,240,120,240,112,224, + 0,0,0,0,0,0,15,128,49,224,96,240,112,240,120,240, + 120,240,32,240,7,240,28,240,56,240,120,240,240,240,240,242, + 240,242,240,242,121,252,62,120,15,25,50,18,2,1,15,128, + 25,192,16,192,16,192,24,192,15,128,7,0,0,0,15,128, + 49,224,96,240,112,240,120,240,120,240,32,240,7,240,24,240, + 56,240,112,240,240,240,240,242,240,242,240,242,121,252,62,120, + 21,17,51,25,2,0,31,143,128,49,248,224,96,248,240,112, + 248,112,120,248,120,120,240,120,48,240,120,3,240,120,28,255, + 248,56,240,0,120,240,0,240,240,8,240,248,8,240,248,8, + 240,248,16,121,188,48,62,15,192,13,24,48,16,2,249,7, + 128,28,96,56,32,120,112,120,240,248,240,240,224,240,64,240, + 0,240,0,240,0,240,8,120,16,120,16,56,16,28,32,15, + 192,2,0,4,0,3,128,1,192,1,192,17,192,15,128,13, + 25,50,17,2,0,48,0,56,0,60,0,28,0,6,0,3, + 0,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, + 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, + 24,56,16,28,32,7,192,13,25,50,17,2,0,0,96,0, + 224,1,224,1,192,3,128,6,0,0,0,0,0,7,128,24, + 224,56,240,120,240,120,240,240,120,240,120,240,120,255,248,240, + 0,240,0,240,8,120,8,120,24,56,16,28,32,7,192,13, + 25,50,17,2,0,7,0,7,0,15,128,13,128,24,192,48, + 112,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, + 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, + 24,56,16,28,32,7,192,13,24,48,17,2,0,56,224,120, + 240,120,240,56,224,0,0,0,0,0,0,7,128,24,224,56, + 240,120,240,120,240,240,120,240,120,240,120,255,248,240,0,240, + 0,240,8,120,8,120,24,56,16,28,32,7,192,8,25,25, + 10,1,0,192,224,240,112,24,12,0,0,252,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,255,8,25,25,10, + 1,0,3,7,7,14,28,16,0,0,252,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60,255,10,25,50,10,0, + 0,28,0,30,0,30,0,55,0,97,128,192,192,0,0,0, + 0,126,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,127,128,10,24,48,11,1,0,115,128,243,192,243,192,115, + 128,0,0,0,0,0,0,126,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,127,128,14,25,50,18,2,0,30, + 48,15,96,15,128,7,128,15,192,49,224,1,224,0,240,15, + 248,28,248,56,120,120,120,120,124,240,124,240,60,240,60,240, + 60,240,60,240,60,240,124,120,120,120,120,56,112,28,224,7, + 192,17,23,69,19,1,1,7,136,0,15,248,0,16,240,0, + 0,0,0,0,0,0,0,0,0,252,120,0,61,188,0,61, + 28,0,62,30,0,62,30,0,62,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,255,127,128,14,25,50,18, + 2,0,24,0,60,0,28,0,14,0,7,0,3,0,0,0, + 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, + 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, + 24,224,7,128,14,25,50,18,2,0,0,96,0,240,0,224, + 1,192,3,128,3,0,0,0,0,0,7,128,28,224,56,112, + 120,120,120,120,240,60,240,60,240,60,240,60,240,60,240,60, + 240,60,120,120,120,120,56,112,24,224,7,128,14,25,50,18, + 2,0,3,0,7,128,7,128,15,192,28,224,48,48,32,16, + 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, + 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, + 24,224,7,128,14,24,48,18,2,0,14,16,31,144,39,224, + 33,224,0,0,0,0,0,0,7,128,28,224,56,112,120,120, + 120,120,240,60,240,60,240,60,240,60,240,60,240,60,240,60, + 120,120,120,120,56,112,24,224,7,128,14,24,48,18,2,0, + 56,112,60,240,60,240,56,112,0,0,0,0,0,0,7,128, + 28,224,56,112,120,120,120,120,240,60,240,60,240,60,240,60, + 240,60,240,60,240,60,120,120,120,120,56,112,24,224,7,128, + 29,23,92,31,1,254,0,7,0,0,0,15,128,0,0,15, + 128,0,0,15,128,0,0,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 255,248,255,255,255,248,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,15,128,0,0,15,128,0,0,15,128,0,0,7, + 0,0,14,17,34,18,2,0,7,132,24,232,56,120,120,120, + 120,120,240,124,240,188,241,188,243,60,246,60,244,60,248,60, + 120,120,120,120,120,112,92,96,135,128,17,25,75,19,1,0, + 12,0,0,30,0,0,14,0,0,7,0,0,3,0,0,0, + 128,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, + 62,0,60,94,0,30,158,0,15,31,128,17,25,75,19,1, + 0,0,48,0,0,112,0,0,112,0,0,224,0,1,192,0, + 1,0,0,0,0,0,0,0,0,252,126,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,62,0,60,62,0, + 60,62,0,60,94,0,30,158,0,15,31,128,17,25,75,19, + 1,0,1,128,0,3,192,0,3,192,0,7,224,0,12,48, + 0,24,24,0,0,0,0,0,0,0,252,126,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,62,0,60,62, + 0,60,62,0,60,94,0,30,158,0,15,31,128,17,24,72, + 19,1,0,28,112,0,30,120,0,30,120,0,28,112,0,0, + 0,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, + 62,0,60,94,0,30,158,0,15,31,128,17,33,99,18,0, + 248,0,28,0,0,28,0,0,60,0,0,112,0,0,96,0, + 0,192,0,0,0,0,0,0,0,255,159,128,62,6,0,30, + 4,0,31,4,0,15,4,0,15,8,0,15,136,0,7,136, + 0,7,152,0,3,208,0,3,208,0,3,240,0,1,224,0, + 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, + 64,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, + 0,30,0,0,15,32,64,18,1,247,12,0,28,0,124,0, + 188,0,60,0,60,0,60,0,60,120,60,252,61,30,63,30, + 62,30,62,30,62,30,60,30,60,28,60,28,60,56,60,56, + 60,48,60,96,60,192,61,0,62,0,60,0,60,0,60,0, + 60,0,60,0,60,0,48,0,192,0,17,32,96,18,0,248, + 14,28,0,15,60,0,15,60,0,14,28,0,0,0,0,0, + 0,0,0,0,0,255,159,128,62,6,0,30,4,0,30,4, + 0,15,8,0,15,8,0,15,8,0,7,136,0,7,144,0, + 3,208,0,3,208,0,3,224,0,1,224,0,1,224,0,0, + 224,0,0,192,0,0,192,0,0,64,0,0,128,0,28,128, + 0,60,128,0,61,0,0,57,0,0,59,0,0,30,0,0 + }; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 25 + Calculated Max Values w=29 h=33 x= 4 y=11 dx=31 dy= 0 ascent=26 len=120 + Font Bounding box w=95 h=44 x=-29 y=-10 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent= 0 + X Font ascent =25 descent= 0 + Max Font ascent =26 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb26n[880] U8G_SECTION(".progmem.u8g_font_osb26n") = { + 0,95,44,227,246,25,0,0,0,0,42,57,0,26,249,25, + 0,12,14,28,17,3,11,14,0,14,0,14,0,196,112,228, + 240,245,224,14,0,14,0,245,224,228,240,196,112,14,0,14, + 0,14,0,29,30,120,31,1,251,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,255,255,255,248,255,255,255,248,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, + 0,7,11,11,10,2,249,120,252,254,254,126,6,4,12,8, + 48,224,9,4,8,13,2,7,255,128,255,128,255,128,255,128, + 5,5,5,9,2,0,112,248,248,248,112,12,33,66,15,2, + 249,0,112,0,96,0,96,0,224,0,192,0,192,1,192,1, + 192,1,128,1,128,3,128,3,0,3,0,7,0,6,0,6, + 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,56, + 0,56,0,48,0,48,0,112,0,96,0,96,0,224,0,192, + 0,192,0,16,25,50,20,2,1,7,224,14,112,28,56,60, + 60,60,60,124,62,124,62,124,62,252,63,252,63,252,63,252, + 63,252,63,252,63,252,63,252,63,252,63,124,62,124,62,124, + 62,60,60,60,60,28,56,14,112,7,224,12,25,50,20,4, + 0,7,0,7,0,31,0,255,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,255,240,15,25,50,20,2,1,31,240,48,120,96,60,96, + 62,224,62,240,62,248,62,252,62,124,124,56,124,0,248,1, + 240,1,224,3,128,7,0,12,2,24,2,48,2,32,2,76, + 6,127,254,127,252,71,252,67,252,65,248,15,26,52,20,2, + 0,1,0,14,240,56,120,48,60,112,62,120,62,124,62,124, + 62,60,62,24,60,0,120,0,112,31,192,0,240,0,120,0, + 60,0,60,56,62,124,62,252,62,252,62,248,62,224,60,96, + 124,96,120,31,224,16,25,50,20,2,0,0,120,0,120,0, + 248,1,248,1,248,3,248,3,248,6,248,6,248,12,248,12, + 248,24,248,56,248,48,248,96,248,96,248,192,248,255,255,0, + 248,0,248,0,248,0,248,0,248,0,248,15,255,15,26,52, + 20,3,0,0,8,48,56,63,240,63,224,63,128,62,0,32, + 0,32,0,32,0,32,0,39,192,56,112,48,120,32,60,32, + 60,0,62,0,62,56,62,120,62,252,62,248,62,248,60,224, + 60,96,120,112,112,31,224,16,25,50,20,2,1,7,240,12, + 8,28,12,56,60,56,124,120,124,120,120,120,48,248,0,248, + 0,251,224,252,56,252,60,248,30,248,31,248,31,248,31,248, + 31,120,31,120,31,120,31,56,30,28,30,12,60,7,240,15, + 25,50,20,3,0,79,28,95,156,127,198,127,230,127,254,224, + 246,192,4,192,12,128,12,128,24,0,16,0,48,0,96,0, + 224,1,192,1,192,3,192,7,128,7,128,15,128,15,128,15, + 128,15,128,15,128,7,0,17,25,75,20,2,1,7,240,0, + 24,12,0,48,12,0,48,6,0,112,6,0,112,6,0,120, + 6,0,124,4,0,127,12,0,127,152,0,63,224,0,31,248, + 0,15,252,0,15,254,0,49,255,0,96,127,0,64,31,0, + 192,15,128,192,7,0,192,7,0,192,3,0,96,6,0,96, + 6,0,56,12,0,14,240,0,15,25,50,20,2,1,31,192, + 60,112,120,48,120,56,248,60,248,60,248,60,248,62,248,62, + 248,62,248,62,120,62,124,126,60,126,15,190,0,62,0,62, + 12,60,30,60,62,60,62,56,60,56,48,112,16,96,15,192 + }; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 26, '1' Height: 25 + Calculated Max Values w=34 h=33 x= 4 y=18 dx=36 dy= 0 ascent=28 len=125 + Font Bounding box w=95 h=44 x=-29 y=-10 + Calculated Min Values x=-2 y=-8 dx= 0 dy= 0 + Pure Font ascent =26 descent=-8 + X Font ascent =26 descent=-8 + Max Font ascent =28 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb26r[5950] U8G_SECTION(".progmem.u8g_font_osb26r") = { + 0,95,44,227,246,26,7,105,16,163,32,127,248,28,248,26, + 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, + 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, + 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, + 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, + 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, + 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, + 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, + 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, + 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, + 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, + 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, + 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, + 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, + 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, + 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, + 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, + 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, + 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, + 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, + 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, + 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, + 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, + 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, + 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, + 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, + 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, + 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, + 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, + 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, + 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, + 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, + 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, + 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, + 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, + 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, + 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, + 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, + 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, + 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, + 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, + 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, + 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, + 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, + 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, + 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, + 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, + 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, + 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, + 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, + 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, + 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, + 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, + 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, + 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, + 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, + 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, + 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, + 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, + 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, + 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, + 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, + 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, + 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, + 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, + 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, + 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, + 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, + 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, + 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, + 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, + 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, + 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, + 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, + 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, + 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, + 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, + 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, + 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, + 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, + 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, + 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, + 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, + 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, + 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, + 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, + 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, + 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, + 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, + 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, + 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, + 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, + 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, + 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, + 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, + 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, + 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, + 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, + 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, + 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, + 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, + 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, + 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, + 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, + 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, + 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, + 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, + 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, + 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, + 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, + 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, + 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, + 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, + 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, + 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, + 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, + 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, + 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, + 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, + 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, + 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, + 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, + 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, + 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, + 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, + 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, + 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, + 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, + 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, + 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, + 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, + 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, + 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, + 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, + 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, + 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, + 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, + 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, + 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, + 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, + 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, + 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, + 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, + 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, + 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, + 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, + 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, + 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, + 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, + 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, + 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, + 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, + 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, + 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, + 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, + 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, + 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, + 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, + 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, + 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, + 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, + 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, + 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, + 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, + 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, + 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, + 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, + 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, + 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, + 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, + 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, + 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, + 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, + 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, + 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, + 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, + 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, + 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, + 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, + 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, + 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, + 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, + 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, + 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, + 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, + 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, + 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, + 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, + 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, + 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, + 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, + 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, + 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, + 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, + 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, + 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, + 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, + 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, + 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, + 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, + 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, + 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, + 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, + 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, + 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, + 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, + 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, + 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, + 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, + 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, + 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, + 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, + 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, + 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, + 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, + 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, + 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, + 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, + 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, + 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, + 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, + 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, + 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, + 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, + 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, + 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, + 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, + 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, + 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, + 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, + 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, + 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, + 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, + 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, + 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, + 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, + 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, + 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, + 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, + 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, + 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, + 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, + 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, + 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, + 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, + 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, + 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, + 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, + 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, + 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, + 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, + 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, + 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, + 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, + 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, + 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, + 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, + 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, + 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, + 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, + 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, + 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, + 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, + 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, + 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, + 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, + 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, + 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, + 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, + 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, + 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, + 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, + 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, + 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, + 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, + 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, + 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, + 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, + 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, + 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, + 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, + 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, + 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, + 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, + 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, + 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, + 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, + 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, + 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, + 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, + 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, + 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, + 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, + 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, + 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, + 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, + 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, + 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, + 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, + 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, + 32,135,252,32,129,255,224,128,63,192,64,15,128,255}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 29, '1' Height: 28 + Calculated Max Values w=38 h=37 x= 7 y=23 dx=41 dy= 0 ascent=38 len=165 + Font Bounding box w=107 h=49 x=-33 y=-11 + Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 + Pure Font ascent =29 descent=-9 + X Font ascent =29 descent=-9 + Max Font ascent =38 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb29[15818] U8G_SECTION(".progmem.u8g_font_osb29") = { + 0,107,49,223,245,29,9,166,21,115,32,255,247,38,245,29, + 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, + 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, + 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, + 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, + 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, + 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, + 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, + 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, + 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, + 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, + 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, + 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, + 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, + 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, + 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, + 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, + 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, + 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, + 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, + 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, + 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, + 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, + 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, + 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, + 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, + 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, + 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, + 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, + 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, + 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, + 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, + 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, + 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, + 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, + 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, + 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, + 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, + 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, + 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, + 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, + 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, + 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, + 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, + 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, + 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, + 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, + 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, + 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, + 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, + 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, + 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, + 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, + 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, + 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, + 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, + 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, + 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, + 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, + 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, + 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, + 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, + 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, + 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, + 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, + 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, + 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, + 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, + 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, + 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, + 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, + 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, + 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, + 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, + 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, + 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, + 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, + 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, + 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, + 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, + 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,103,224,0,104,120, + 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, + 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, + 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, + 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, + 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, + 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, + 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, + 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, + 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, + 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, + 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, + 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, + 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, + 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, + 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, + 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, + 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, + 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, + 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, + 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, + 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, + 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, + 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, + 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, + 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, + 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, + 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, + 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, + 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, + 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, + 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, + 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, + 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, + 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, + 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, + 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, + 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, + 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, + 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, + 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, + 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, + 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, + 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, + 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, + 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, + 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, + 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, + 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, + 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, + 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, + 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, + 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, + 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, + 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, + 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, + 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, + 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, + 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, + 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, + 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, + 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, + 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, + 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, + 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, + 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, + 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, + 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, + 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, + 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, + 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, + 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, + 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, + 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, + 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, + 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, + 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, + 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, + 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, + 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, + 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, + 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, + 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, + 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, + 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, + 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, + 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, + 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, + 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, + 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, + 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, + 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, + 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, + 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, + 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, + 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, + 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, + 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, + 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, + 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, + 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, + 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, + 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, + 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, + 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, + 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, + 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, + 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, + 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, + 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, + 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, + 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, + 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, + 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, + 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, + 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, + 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, + 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, + 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, + 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, + 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, + 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, + 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, + 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, + 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, + 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, + 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, + 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, + 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, + 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, + 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, + 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, + 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, + 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, + 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, + 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, + 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, + 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, + 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, + 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, + 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, + 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, + 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, + 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, + 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, + 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, + 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, + 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, + 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, + 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, + 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, + 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, + 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, + 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, + 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, + 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, + 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, + 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, + 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, + 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, + 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, + 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, + 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, + 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, + 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, + 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, + 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, + 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, + 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, + 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, + 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, + 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, + 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, + 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, + 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, + 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, + 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, + 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, + 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, + 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, + 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, + 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, + 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, + 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, + 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, + 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, + 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, + 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, + 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, + 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, + 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, + 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, + 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, + 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, + 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, + 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, + 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, + 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, + 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, + 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, + 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, + 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, + 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, + 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, + 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, + 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, + 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, + 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, + 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, + 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, + 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, + 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, + 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, + 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, + 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, + 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, + 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, + 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, + 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, + 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, + 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, + 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, + 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, + 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, + 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, + 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, + 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, + 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, + 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, + 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, + 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, + 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, + 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, + 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, + 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, + 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, + 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, + 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, + 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, + 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, + 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, + 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, + 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, + 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, + 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, + 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, + 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, + 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, + 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, + 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, + 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, + 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, + 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, + 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, + 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, + 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, + 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, + 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, + 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, + 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, + 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, + 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, + 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, + 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, + 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, + 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, + 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, + 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, + 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, + 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, + 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, + 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, + 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, + 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, + 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, + 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, + 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, + 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, + 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, + 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, + 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, + 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, + 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, + 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, + 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, + 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, + 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, + 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, + 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, + 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, + 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, + 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, + 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, + 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, + 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, + 127,248,192,31,240,96,3,224,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,0,0,0,11,0,0,6, + 29,29,10,2,247,120,252,252,252,252,120,0,0,32,48,48, + 48,48,48,48,48,112,120,120,120,120,252,252,252,252,252,252, + 120,120,14,28,56,22,4,251,1,128,1,128,1,128,1,128, + 3,192,15,176,29,152,61,152,121,184,121,184,249,184,249,184, + 249,128,249,128,249,128,249,128,249,128,249,132,121,132,121,132, + 61,136,29,152,15,176,3,192,1,128,1,128,1,128,1,128, + 23,29,87,27,2,0,0,1,0,0,30,224,0,120,16,0, + 248,24,0,240,28,1,240,60,1,240,124,3,240,124,3,240, + 120,3,240,0,3,240,0,3,240,0,3,240,0,31,240,64, + 1,255,128,1,248,0,0,248,0,0,248,0,0,248,0,0, + 120,0,0,120,0,0,112,0,0,112,6,60,112,4,127,224, + 28,131,255,248,129,255,240,195,63,224,124,31,192,18,20,60, + 21,2,3,0,0,128,195,225,128,239,249,192,255,255,128,120, + 15,0,112,7,0,96,3,0,224,1,128,192,1,128,192,1, + 128,192,1,128,192,1,128,224,1,128,96,3,0,112,7,0, + 120,15,0,255,255,128,239,249,192,195,225,128,0,0,128,21, + 28,84,23,1,0,255,195,248,63,0,224,63,0,192,31,128, + 192,31,128,128,31,192,128,15,193,0,15,193,0,7,227,0, + 7,226,0,7,246,0,3,244,0,3,252,0,1,248,0,63, + 255,192,1,248,0,1,248,0,1,248,0,63,255,192,1,248, + 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, + 1,248,0,1,248,0,15,255,128,3,35,35,11,4,249,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, + 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,17,36,108,24,2,248,1,240,0,6,12,0,12,6, + 0,24,7,0,56,31,0,56,63,0,56,63,0,56,62,0, + 60,28,0,63,0,0,63,192,0,31,224,0,63,248,0,103, + 254,0,67,255,0,192,255,0,192,63,128,224,15,128,248,3, + 128,254,1,128,127,129,128,127,225,0,63,249,0,15,254,0, + 3,254,0,0,254,0,0,63,0,14,15,0,31,7,0,63, + 7,0,63,7,0,62,7,0,56,6,0,24,12,0,12,24, + 0,7,240,0,12,5,10,16,2,22,112,224,249,240,249,240, + 249,240,112,224,28,28,112,32,2,1,0,127,224,0,1,128, + 24,0,6,0,12,0,12,0,3,0,24,0,1,0,16,30, + 33,128,48,113,160,192,96,224,224,64,97,224,96,96,97,224, + 96,96,193,224,32,32,195,224,32,48,195,224,32,48,195,224, + 0,48,195,224,0,48,195,224,0,48,195,224,16,48,193,224, + 16,32,65,224,48,96,97,224,32,96,96,240,96,64,48,112, + 192,192,16,31,1,128,24,0,1,0,12,0,3,0,6,0, + 12,0,1,128,24,0,0,127,224,0,11,14,28,15,2,14, + 30,0,35,0,99,128,115,128,115,128,15,128,51,128,99,128, + 227,128,227,160,227,160,125,192,0,0,255,224,10,16,32,18, + 4,1,24,64,48,192,112,128,97,128,225,128,227,128,227,128, + 227,128,227,128,227,128,227,128,97,128,97,128,48,192,24,64, + 8,0,19,11,33,22,2,5,255,255,224,255,255,224,255,255, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,10,4,8,14,2,8,255, + 192,255,192,255,192,255,192,28,28,112,32,2,1,0,127,224, + 0,1,128,24,0,6,0,12,0,12,0,3,0,24,0,1, + 0,19,255,193,128,48,249,224,192,96,248,240,64,96,248,248, + 96,96,248,248,96,192,248,248,32,192,248,240,48,192,249,224, + 48,192,254,0,48,192,249,192,48,192,249,224,48,192,249,240, + 48,192,249,240,32,64,249,242,96,96,249,242,96,96,249,242, + 64,48,249,246,192,19,254,253,128,24,0,121,0,12,0,3, + 0,6,0,12,0,1,128,24,0,0,127,224,0,10,3,6, + 16,3,23,255,192,255,192,255,192,12,11,22,22,5,18,31, + 128,127,224,112,96,224,48,192,48,192,48,192,48,224,112,112, + 224,63,192,31,128,32,29,116,36,2,254,0,1,192,0,0, + 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, + 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, + 1,192,0,255,255,255,255,255,255,255,255,255,255,255,255,0, + 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, + 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, + 1,192,0,0,1,192,0,0,1,192,0,0,0,0,0,0, + 0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,11, + 17,34,17,3,11,31,0,99,192,225,224,225,224,241,224,241, + 224,115,192,7,128,14,0,28,0,48,32,96,32,64,96,255, + 224,255,224,143,192,135,128,12,18,36,16,2,10,31,0,51, + 192,97,224,113,224,121,224,121,224,1,192,3,128,30,0,3, + 192,1,224,1,240,121,240,249,240,241,240,225,224,99,192,31, + 0,7,7,7,17,7,21,14,30,30,60,120,96,192,19,30, + 90,22,2,245,112,28,0,112,28,0,248,62,0,248,62,0, + 248,62,0,248,62,0,248,62,0,240,62,0,240,62,0,240, + 62,0,112,28,0,112,28,0,96,28,32,96,24,32,32,56, + 96,32,127,224,61,255,192,47,231,192,39,195,192,32,0,0, + 32,0,0,112,0,0,112,0,0,120,0,0,120,0,0,124, + 0,0,124,0,0,124,0,0,124,0,0,56,0,0,18,33, + 99,23,3,251,15,255,192,63,206,0,127,206,0,127,206,0, + 255,206,0,255,206,0,255,206,0,255,206,0,255,206,0,255, + 206,0,255,206,0,255,206,0,127,206,0,63,206,0,7,206, + 0,1,206,0,1,206,0,1,206,0,1,206,0,1,206,0, + 1,206,0,1,206,0,1,206,0,1,206,0,1,206,0,1, + 206,0,1,206,0,1,206,0,1,206,0,1,206,0,1,206, + 0,1,206,0,1,206,0,6,6,6,10,2,10,120,252,252, + 252,252,120,7,8,8,17,5,248,32,32,56,12,14,14,14, + 252,8,17,17,16,4,11,12,28,252,60,60,60,60,60,60, + 60,60,60,60,60,60,60,255,10,14,28,14,2,14,30,0, + 51,0,115,128,243,192,243,192,243,192,243,192,243,192,243,192, + 115,128,51,0,30,0,0,0,255,192,10,16,32,18,4,1, + 6,0,131,0,195,0,97,128,97,128,113,192,113,192,113,192, + 113,192,113,192,97,192,97,128,65,128,195,0,134,0,4,0, + 28,29,116,34,4,0,0,0,12,0,12,0,12,0,28,0, + 24,0,252,0,24,0,60,0,48,0,60,0,32,0,60,0, + 96,0,60,0,192,0,60,0,192,0,60,1,128,0,60,1, + 128,0,60,3,0,0,60,2,3,128,60,6,3,128,60,12, + 7,128,60,12,15,128,60,24,15,128,255,24,31,128,0,48, + 23,128,0,32,39,128,0,96,103,128,0,192,71,128,0,192, + 199,128,1,128,255,240,1,128,7,128,3,0,7,128,2,0, + 7,128,6,0,7,128,12,0,63,240,27,29,116,34,4,0, + 0,0,12,0,12,0,24,0,28,0,24,0,252,0,48,0, + 60,0,48,0,60,0,96,0,60,0,96,0,60,0,192,0, + 60,1,128,0,60,1,128,0,60,3,0,0,60,3,31,0, + 60,6,115,192,60,6,225,224,60,12,225,224,60,8,241,224, + 255,24,241,224,0,48,115,192,0,48,3,128,0,96,7,0, + 0,96,14,0,0,192,24,0,0,128,48,32,1,128,64,32, + 3,0,64,96,3,0,191,224,6,0,255,224,6,0,159,192, + 12,0,135,128,30,29,116,34,2,0,0,0,3,0,31,0, + 3,0,51,192,6,0,97,224,4,0,113,224,12,0,121,224, + 8,0,121,224,24,0,1,192,48,0,3,128,48,0,30,0, + 96,0,3,192,64,0,1,224,192,0,49,240,128,224,249,241, + 128,224,249,243,1,224,225,226,3,224,99,230,3,224,63,132, + 5,224,0,12,5,224,0,8,9,224,0,16,25,224,0,48, + 17,224,0,32,49,224,0,96,63,252,0,64,1,224,0,192, + 1,224,0,128,1,224,1,0,1,224,3,0,15,252,12,29, + 58,18,3,247,30,0,63,0,63,0,63,0,63,0,30,0, + 0,0,14,0,17,0,32,128,32,128,32,128,1,128,3,0, + 3,0,6,0,14,0,28,0,60,96,120,32,120,48,248,16, + 248,16,248,16,248,16,248,48,124,96,63,192,31,128,26,37, + 148,29,2,0,0,224,0,0,0,240,0,0,0,240,0,0, + 0,120,0,0,0,56,0,0,0,12,0,0,0,6,0,0, + 0,0,0,0,0,4,0,0,0,6,0,0,0,14,0,0, + 0,14,0,0,0,15,0,0,0,31,0,0,0,31,0,0, + 0,31,128,0,0,63,128,0,0,47,128,0,0,47,192,0, + 0,111,192,0,0,79,192,0,0,71,192,0,0,199,224,0, + 0,135,224,0,0,131,224,0,1,131,240,0,1,3,240,0, + 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, + 6,0,252,0,4,0,252,0,12,0,252,0,12,0,124,0, + 30,0,254,0,255,199,255,192,26,37,148,29,2,0,0,0, + 224,0,0,0,224,0,0,1,224,0,0,3,192,0,0,3, + 128,0,0,6,0,0,0,12,0,0,0,0,0,0,0,4, + 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,31, + 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, + 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, + 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, + 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, + 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, + 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, + 255,192,26,37,148,29,2,0,0,4,0,0,0,14,0,0, + 0,14,0,0,0,31,0,0,0,59,128,0,0,224,192,0, + 1,128,48,0,0,0,0,0,0,4,0,0,0,6,0,0, + 0,14,0,0,0,14,0,0,0,15,0,0,0,31,0,0, + 0,31,0,0,0,31,128,0,0,63,128,0,0,47,128,0, + 0,47,192,0,0,111,192,0,0,79,192,0,0,71,192,0, + 0,199,224,0,0,135,224,0,0,131,224,0,1,131,240,0, + 1,3,240,0,3,1,240,0,3,255,248,0,2,1,248,0, + 6,0,248,0,6,0,252,0,4,0,252,0,12,0,252,0, + 12,0,124,0,30,0,254,0,255,199,255,192,26,36,144,29, + 2,0,0,56,32,0,0,126,32,0,0,255,224,0,0,143, + 192,0,0,131,128,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, + 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, + 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, + 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, + 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, + 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, + 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, + 255,192,26,36,144,29,2,0,0,224,224,0,1,241,240,0, + 1,241,240,0,1,241,240,0,0,224,224,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,14,0,0,0,14,0,0, + 0,14,0,0,0,31,0,0,0,31,0,0,0,31,0,0, + 0,63,128,0,0,63,128,0,0,63,128,0,0,111,192,0, + 0,111,192,0,0,79,192,0,0,199,192,0,0,199,224,0, + 0,135,224,0,1,131,224,0,1,131,240,0,1,3,240,0, + 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, + 6,0,252,0,4,0,252,0,12,0,124,0,12,0,124,0, + 30,0,126,0,255,199,255,192,26,37,148,29,2,0,0,31, + 0,0,0,63,128,0,0,97,192,0,0,96,192,0,0,96, + 192,0,0,113,192,0,0,63,128,0,0,30,0,0,0,0, + 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, + 0,0,0,31,0,0,0,31,0,0,0,31,128,0,0,63, + 128,0,0,63,128,0,0,47,128,0,0,111,192,0,0,79, + 192,0,0,71,192,0,0,135,224,0,0,135,224,0,0,131, + 224,0,1,3,240,0,1,3,240,0,3,1,240,0,3,255, + 248,0,2,1,248,0,6,0,248,0,4,0,252,0,4,0, + 252,0,12,0,252,0,12,0,124,0,28,0,254,0,255,199, + 255,192,36,28,140,38,1,0,0,7,255,255,224,0,1,254, + 3,224,0,1,254,1,224,0,1,254,0,224,0,1,254,0, + 224,0,3,126,0,96,0,3,126,0,96,0,6,126,0,32, + 0,6,126,4,32,0,12,126,4,0,0,12,126,12,0,0, + 24,126,12,0,0,24,126,28,0,0,48,127,252,0,0,48, + 126,60,0,0,96,126,28,0,0,96,126,12,0,0,192,126, + 4,48,0,192,126,4,48,1,255,254,4,48,1,128,126,0, + 48,3,0,126,0,112,3,0,126,0,112,6,0,126,0,240, + 6,0,126,0,240,14,0,126,1,240,63,0,126,7,240,255, + 199,255,255,240,21,37,111,26,3,248,1,254,48,7,3,48, + 14,1,240,30,0,240,60,0,240,60,0,112,124,0,112,124, + 0,48,124,0,48,252,0,48,252,0,48,252,0,16,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,24, + 252,0,24,124,0,16,124,0,16,124,0,16,60,0,48,60, + 0,32,30,0,96,14,0,192,7,1,128,1,254,0,0,32, + 0,0,96,0,0,120,0,0,28,0,0,14,0,0,14,0, + 0,14,0,2,28,0,1,248,0,22,37,111,26,2,0,1, + 128,0,1,192,0,1,224,0,0,224,0,0,112,0,0,24, + 0,0,8,0,0,0,0,0,0,0,255,255,252,15,192,124, + 15,192,60,15,192,28,15,192,28,15,192,12,15,192,12,15, + 192,12,15,193,4,15,193,0,15,195,0,15,195,0,15,199, + 0,15,255,0,15,199,0,15,195,0,15,195,0,15,193,4, + 15,193,4,15,193,4,15,192,12,15,192,12,15,192,12,15, + 192,28,15,192,28,15,192,60,15,192,252,255,255,252,22,37, + 111,26,2,0,0,1,192,0,3,192,0,3,192,0,7,128, + 0,14,0,0,12,0,0,24,0,0,0,0,0,0,0,255, + 255,252,15,192,124,15,192,60,15,192,28,15,192,28,15,192, + 12,15,192,12,15,192,4,15,193,4,15,193,0,15,195,0, + 15,195,0,15,199,0,15,255,0,15,199,0,15,195,0,15, + 195,0,15,193,4,15,193,4,15,193,4,15,192,4,15,192, + 12,15,192,12,15,192,28,15,192,28,15,192,60,15,192,252, + 255,255,252,22,37,111,26,2,0,0,8,0,0,24,0,0, + 60,0,0,126,0,0,231,0,1,193,128,3,0,64,0,0, + 0,0,0,0,255,255,252,15,192,124,15,192,60,15,192,28, + 15,192,28,15,192,12,15,192,12,15,192,12,15,193,4,15, + 193,0,15,195,0,15,195,0,15,199,0,15,255,0,15,199, + 0,15,195,0,15,195,0,15,193,4,15,193,4,15,193,4, + 15,192,12,15,192,12,15,192,12,15,192,28,15,192,28,15, + 192,60,15,192,252,255,255,252,22,36,108,26,2,0,1,193, + 192,3,227,224,3,227,224,3,227,224,1,193,192,0,0,0, + 0,0,0,0,0,0,255,255,252,15,192,124,15,192,60,15, + 192,28,15,192,28,15,192,12,15,192,12,15,192,4,15,193, + 4,15,193,0,15,195,0,15,195,0,15,199,0,15,255,0, + 15,199,0,15,195,0,15,195,0,15,193,4,15,193,4,15, + 193,4,15,192,4,15,192,12,15,192,12,15,192,28,15,192, + 28,15,192,60,15,192,252,255,255,252,13,37,74,17,2,0, + 96,0,112,0,120,0,56,0,28,0,14,0,2,0,0,0, + 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, + 0,112,0,240,1,240,1,224,3,128,7,0,4,0,0,0, + 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, + 6,0,6,0,15,0,31,128,57,192,112,112,192,24,0,0, + 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,255,248,13,36,72,16,2,0, + 112,112,248,248,248,248,248,248,112,112,0,0,0,0,0,0, + 255,248,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,255,248,25,28,112,29,2,0,255,255, + 128,0,31,128,224,0,31,128,112,0,31,128,56,0,31,128, + 60,0,31,128,30,0,31,128,30,0,31,128,31,0,31,128, + 31,0,31,128,31,0,31,128,31,128,31,128,31,128,31,128, + 31,128,255,248,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,0,31,128,31,0,31,128, + 31,0,31,128,30,0,31,128,30,0,31,128,60,0,31,128, + 56,0,31,128,112,0,31,128,224,0,255,255,128,0,27,36, + 144,30,2,0,0,24,0,0,0,62,32,0,0,127,224,0, + 0,71,192,0,0,1,128,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,128,255,224,31,192,63,0,31,192,30,0, + 15,224,12,0,7,240,12,0,7,240,12,0,7,248,12,0, + 7,248,12,0,6,252,12,0,6,254,12,0,6,126,12,0, + 6,63,12,0,6,63,140,0,6,31,140,0,6,31,204,0, + 6,15,236,0,6,7,236,0,6,7,252,0,6,3,252,0, + 6,1,252,0,6,1,252,0,6,0,252,0,6,0,252,0, + 6,0,124,0,6,0,60,0,15,0,60,0,31,128,28,0, + 255,224,12,0,22,37,111,27,3,1,7,128,0,7,128,0, + 3,192,0,1,192,0,0,224,0,0,112,0,0,16,0,0, + 0,0,0,0,0,1,254,0,3,3,0,6,1,128,14,1, + 192,28,0,224,60,0,240,60,0,240,124,0,248,124,0,248, + 124,0,248,252,0,252,252,0,252,252,0,252,252,0,252,252, + 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, + 248,124,0,248,60,0,240,60,0,240,28,0,224,14,1,192, + 6,1,128,3,3,0,1,254,0,22,37,111,27,3,1,0, + 7,128,0,7,128,0,15,0,0,14,0,0,28,0,0,56, + 0,0,32,0,0,0,0,0,0,0,1,254,0,3,3,0, + 6,1,128,14,1,192,28,0,224,60,0,240,60,0,240,124, + 0,248,124,0,248,124,0,248,252,0,252,252,0,252,252,0, + 252,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, + 124,0,248,124,0,248,124,0,248,60,0,240,60,0,240,28, + 0,224,14,1,192,6,1,128,3,3,0,1,254,0,22,37, + 111,27,3,0,0,48,0,0,48,0,0,120,0,0,252,0, + 1,206,0,3,135,0,6,1,128,0,0,0,0,0,0,1, + 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, + 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, + 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, + 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,0, + 240,60,0,240,28,0,224,14,1,192,6,1,128,3,3,0, + 1,254,0,22,36,108,27,3,0,1,192,128,3,241,128,3, + 255,0,4,63,0,4,12,0,0,0,0,0,0,0,0,0, + 0,1,254,0,3,3,0,6,1,128,14,1,192,28,0,224, + 60,0,240,60,0,240,124,0,248,124,0,248,124,0,248,252, + 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, + 252,252,0,252,252,0,252,124,0,248,124,0,248,124,0,248, + 60,0,240,60,0,240,28,0,224,14,1,192,6,1,128,3, + 3,0,1,254,0,22,36,108,27,3,0,3,131,128,7,199, + 192,7,199,192,7,199,192,3,131,128,0,0,0,0,0,0, + 0,0,0,1,254,0,3,3,0,6,1,128,14,1,192,28, + 0,224,60,0,240,60,0,240,124,0,248,124,0,248,124,0, + 248,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, + 252,0,252,252,0,252,252,0,252,124,0,248,124,0,248,124, + 0,248,60,0,240,60,0,240,28,0,224,14,1,192,6,1, + 128,3,3,0,1,254,0,24,25,75,36,6,254,64,0,2, + 224,0,7,240,0,14,120,0,28,60,0,60,30,0,120,15, + 0,240,7,129,224,3,195,192,1,231,128,0,239,0,0,126, + 0,0,60,0,0,124,0,0,254,0,1,231,0,3,195,128, + 7,129,192,15,0,224,30,0,112,60,0,56,120,0,28,112, + 0,14,224,0,7,192,0,2,22,28,84,27,3,1,1,254, + 12,3,3,152,6,3,208,14,1,240,28,1,224,60,1,240, + 60,1,240,124,1,248,124,3,248,124,6,248,252,14,252,252, + 12,252,252,24,252,252,56,252,252,112,252,252,96,252,252,192, + 252,253,192,252,125,128,248,127,0,248,126,0,248,62,0,240, + 62,0,240,30,0,224,62,1,192,46,1,128,103,3,0,193, + 254,0,26,37,148,30,3,1,0,224,0,0,0,240,0,0, + 0,120,0,0,0,56,0,0,0,28,0,0,0,12,0,0, + 0,6,0,0,0,0,0,0,0,0,0,0,255,240,127,192, + 31,128,31,0,31,128,14,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,15,128,12,0,15,192,12,0,7,192,24,0, + 7,224,56,0,1,252,240,0,0,255,192,0,26,37,148,30, + 3,1,0,0,224,0,0,1,224,0,0,1,224,0,0,3, + 192,0,0,7,0,0,0,6,0,0,0,12,0,0,0,0, + 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, + 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, + 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, + 240,0,0,255,192,0,26,37,148,30,3,0,0,4,0,0, + 0,14,0,0,0,31,0,0,0,31,128,0,0,59,192,0, + 0,224,224,0,1,128,48,0,0,0,0,0,0,0,0,0, + 255,240,127,192,31,128,31,0,31,128,14,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, + 31,128,6,0,31,128,6,0,15,128,4,0,15,128,12,0, + 7,192,24,0,7,224,24,0,1,240,112,0,0,255,192,0, + 26,36,144,30,3,0,0,224,224,0,1,241,240,0,1,241, + 240,0,1,241,240,0,0,224,224,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, + 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, + 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, + 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, + 240,0,0,255,192,0,25,37,148,28,2,0,0,0,224,0, + 0,0,224,0,0,1,224,0,0,3,192,0,0,3,128,0, + 0,6,0,0,0,12,0,0,0,0,0,0,0,0,0,0, + 255,240,255,128,31,192,60,0,31,192,24,0,15,192,24,0, + 15,224,24,0,7,224,16,0,7,224,48,0,3,240,32,0, + 3,240,32,0,1,248,96,0,1,248,64,0,1,252,64,0, + 0,252,192,0,0,254,128,0,0,127,128,0,0,127,128,0, + 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, + 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, + 0,63,0,0,0,63,0,0,0,63,0,0,1,255,224,0, + 23,28,84,27,2,0,255,248,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,255,128,31,129,224,31,128,248,31,128, + 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, + 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, + 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,255,248,0,19,28,84,22,1,0, + 0,248,0,3,156,0,7,142,0,15,15,0,15,15,0,15, + 15,0,31,15,0,31,15,0,31,14,0,31,28,0,31,112, + 0,31,12,0,31,7,0,31,7,128,31,3,192,31,3,192, + 31,3,192,31,3,224,31,3,224,31,3,224,31,3,224,31, + 3,224,31,115,224,31,243,192,31,243,192,31,227,128,31,103, + 0,255,62,0,17,28,84,20,2,0,56,0,0,60,0,0, + 60,0,0,30,0,0,14,0,0,3,0,0,1,0,0,0, + 0,0,0,0,0,15,192,0,24,240,0,48,120,0,112,120, + 0,124,124,0,124,124,0,56,124,0,1,252,0,14,124,0, + 28,124,0,56,124,0,120,124,0,248,124,0,248,124,128,248, + 124,128,248,124,128,252,253,128,127,191,0,62,30,0,17,28, + 84,20,2,0,0,48,0,0,112,0,0,240,0,0,224,0, + 1,192,0,1,128,0,3,0,0,0,0,0,0,0,0,15, + 192,0,24,240,0,48,120,0,112,120,0,124,124,0,124,124, + 0,124,124,0,0,252,0,7,124,0,28,124,0,56,124,0, + 120,124,0,248,124,0,248,124,128,248,124,128,248,124,128,252, + 253,128,127,191,0,62,30,0,17,28,84,20,2,0,3,0, + 0,3,128,0,7,128,0,7,192,0,12,224,0,24,112,0, + 48,24,0,0,0,0,0,0,0,15,192,0,24,240,0,48, + 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, + 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, + 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, + 30,0,17,27,81,20,2,0,14,8,0,31,152,0,63,240, + 0,35,240,0,32,224,0,0,0,0,0,0,0,0,0,0, + 15,192,0,24,240,0,48,120,0,112,120,0,124,124,0,124, + 124,0,124,124,0,0,252,0,7,124,0,28,124,0,56,124, + 0,120,124,0,248,124,0,248,124,128,248,124,128,248,124,128, + 252,253,128,127,191,0,62,30,0,17,27,81,20,2,0,56, + 112,0,124,248,0,124,248,0,124,248,0,56,112,0,0,0, + 0,0,0,0,0,0,0,15,192,0,24,240,0,48,120,0, + 112,120,0,124,124,0,124,124,0,124,124,0,0,252,0,7, + 124,0,28,124,0,56,124,0,120,124,0,248,124,0,248,124, + 128,248,124,128,248,124,128,252,253,128,127,191,0,62,30,0, + 17,28,84,20,2,1,15,192,0,12,192,0,24,96,0,24, + 96,0,24,96,0,28,224,0,15,192,0,7,128,0,0,0, + 0,15,192,0,16,240,0,48,120,0,112,120,0,120,124,0, + 124,124,0,124,124,0,0,252,0,7,124,0,28,124,0,56, + 124,0,120,124,0,248,124,0,248,124,128,248,124,128,248,124, + 128,252,253,128,127,255,0,62,62,0,23,19,57,27,2,0, + 15,195,224,24,238,112,48,124,56,112,124,60,120,124,60,124, + 124,62,124,124,62,24,124,62,3,252,62,14,127,254,60,124, + 0,120,124,0,248,124,2,248,124,2,248,124,2,248,124,4, + 252,222,4,127,143,8,63,3,240,14,27,54,18,2,248,7, + 224,14,48,60,24,60,28,120,60,120,124,248,124,248,120,248, + 48,248,0,248,0,248,0,248,0,120,4,120,4,56,4,60, + 8,30,16,7,224,2,0,2,0,3,128,0,192,0,224,0, + 224,0,224,7,128,14,28,56,18,2,0,56,0,56,0,60, + 0,30,0,14,0,7,0,1,0,0,0,0,0,7,192,28, + 224,56,112,56,120,120,120,120,124,248,124,248,124,248,124,255, + 252,248,0,248,0,248,4,120,4,120,4,56,8,60,24,30, + 48,7,192,14,28,56,18,2,0,0,112,0,112,0,240,1, + 224,1,192,3,128,2,0,0,0,0,0,7,192,28,224,56, + 112,56,120,120,120,120,124,248,124,248,124,255,252,248,0,248, + 0,248,0,248,4,120,4,120,12,56,8,60,24,30,48,7, + 192,14,28,56,18,2,0,3,0,7,128,7,128,15,192,12, + 192,24,96,48,56,0,0,0,0,7,192,28,224,56,112,56, + 120,120,120,120,124,248,124,248,124,248,124,255,252,248,0,248, + 0,248,0,120,4,120,4,56,8,60,8,30,16,7,224,14, + 27,54,18,2,0,56,112,124,248,124,248,124,248,56,112,0, + 0,0,0,0,0,7,192,28,224,56,112,56,120,120,120,120, + 124,248,124,248,124,248,124,255,252,248,0,248,0,248,0,120, + 4,120,12,56,8,60,24,30,48,7,192,10,28,56,12,1, + 0,224,0,240,0,248,0,120,0,28,0,14,0,2,0,0, + 0,0,0,127,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,127,192,9,28,56,12,2,0,1, + 128,3,128,7,128,15,0,14,0,28,0,16,0,0,0,0, + 0,254,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,255,128,11,28,56,11,1,0,14,0,30, + 0,31,0,63,0,115,128,224,192,128,96,0,0,0,0,127, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,127,192,11,27,54,12,1,0,113,192,251,224,251, + 224,251,224,113,192,0,0,0,0,0,0,127,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,127, + 192,16,28,56,20,2,0,31,8,15,184,7,224,7,224,7, + 224,13,240,16,248,0,248,0,124,7,252,30,126,60,62,56, + 62,120,30,120,31,248,31,248,31,248,31,248,31,248,31,248, + 31,248,30,120,30,120,30,56,60,60,60,12,112,7,224,19, + 27,81,22,2,0,0,2,0,7,194,0,15,254,0,15,252, + 0,8,120,0,0,0,0,0,0,0,0,0,0,254,60,0, + 62,222,0,63,15,0,63,15,128,63,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,255,191,224,16,28,56,20,2,0,24,0,28,0, + 30,0,15,0,7,0,3,128,0,192,0,0,0,0,7,192, + 12,112,28,56,56,60,120,30,120,30,248,30,248,31,248,31, + 248,31,248,31,248,31,248,30,120,30,120,30,56,60,28,56, + 12,112,7,192,16,28,56,20,2,0,0,56,0,56,0,120, + 0,240,0,224,1,192,3,0,0,0,0,0,7,192,12,112, + 28,56,56,60,120,30,120,30,248,30,248,31,248,31,248,31, + 248,31,248,31,248,30,120,30,120,30,56,60,28,56,12,112, + 7,192,16,28,56,20,2,0,3,128,3,192,3,192,7,224, + 14,112,28,56,48,12,0,0,0,0,7,192,12,112,28,56, + 56,60,120,30,120,30,248,30,248,31,248,31,248,31,248,31, + 248,31,248,30,120,30,120,30,56,60,28,56,12,112,7,192, + 16,27,54,20,2,0,14,4,31,140,31,248,35,248,32,112, + 0,0,0,0,0,0,7,192,12,112,28,56,56,60,120,30, + 120,30,248,30,248,31,248,31,248,31,248,31,248,31,248,30, + 120,30,120,30,56,60,28,56,12,112,7,192,16,27,54,20, + 2,0,28,56,62,124,62,124,62,124,28,56,0,0,0,0, + 0,0,7,192,12,112,28,56,56,60,120,30,120,30,248,30, + 248,31,248,31,248,31,248,31,248,31,248,30,120,30,120,30, + 56,60,28,56,12,112,7,192,33,26,130,37,2,253,0,3, + 192,0,0,0,7,224,0,0,0,7,224,0,0,0,7,224, + 0,0,0,7,224,0,0,0,3,192,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,255,255,255,128,255,255,255,255,128,255, + 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,3,192,0,0,0,7,224,0,0,0,7,224,0, + 0,0,7,224,0,0,0,7,224,0,0,0,3,192,0,0, + 16,19,38,20,2,0,7,225,12,114,28,60,56,60,120,62, + 120,62,248,126,248,95,248,223,249,159,251,31,254,31,252,30, + 124,30,120,30,60,28,124,56,78,48,135,192,19,28,84,21, + 1,0,12,0,0,30,0,0,15,0,0,7,0,0,3,128, + 0,1,192,0,0,64,0,0,0,0,0,0,0,254,63,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, + 128,62,15,128,62,15,128,62,31,128,62,31,128,30,47,128, + 31,79,128,7,143,224,19,28,84,21,1,0,0,28,0,0, + 60,0,0,60,0,0,120,0,0,224,0,0,192,0,1,128, + 0,0,0,0,0,0,0,254,63,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, + 128,62,31,128,62,31,128,30,47,128,30,79,128,7,143,224, + 19,28,84,21,1,0,1,192,0,1,224,0,3,224,0,3, + 240,0,7,56,0,12,28,0,24,4,0,0,0,0,0,0, + 0,254,63,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,62,15,128,62,31,128,62,31, + 128,30,47,128,30,79,128,7,143,224,19,27,81,21,1,0, + 28,28,0,62,62,0,62,62,0,62,62,0,28,28,0,0, + 0,0,0,0,0,0,0,0,254,63,128,62,15,128,62,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,31,128,62,31,128,30,47,128,30,79,128,7,143, + 224,18,37,111,19,0,247,0,14,0,0,30,0,0,30,0, + 0,60,0,0,48,0,0,96,0,0,192,0,0,0,0,0, + 0,0,255,207,192,63,3,0,31,3,0,31,2,0,15,2, + 0,15,130,0,15,132,0,7,196,0,7,196,0,3,196,0, + 3,232,0,3,232,0,1,248,0,1,240,0,0,240,0,0, + 240,0,0,96,0,0,96,0,0,96,0,0,32,0,0,64, + 0,12,64,0,30,64,0,62,128,0,62,128,0,60,128,0, + 29,0,0,14,0,0,18,36,108,20,0,247,3,0,0,15, + 0,0,63,0,0,223,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,31,0,31,63,128,31,71,128,31,135,192, + 31,135,192,31,7,192,31,7,192,31,7,192,31,7,128,31, + 7,128,31,15,0,31,15,0,31,14,0,31,12,0,31,24, + 0,31,48,0,31,96,0,31,128,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,30, + 0,0,56,0,0,224,0,0,19,36,108,20,0,247,7,14, + 0,15,159,0,15,159,0,15,159,0,7,14,0,0,0,0, + 0,0,0,0,0,0,255,207,224,63,3,0,31,3,0,31, + 2,0,15,2,0,15,130,0,15,132,0,7,196,0,7,196, + 0,3,196,0,3,232,0,3,232,0,1,248,0,1,240,0, + 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, + 32,0,0,64,0,12,64,0,30,64,0,62,64,0,62,128, + 0,60,128,0,29,0,0,14,0,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 28 + Calculated Max Values w=33 h=37 x= 5 y=12 dx=37 dy= 0 ascent=29 len=165 + Font Bounding box w=107 h=49 x=-33 y=-11 + Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 + Pure Font ascent =28 descent= 0 + X Font ascent =28 descent= 0 + Max Font ascent =29 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb29n[1232] U8G_SECTION(".progmem.u8g_font_osb29n") = { + 0,107,49,223,245,28,0,0,0,0,42,57,0,29,248,28, + 0,14,16,32,19,3,12,3,0,7,128,7,128,199,24,227, + 60,242,124,122,248,7,128,7,128,250,248,242,124,227,60,199, + 24,7,128,7,128,3,0,33,33,165,37,2,251,0,1,192, + 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, + 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,255,255,255,255,128,255,255,255, + 255,128,255,255,255,255,128,0,1,192,0,0,0,1,192,0, + 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, + 0,0,7,13,13,10,2,249,120,252,252,254,254,126,6,4, + 4,8,24,96,192,10,4,8,14,2,8,255,192,255,192,255, + 192,255,192,6,6,6,10,2,0,120,252,252,252,252,120,13, + 37,74,17,2,248,0,24,0,56,0,56,0,48,0,112,0, + 112,0,96,0,96,0,224,0,224,0,192,1,192,1,192,1, + 128,3,128,3,128,3,128,3,0,7,0,7,0,6,0,14, + 0,14,0,12,0,12,0,28,0,28,0,24,0,56,0,56, + 0,48,0,112,0,112,0,112,0,96,0,224,0,224,0,18, + 28,84,22,2,1,3,240,0,14,28,0,14,28,0,28,14, + 0,60,15,0,60,15,0,124,15,128,124,15,128,124,15,128, + 252,15,192,252,15,192,252,15,192,252,15,192,252,15,192,252, + 15,192,252,15,192,252,15,192,252,15,192,252,15,192,124,15, + 128,124,15,128,124,15,128,60,15,0,60,15,0,28,14,0, + 12,28,0,14,28,0,3,240,0,13,28,56,22,5,0,3, + 128,7,128,15,128,255,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,255,248,17,28,84,22,2,1,15,248,0, + 24,62,0,48,63,0,112,31,0,240,31,128,240,31,128,252, + 31,128,252,31,128,254,31,128,126,63,0,60,63,0,0,126, + 0,0,252,0,0,248,0,1,224,0,3,128,0,6,0,0, + 12,0,128,24,0,128,16,0,128,32,0,128,47,1,128,127, + 255,128,127,255,128,71,255,0,67,255,0,65,254,0,64,252, + 0,17,28,84,22,2,1,15,248,0,24,62,0,48,63,0, + 48,31,0,112,31,128,120,31,128,124,31,128,124,31,128,124, + 31,128,60,31,0,0,31,0,0,62,0,0,120,0,15,192, + 0,0,120,0,0,62,0,0,63,0,0,31,0,16,31,128, + 124,31,128,252,31,128,252,31,128,252,31,128,248,31,128,240, + 63,0,112,62,0,56,124,0,31,248,0,18,28,84,22,2, + 0,0,124,0,0,124,0,0,252,0,0,252,0,1,252,0, + 1,252,0,3,252,0,3,252,0,6,252,0,6,252,0,12, + 252,0,12,252,0,24,252,0,24,252,0,48,252,0,48,252, + 0,96,252,0,96,252,0,192,252,0,255,255,192,0,252,0, + 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,15,255,192,17,29,87,22,3,0,0,6,0,112,28, + 0,127,252,0,127,248,0,127,224,0,127,192,0,126,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, + 120,0,112,62,0,96,62,0,96,31,0,0,31,0,0,31, + 128,0,31,128,56,31,128,124,31,128,252,31,128,252,31,128, + 248,31,0,240,31,0,224,30,0,96,62,0,48,124,0,31, + 240,0,18,29,87,22,3,0,0,32,0,3,220,0,7,6, + 0,14,6,0,30,15,0,60,31,0,60,63,0,124,63,0, + 124,62,0,124,28,0,252,0,0,252,0,0,252,0,0,253, + 248,0,255,30,0,254,31,0,252,15,128,252,15,128,252,15, + 192,252,15,192,252,15,192,124,15,192,124,15,192,124,15,192, + 60,15,128,28,15,128,30,15,0,14,30,0,3,252,0,17, + 28,84,22,3,0,103,135,0,111,199,0,127,227,128,127,241, + 128,127,249,128,127,255,128,96,125,128,64,1,0,64,3,0, + 64,3,0,192,6,0,0,4,0,0,12,0,0,24,0,0, + 56,0,0,112,0,0,112,0,0,240,0,1,240,0,3,224, + 0,3,224,0,3,224,0,7,224,0,7,224,0,7,224,0, + 7,224,0,7,224,0,3,192,0,19,29,87,22,2,0,0, + 64,0,7,184,0,28,6,0,56,3,0,112,1,0,112,1, + 128,240,1,128,240,1,128,248,1,128,252,3,0,255,2,0, + 127,196,0,127,248,0,63,252,0,31,255,0,15,255,128,27, + 255,128,48,255,192,96,63,192,96,15,192,224,3,224,224,1, + 192,224,1,192,224,1,192,224,1,192,112,1,128,56,1,0, + 28,6,0,15,252,0,18,28,84,22,3,1,15,240,0,30, + 28,0,60,30,0,124,14,0,124,15,0,252,15,128,252,15, + 128,252,15,128,252,15,128,252,15,192,252,15,192,124,15,192, + 124,15,192,62,31,192,30,63,192,7,239,192,0,15,192,0, + 15,192,0,15,192,30,15,128,31,15,128,63,15,128,63,15, + 0,62,15,0,56,30,0,24,28,0,24,56,0,15,240,0 + }; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 29, '1' Height: 28 + Calculated Max Values w=38 h=37 x= 5 y=21 dx=41 dy= 0 ascent=31 len=165 + Font Bounding box w=107 h=49 x=-33 y=-11 + Calculated Min Values x=-2 y=-9 dx= 0 dy= 0 + Pure Font ascent =29 descent=-9 + X Font ascent =29 descent=-9 + Max Font ascent =31 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb29r[7481] U8G_SECTION(".progmem.u8g_font_osb29r") = { + 0,107,49,223,245,29,9,166,21,115,32,127,247,31,247,29, + 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, + 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, + 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, + 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, + 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, + 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, + 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, + 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, + 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, + 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, + 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, + 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, + 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, + 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, + 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, + 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, + 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, + 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, + 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, + 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, + 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, + 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, + 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, + 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, + 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, + 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, + 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, + 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, + 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, + 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, + 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, + 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, + 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, + 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, + 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, + 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, + 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, + 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, + 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, + 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, + 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, + 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, + 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, + 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, + 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, + 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, + 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, + 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, + 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, + 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, + 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, + 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, + 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, + 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, + 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, + 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, + 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, + 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, + 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, + 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, + 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, + 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, + 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, + 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, + 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, + 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, + 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, + 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, + 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, + 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, + 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, + 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, + 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, + 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, + 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, + 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, + 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, + 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, + 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, + 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, + 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, + 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, + 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,103,224,0,104,120, + 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, + 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, + 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, + 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, + 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, + 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, + 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, + 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, + 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, + 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, + 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, + 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, + 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, + 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, + 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, + 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, + 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, + 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, + 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, + 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, + 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, + 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, + 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, + 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, + 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, + 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, + 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, + 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, + 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, + 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, + 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, + 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, + 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, + 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, + 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, + 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, + 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, + 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, + 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, + 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, + 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, + 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, + 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, + 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, + 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, + 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, + 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, + 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, + 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, + 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, + 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, + 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, + 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, + 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, + 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, + 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, + 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, + 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, + 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, + 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, + 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, + 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, + 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, + 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, + 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, + 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, + 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, + 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, + 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, + 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, + 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, + 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, + 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, + 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, + 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, + 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, + 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, + 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, + 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, + 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, + 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, + 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, + 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, + 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, + 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, + 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, + 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, + 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, + 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, + 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, + 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, + 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, + 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, + 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, + 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, + 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, + 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, + 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, + 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, + 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, + 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, + 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, + 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, + 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, + 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, + 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, + 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, + 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, + 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, + 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, + 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, + 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, + 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, + 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, + 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, + 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, + 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, + 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, + 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, + 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, + 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, + 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, + 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, + 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, + 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, + 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, + 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, + 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, + 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, + 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, + 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, + 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, + 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, + 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, + 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, + 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, + 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, + 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, + 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, + 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, + 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, + 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, + 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, + 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, + 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, + 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, + 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, + 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, + 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, + 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, + 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, + 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, + 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, + 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, + 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, + 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, + 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, + 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, + 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, + 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, + 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, + 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, + 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, + 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, + 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, + 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, + 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, + 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, + 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, + 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, + 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, + 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, + 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, + 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, + 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, + 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, + 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, + 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, + 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, + 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, + 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, + 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, + 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, + 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, + 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, + 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, + 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, + 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, + 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, + 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, + 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, + 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, + 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, + 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, + 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, + 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, + 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, + 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, + 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, + 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, + 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, + 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, + 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, + 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, + 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, + 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, + 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, + 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, + 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, + 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, + 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, + 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, + 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, + 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, + 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, + 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, + 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, + 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, + 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, + 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, + 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, + 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, + 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, + 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, + 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, + 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, + 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, + 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, + 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, + 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, + 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, + 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, + 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, + 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, + 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, + 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, + 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, + 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, + 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, + 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, + 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, + 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, + 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, + 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, + 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, + 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, + 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, + 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, + 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, + 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, + 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, + 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, + 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, + 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, + 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, + 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, + 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, + 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, + 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, + 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, + 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, + 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, + 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, + 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, + 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, + 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, + 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, + 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, + 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, + 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, + 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, + 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, + 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, + 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, + 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, + 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, + 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, + 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, + 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, + 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, + 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, + 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, + 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, + 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, + 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, + 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, + 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, + 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, + 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, + 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, + 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, + 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, + 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, + 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, + 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, + 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, + 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, + 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, + 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, + 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, + 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, + 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, + 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, + 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, + 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, + 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, + 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, + 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, + 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, + 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, + 127,248,192,31,240,96,3,224,255}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 35, '1' Height: 34 + Calculated Max Values w=49 h=46 x= 9 y=28 dx=52 dy= 0 ascent=45 len=246 + Font Bounding box w=133 h=60 x=-41 y=-14 + Calculated Min Values x=-2 y=-12 dx= 0 dy= 0 + Pure Font ascent =35 descent=-10 + X Font ascent =35 descent=-10 + Max Font ascent =45 descent=-12 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb35[22095] U8G_SECTION(".progmem.u8g_font_osb35") = { + 0,133,60,215,242,35,12,218,29,222,32,255,246,45,244,35, + 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, + 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, + 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, + 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, + 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, + 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, + 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, + 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, + 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, + 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, + 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, + 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, + 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, + 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, + 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, + 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, + 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, + 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, + 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, + 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, + 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, + 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, + 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, + 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, + 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, + 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, + 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, + 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, + 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, + 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, + 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, + 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, + 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, + 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, + 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, + 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, + 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, + 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, + 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, + 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, + 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, + 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, + 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, + 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, + 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, + 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, + 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, + 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, + 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, + 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, + 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, + 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, + 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, + 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, + 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, + 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, + 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, + 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, + 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, + 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, + 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, + 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, + 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, + 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, + 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, + 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, + 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, + 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, + 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, + 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, + 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, + 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, + 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, + 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, + 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, + 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, + 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, + 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, + 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, + 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, + 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, + 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, + 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, + 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, + 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, + 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, + 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, + 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, + 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, + 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, + 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, + 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, + 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, + 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, + 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, + 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, + 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, + 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, + 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, + 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, + 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, + 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, + 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, + 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, + 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, + 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, + 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, + 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, + 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, + 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, + 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, + 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, + 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, + 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, + 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, + 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, + 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, + 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, + 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, + 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, + 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, + 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, + 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, + 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, + 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, + 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, + 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, + 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, + 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, + 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, + 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, + 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, + 0,0,0,0,0,0,126,255,255,255,255,126,9,31,62,13, + 2,248,63,0,127,128,127,128,127,128,127,128,63,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,126,0,255,0,255,128,255,128,255,128,127,128,1,128, + 1,128,1,128,3,0,3,0,6,0,28,0,56,0,96,0, + 37,40,200,45,4,249,0,0,0,0,48,0,0,0,0,240, + 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, + 0,0,126,0,0,0,1,252,0,0,0,7,240,0,0,0, + 15,192,0,0,0,63,0,0,0,0,252,0,0,0,3,240, + 0,0,0,15,224,0,0,0,63,128,0,0,0,126,0,0, + 0,1,248,0,0,0,7,224,0,0,0,31,128,0,0,0, + 127,0,0,0,0,252,0,0,0,0,248,0,0,0,0,126, + 0,0,0,0,31,128,0,0,0,15,224,0,0,0,3,248, + 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, + 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, + 0,0,0,31,192,0,0,0,7,224,0,0,0,1,248,0, + 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, + 0,0,3,248,0,0,0,0,248,0,0,0,0,48,41,13, + 78,45,2,6,255,255,255,255,255,128,255,255,255,255,255,128, + 255,255,255,255,255,128,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, + 255,128,37,40,200,45,4,249,96,0,0,0,0,120,0,0, + 0,0,252,0,0,0,0,63,0,0,0,0,15,192,0,0, + 0,3,240,0,0,0,1,252,0,0,0,0,127,0,0,0, + 0,31,128,0,0,0,7,224,0,0,0,1,248,0,0,0, + 0,126,0,0,0,0,63,128,0,0,0,15,224,0,0,0, + 3,240,0,0,0,0,252,0,0,0,0,63,0,0,0,0, + 15,192,0,0,0,7,240,0,0,0,1,248,0,0,0,0, + 248,0,0,0,3,240,0,0,0,15,192,0,0,0,63,128, + 0,0,0,254,0,0,0,1,248,0,0,0,7,224,0,0, + 0,31,128,0,0,0,126,0,0,0,1,252,0,0,0,7, + 240,0,0,0,31,192,0,0,0,63,0,0,0,0,252,0, + 0,0,3,240,0,0,0,15,224,0,0,0,63,128,0,0, + 0,254,0,0,0,0,248,0,0,0,0,96,0,0,0,0, + 15,34,68,22,3,1,31,240,59,248,96,252,96,252,192,126, + 192,126,192,126,192,126,192,126,64,252,96,252,48,248,1,240, + 1,224,3,192,3,128,7,0,7,0,14,0,12,16,12,16, + 12,16,12,16,6,32,3,192,0,0,0,0,0,128,3,224, + 7,240,7,240,7,240,7,240,3,224,35,34,170,39,2,1, + 0,15,255,0,0,0,56,1,224,0,0,224,0,112,0,1, + 128,0,28,0,7,0,0,14,0,14,0,0,7,0,12,0, + 248,3,0,28,3,205,243,128,56,7,135,241,128,56,15,7, + 225,192,112,31,7,225,192,112,62,7,224,224,112,62,7,224, + 224,224,124,7,192,224,224,124,7,192,224,224,124,7,192,224, + 224,252,15,192,224,224,248,15,128,224,224,248,15,128,224,224, + 248,15,129,192,224,248,31,129,192,224,248,31,129,128,112,248, + 31,3,128,112,248,63,3,0,112,120,111,6,0,56,60,199, + 140,0,56,31,3,240,0,28,0,0,0,0,14,0,0,0, + 0,7,0,0,0,0,3,128,0,0,0,1,192,0,96,0, + 0,120,1,192,0,0,31,255,0,0,33,35,175,36,2,0, + 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, + 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, + 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, + 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, + 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, + 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, + 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, + 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, + 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, + 0,3,0,15,240,0,2,0,15,240,0,6,0,7,240,0, + 15,0,7,248,0,31,0,15,252,0,255,240,255,255,128,28, + 34,136,33,3,0,255,255,240,0,15,224,126,0,15,224,31, + 0,15,224,31,128,15,224,15,192,15,224,15,192,15,224,15, + 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, + 224,15,224,15,192,15,224,15,192,15,224,31,128,15,224,30, + 0,15,224,60,0,15,255,224,0,15,224,124,0,15,224,63, + 0,15,224,31,128,15,224,15,192,15,224,15,224,15,224,15, + 240,15,224,15,240,15,224,15,240,15,224,15,240,15,224,15, + 240,15,224,15,240,15,224,15,224,15,224,15,224,15,224,31, + 192,15,224,31,128,15,224,126,0,255,255,248,0,26,34,136, + 31,3,1,0,127,193,128,1,224,241,128,3,192,63,128,15, + 128,31,128,15,128,15,128,31,0,15,128,63,0,7,128,63, + 0,7,128,127,0,3,128,127,0,3,128,127,0,3,128,127, + 0,1,128,255,0,1,128,255,0,1,128,255,0,1,128,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,192,127,0,0,192,127, + 0,0,192,127,0,0,128,63,0,1,128,63,0,1,128,63, + 0,1,128,31,128,3,0,15,128,3,0,7,128,6,0,3, + 192,12,0,1,224,56,0,0,127,224,0,32,34,136,37,3, + 0,255,255,248,0,15,224,31,0,15,224,7,128,15,224,3, + 224,15,224,1,240,15,224,1,240,15,224,0,248,15,224,0, + 252,15,224,0,252,15,224,0,254,15,224,0,254,15,224,0, + 254,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, + 255,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, + 255,15,224,0,255,15,224,0,254,15,224,0,254,15,224,0, + 254,15,224,0,254,15,224,0,252,15,224,0,252,15,224,0, + 248,15,224,1,240,15,224,1,224,15,224,3,192,15,224,7, + 128,15,224,30,0,255,255,248,0,27,34,136,33,3,0,255, + 255,255,224,15,224,31,224,15,224,7,224,15,224,3,224,15, + 224,1,224,15,224,1,224,15,224,0,224,15,224,0,224,15, + 224,0,96,15,224,48,96,15,224,48,96,15,224,48,0,15, + 224,112,0,15,224,112,0,15,224,240,0,15,225,240,0,15, + 255,240,0,15,225,240,0,15,224,240,0,15,224,112,0,15, + 224,112,32,15,224,48,96,15,224,48,96,15,224,48,96,15, + 224,0,96,15,224,0,96,15,224,0,224,15,224,0,224,15, + 224,1,224,15,224,3,224,15,224,3,224,15,224,15,224,255, + 255,255,224,255,255,255,224,28,34,136,32,3,0,255,255,255, + 240,7,240,15,240,7,240,3,240,7,240,1,240,7,240,1, + 240,7,240,0,240,7,240,0,240,7,240,0,112,7,240,0, + 112,7,240,24,48,7,240,24,48,7,240,24,48,7,240,56, + 48,7,240,56,0,7,240,120,0,7,240,248,0,7,255,248, + 0,7,240,248,0,7,240,120,0,7,240,56,0,7,240,56, + 0,7,240,24,0,7,240,24,0,7,240,24,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,255,255,128,0,30,34,136,35,3,1,0,127,224,192,0, + 224,120,192,3,192,31,192,7,128,15,192,15,128,7,192,31, + 0,7,192,31,0,3,192,63,0,3,192,63,0,1,192,127, + 0,1,192,127,0,1,192,127,0,0,192,255,0,0,192,255, + 0,0,192,255,0,0,0,255,0,0,0,255,0,0,0,255, + 3,255,252,255,3,255,252,255,0,31,192,255,0,31,192,255, + 0,31,192,127,0,31,192,127,0,31,192,127,0,31,192,127, + 0,31,192,63,0,31,192,63,0,31,192,31,0,31,192,15, + 128,57,192,15,128,49,192,7,192,96,192,1,224,192,192,0, + 127,128,192,34,34,170,39,3,0,255,255,63,255,192,7,240, + 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, + 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, + 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, + 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, + 240,1,252,0,7,240,1,252,0,7,255,255,252,0,7,240, + 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, + 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, + 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, + 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, + 240,1,252,0,7,240,1,252,0,7,240,1,252,0,255,255, + 63,255,192,16,34,68,21,3,0,255,255,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,255,255,23,34,102, + 26,2,0,1,255,254,0,15,224,0,15,224,0,15,224,0, + 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, + 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, + 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, + 15,224,30,15,224,126,15,224,127,15,224,255,15,224,255,15, + 224,254,15,224,254,15,224,248,15,192,112,15,192,96,15,128, + 48,31,0,24,30,0,15,248,0,33,34,170,37,3,0,255, + 255,31,254,0,7,240,7,240,0,7,240,3,192,0,7,240, + 3,128,0,7,240,3,0,0,7,240,7,0,0,7,240,14, + 0,0,7,240,12,0,0,7,240,24,0,0,7,240,48,0, + 0,7,240,96,0,0,7,240,224,0,0,7,240,224,0,0, + 7,241,240,0,0,7,243,240,0,0,7,247,248,0,0,7, + 255,252,0,0,7,255,252,0,0,7,249,254,0,0,7,241, + 254,0,0,7,240,255,0,0,7,240,255,0,0,7,240,127, + 128,0,7,240,127,128,0,7,240,63,192,0,7,240,63,192, + 0,7,240,31,224,0,7,240,31,224,0,7,240,15,240,0, + 7,240,15,240,0,7,240,7,248,0,7,240,7,248,0,7, + 240,7,252,0,255,255,63,255,128,28,34,136,32,3,0,255, + 255,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,48,7, + 240,0,48,7,240,0,48,7,240,0,112,7,240,0,112,7, + 240,0,112,7,240,0,240,7,240,0,240,7,240,0,240,7, + 240,1,240,7,240,3,240,7,240,3,240,7,240,7,240,255, + 255,255,240,255,255,255,240,39,34,170,43,2,0,255,240,0, + 63,254,7,240,0,63,192,7,248,0,63,192,7,248,0,63, + 192,7,248,0,127,192,7,252,0,127,192,7,252,0,95,192, + 7,252,0,95,192,7,254,0,223,192,6,254,0,223,192,6, + 255,0,159,192,6,127,0,159,192,6,127,1,159,192,6,127, + 129,159,192,6,63,129,31,192,6,63,129,31,192,6,63,195, + 31,192,6,31,194,31,192,6,31,226,31,192,6,15,226,31, + 192,6,15,230,31,192,6,15,244,31,192,6,7,244,31,192, + 6,7,244,31,192,6,7,252,31,192,6,3,248,31,192,6, + 3,248,31,192,6,1,248,31,192,6,1,248,31,192,6,1, + 240,31,192,6,0,240,31,192,15,0,240,31,192,63,192,240, + 31,192,255,240,97,255,254,34,35,175,37,2,255,255,224,15, + 255,192,31,240,3,255,0,15,240,0,252,0,15,248,0,120, + 0,7,252,0,48,0,3,254,0,48,0,3,254,0,48,0, + 3,255,0,48,0,3,255,128,48,0,3,255,128,48,0,3, + 127,192,48,0,3,63,224,48,0,3,31,224,48,0,3,31, + 240,48,0,3,15,248,48,0,3,7,248,48,0,3,7,252, + 48,0,3,3,254,48,0,3,1,255,48,0,3,1,255,48, + 0,3,0,255,176,0,3,0,127,240,0,3,0,127,240,0, + 3,0,63,240,0,3,0,31,240,0,3,0,15,240,0,3, + 0,15,240,0,3,0,7,240,0,3,0,3,240,0,3,0, + 3,240,0,7,128,1,240,0,15,192,0,240,0,63,240,0, + 240,0,255,252,0,112,0,0,0,0,48,0,28,34,136,33, + 3,1,0,63,192,0,0,224,112,0,3,192,56,0,7,128, + 30,0,15,128,30,0,15,0,15,0,31,0,15,128,63,0, + 15,192,63,0,15,192,127,0,15,192,127,0,15,224,127,0, + 15,224,127,0,15,224,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, + 15,224,127,0,15,192,63,0,15,192,63,0,15,192,31,0, + 15,128,15,0,15,0,15,128,31,0,7,128,30,0,3,192, + 60,0,0,224,112,0,0,63,192,0,29,34,136,34,3,0, + 255,255,248,0,7,240,63,0,7,240,15,192,7,240,15,224, + 7,240,15,240,7,240,7,240,7,240,7,248,7,240,7,248, + 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,248, + 7,240,7,240,7,240,15,240,7,240,15,224,7,240,15,192, + 7,240,31,0,7,255,252,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,255,255,128,0,28,45,180,33,3,246,0,63, + 192,0,0,224,112,0,3,192,56,0,7,128,30,0,15,128, + 30,0,15,0,15,0,31,0,15,128,63,0,15,128,63,0, + 15,192,127,0,15,192,127,0,15,224,127,0,15,224,127,0, + 15,224,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, + 15,224,63,0,15,192,63,15,15,192,31,17,143,128,15,160, + 223,0,15,160,223,0,7,160,254,0,3,224,252,16,0,240, + 248,16,0,127,224,16,0,0,224,16,0,0,224,16,0,0, + 224,48,0,0,240,48,0,0,248,112,0,0,255,240,0,0, + 255,224,0,0,127,224,0,0,127,192,0,0,63,128,0,0, + 31,0,32,36,144,36,3,254,255,255,240,0,7,240,126,0, + 7,240,63,0,7,240,63,128,7,240,31,192,7,240,31,192, + 7,240,31,224,7,240,31,224,7,240,31,224,7,240,31,224, + 7,240,31,224,7,240,31,192,7,240,63,192,7,240,63,0, + 7,240,126,0,7,255,240,0,7,240,240,0,7,240,62,0, + 7,240,63,0,7,240,31,128,7,240,31,128,7,240,31,192, + 7,240,31,192,7,240,31,192,7,240,31,192,7,240,31,195, + 7,240,31,195,7,240,31,195,7,240,31,195,7,240,31,195, + 7,240,31,198,7,240,31,198,7,240,15,238,255,255,135,252, + 0,0,3,248,0,0,0,96,23,34,102,29,4,1,7,252, + 24,24,15,24,56,3,248,112,1,248,112,0,248,240,0,120, + 248,0,120,248,0,56,252,0,24,254,0,24,255,128,24,255, + 224,8,127,240,0,127,252,0,63,254,0,31,255,128,15,255, + 192,3,255,240,1,255,248,128,127,248,192,31,252,192,15,252, + 192,3,254,224,1,254,224,0,126,224,0,62,240,0,30,248, + 0,30,248,0,28,252,0,28,254,0,24,239,0,48,195,128, + 96,193,255,128,29,34,136,34,3,0,255,255,255,248,255,63, + 231,248,252,31,193,248,248,31,192,248,248,31,192,248,240,31, + 192,120,224,31,192,56,224,31,192,56,224,31,192,56,192,31, + 192,24,192,31,192,24,192,31,192,24,192,31,192,24,128,31, + 192,8,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,3,255, + 254,0,33,34,170,38,3,0,255,255,7,255,128,15,224,1, + 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, + 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, + 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, + 0,0,34,34,170,37,2,0,255,255,135,255,192,15,248,0, + 126,0,7,248,0,56,0,7,248,0,56,0,3,248,0,48, + 0,3,252,0,48,0,3,252,0,48,0,1,254,0,96,0, + 1,254,0,96,0,0,254,0,96,0,0,255,0,192,0,0, + 255,0,192,0,0,127,0,192,0,0,127,129,128,0,0,127, + 129,128,0,0,63,129,128,0,0,63,195,0,0,0,63,195, + 0,0,0,31,195,0,0,0,31,230,0,0,0,15,230,0, + 0,0,15,246,0,0,0,15,252,0,0,0,7,252,0,0, + 0,7,252,0,0,0,7,248,0,0,0,3,248,0,0,0, + 3,248,0,0,0,3,240,0,0,0,1,240,0,0,0,1, + 240,0,0,0,0,224,0,0,0,0,224,0,0,0,0,224, + 0,0,49,34,238,52,2,0,255,255,63,255,207,255,128,31, + 252,7,254,0,252,0,7,248,3,252,0,112,0,7,248,1, + 252,0,112,0,3,248,1,254,0,96,0,3,252,1,254,0, + 96,0,3,252,0,254,0,96,0,1,252,0,254,0,192,0, + 1,254,1,255,0,192,0,1,254,1,255,0,192,0,0,254, + 1,255,1,128,0,0,255,3,127,129,128,0,0,255,3,63, + 129,128,0,0,127,3,63,129,128,0,0,127,135,63,195,0, + 0,0,127,134,31,195,0,0,0,63,134,31,195,0,0,0, + 63,198,31,231,0,0,0,31,204,15,230,0,0,0,31,204, + 15,230,0,0,0,31,236,15,246,0,0,0,15,248,7,252, + 0,0,0,15,248,7,252,0,0,0,15,248,7,252,0,0, + 0,7,248,3,252,0,0,0,7,240,3,248,0,0,0,7, + 240,3,248,0,0,0,3,240,1,248,0,0,0,3,224,1, + 240,0,0,0,3,224,1,240,0,0,0,1,224,0,240,0, + 0,0,1,192,0,240,0,0,0,1,192,0,224,0,0,0, + 0,192,0,96,0,0,33,34,170,36,2,0,127,255,31,254, + 0,31,252,3,240,0,7,248,3,192,0,3,248,3,128,0, + 3,252,3,128,0,1,252,3,0,0,1,254,7,0,0,0, + 255,6,0,0,0,255,12,0,0,0,127,140,0,0,0,127, + 152,0,0,0,63,240,0,0,0,63,240,0,0,0,31,224, + 0,0,0,31,224,0,0,0,15,240,0,0,0,15,248,0, + 0,0,7,248,0,0,0,7,252,0,0,0,7,252,0,0, + 0,15,254,0,0,0,29,254,0,0,0,24,255,0,0,0, + 56,255,0,0,0,48,127,128,0,0,96,127,128,0,0,224, + 63,192,0,0,192,63,224,0,1,128,31,224,0,3,128,31, + 240,0,3,128,15,240,0,7,128,15,248,0,31,128,31,252, + 0,255,240,127,255,128,32,34,136,35,2,0,255,254,15,255, + 31,248,1,248,15,248,0,240,7,248,0,224,7,248,0,192, + 3,252,0,192,3,252,0,192,1,252,1,128,1,254,1,128, + 0,254,3,0,0,255,3,0,0,255,3,0,0,127,134,0, + 0,127,134,0,0,63,196,0,0,63,204,0,0,31,204,0, + 0,31,248,0,0,15,248,0,0,15,248,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,255,255,0,25,34,136,31,3,0,127,255,255,128,127,128, + 127,128,126,0,255,0,124,0,255,0,120,1,254,0,120,3, + 254,0,112,3,252,0,112,7,252,0,96,7,248,0,96,15, + 248,0,96,15,240,0,64,31,224,0,0,31,224,0,0,63, + 192,0,0,63,192,0,0,127,128,0,0,127,128,0,0,255, + 0,0,0,255,0,0,1,254,0,0,3,254,0,128,3,252, + 0,128,7,248,0,128,7,248,0,128,15,240,1,128,15,240, + 1,128,31,224,3,128,31,224,3,128,63,192,7,128,63,192, + 15,128,127,128,31,128,127,128,63,128,255,255,255,128,255,255, + 255,128,11,42,84,18,4,248,255,224,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,255,224,16,44,88,22, + 3,247,224,0,224,0,224,0,240,0,112,0,112,0,120,0, + 56,0,56,0,60,0,28,0,28,0,30,0,14,0,14,0, + 14,0,15,0,7,0,7,0,7,128,3,128,3,128,3,192, + 1,192,1,192,1,224,0,224,0,224,0,224,0,240,0,112, + 0,112,0,120,0,56,0,56,0,60,0,28,0,28,0,30, + 0,14,0,14,0,14,0,15,0,7,11,42,84,18,3,248, + 255,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,255,224,22,17,51,28,3,18,0,48,0,0,112,0, + 0,120,0,0,252,0,0,252,0,1,254,0,3,207,0,3, + 143,0,7,135,128,15,3,128,15,3,192,30,1,224,60,0, + 224,60,0,240,120,0,120,112,0,56,240,0,60,25,3,12, + 25,0,248,255,255,255,128,255,255,255,128,255,255,255,128,8, + 9,9,21,4,25,96,240,248,124,60,30,15,3,1,21,22, + 66,24,2,1,15,248,0,24,62,0,56,63,0,120,31,0, + 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, + 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, + 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, + 127,127,240,63,143,224,22,34,102,25,1,0,255,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,159,128,31,179,224,31,225,224,31,193,240,31,193,248,31, + 192,248,31,192,248,31,128,252,31,128,252,31,128,252,31,128, + 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,248, + 31,192,248,31,193,248,29,193,240,24,225,224,24,99,192,16, + 63,128,18,22,66,22,2,1,3,252,0,15,6,0,31,3, + 0,62,3,128,62,7,128,126,15,128,124,31,128,252,31,128, + 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, + 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,0, + 128,30,1,0,15,130,0,3,252,0,23,34,102,26,2,0, + 0,63,224,0,7,224,0,7,224,0,7,224,0,7,224,0, + 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, + 224,0,7,224,7,231,224,31,23,224,30,31,224,62,15,224, + 126,15,224,124,15,224,124,7,224,252,7,224,252,7,224,252, + 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, + 224,124,7,224,124,15,224,126,15,224,62,15,224,30,31,224, + 15,23,224,7,231,254,18,22,66,23,2,1,3,252,0,14, + 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, + 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, + 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, + 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, + 102,16,1,1,0,255,0,1,199,128,7,199,128,7,199,192, + 15,143,192,15,143,192,31,143,192,31,143,128,31,135,128,31, + 128,0,31,128,0,31,128,0,255,240,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,255,240,0,24,33,99,27,2,246, + 7,254,62,31,15,71,63,7,143,62,7,207,126,7,238,126, + 7,228,126,7,224,126,7,224,126,7,224,62,7,192,31,15, + 128,15,15,0,3,252,0,12,0,0,48,0,0,48,0,0, + 112,0,0,112,0,0,127,255,128,127,255,224,63,255,240,31, + 255,240,7,255,248,60,1,248,96,0,120,192,0,56,192,0, + 56,192,0,48,192,0,112,96,0,96,48,1,192,30,7,128, + 3,252,0,24,34,102,27,1,0,255,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,143,224, + 31,145,240,31,160,248,31,160,252,31,192,252,31,192,252,31, + 192,252,31,128,252,31,128,252,31,128,252,31,128,252,31,128, + 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,255,227,255,11, + 35,70,15,2,0,4,0,31,0,63,128,63,128,63,128,63, + 128,31,0,4,0,0,0,0,0,0,0,0,0,0,0,255, + 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, + 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, + 0,63,0,63,0,63,0,63,0,255,224,15,46,92,16,254, + 245,0,16,0,124,0,254,0,254,0,254,0,254,0,124,0, + 16,0,0,0,0,0,0,0,0,0,0,7,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,56,252,124,252,252, + 252,252,252,248,248,248,248,113,240,49,224,31,128,25,34,136, + 27,1,0,255,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,131,254,0,31,128,240,0,31,128,96,0,31, + 128,192,0,31,128,128,0,31,129,128,0,31,131,0,0,31, + 134,0,0,31,143,0,0,31,159,0,0,31,159,128,0,31, + 191,128,0,31,239,192,0,31,199,224,0,31,135,224,0,31, + 131,240,0,31,129,248,0,31,129,248,0,31,128,252,0,31, + 128,252,0,31,128,254,0,255,243,255,128,12,34,68,14,1, + 0,255,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,255,240,34,22,110,37,2,1,255,31,193,248,0, + 63,35,230,124,0,63,67,228,62,0,63,131,248,63,0,63, + 131,248,63,0,63,131,248,63,0,63,3,240,63,0,63,3, + 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, + 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, + 0,63,3,240,63,0,63,3,240,63,0,63,3,240,63,0, + 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, + 3,240,63,0,255,207,252,255,192,23,22,66,27,2,1,255, + 31,192,63,35,224,63,65,240,63,65,248,63,129,248,63,129, + 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, + 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, + 1,248,63,1,248,63,1,248,63,1,248,63,1,248,255,199, + 254,20,22,66,24,2,1,3,252,0,15,15,0,30,7,128, + 62,7,192,62,7,192,124,3,224,124,3,224,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, + 240,252,3,240,124,3,224,124,3,224,62,7,192,62,7,192, + 30,7,128,15,15,0,3,252,0,22,33,99,25,1,246,255, + 159,128,31,163,192,31,225,224,31,193,240,31,192,248,31,192, + 248,31,192,248,31,128,252,31,128,252,31,128,252,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,31,192,252,31, + 192,248,31,192,248,31,193,240,31,225,240,31,179,224,31,159, + 128,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,255, + 240,0,22,33,99,25,2,246,7,240,32,15,24,96,30,28, + 96,62,14,224,126,15,224,124,15,224,124,7,224,252,7,224, + 252,7,224,252,7,224,252,7,224,252,7,224,252,7,224,252, + 7,224,252,7,224,124,7,224,124,15,224,126,15,224,62,15, + 224,30,31,224,31,23,224,7,231,224,0,7,224,0,7,224, + 0,7,224,0,7,224,0,7,224,0,7,224,0,7,224,0, + 7,224,0,7,224,0,7,224,0,63,252,17,22,66,20,2, + 1,255,31,0,63,63,128,63,79,128,63,79,128,63,159,128, + 63,159,128,63,159,0,63,14,0,63,0,0,63,0,0,63, + 0,0,63,0,0,63,0,0,63,0,0,63,0,0,63,0, + 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, + 255,192,0,16,22,44,21,3,1,31,196,48,116,96,60,224, + 28,224,28,240,12,248,4,254,4,127,128,127,224,63,240,31, + 252,7,254,129,254,192,127,192,31,224,15,224,7,240,7,248, + 6,204,14,135,248,15,32,64,17,1,0,1,128,1,128,1, + 128,1,128,1,128,3,128,3,128,7,128,15,128,63,128,255, + 248,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,130,31,130,31,130,31,130,31, + 134,31,134,31,132,15,196,15,248,7,240,24,22,66,26,1, + 0,255,143,248,31,129,248,31,129,248,31,129,248,31,129,248, + 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,131,248,31,131,248,31,133,248,15,133,248,15,201,248, + 7,241,255,23,23,69,25,1,255,255,241,254,63,192,120,31, + 128,48,15,192,48,15,192,32,7,192,96,7,224,96,7,224, + 64,3,224,192,3,240,128,3,240,128,1,241,128,1,249,0, + 0,249,0,0,255,0,0,254,0,0,126,0,0,126,0,0, + 124,0,0,60,0,0,60,0,0,24,0,0,24,0,35,23, + 115,37,1,255,255,231,255,31,224,63,129,252,7,128,31,128, + 252,3,0,15,128,252,2,0,15,192,124,2,0,15,192,124, + 6,0,7,192,126,4,0,7,224,254,4,0,3,224,191,12, + 0,3,224,191,8,0,3,241,159,24,0,1,241,31,144,0, + 1,241,31,144,0,1,251,31,176,0,0,250,15,224,0,0, + 250,15,224,0,0,254,15,224,0,0,124,7,192,0,0,124, + 7,192,0,0,60,7,192,0,0,56,3,128,0,0,56,3, + 128,0,0,24,3,0,0,23,22,66,25,1,0,255,231,252, + 63,192,240,31,192,224,15,192,192,15,225,128,7,227,0,3, + 242,0,3,254,0,1,252,0,1,252,0,0,252,0,0,126, + 0,0,127,0,0,127,0,0,223,128,1,159,192,3,15,192, + 2,15,224,6,7,224,14,7,240,30,7,248,255,207,254,23, + 33,99,25,1,245,255,241,254,63,192,120,31,128,48,15,192, + 32,15,192,32,15,192,96,7,224,64,7,224,64,3,240,192, + 3,240,128,1,248,128,1,249,128,0,249,0,0,253,0,0, + 253,0,0,126,0,0,126,0,0,62,0,0,60,0,0,28, + 0,0,28,0,0,12,0,0,8,0,0,8,0,0,8,0, + 15,16,0,31,16,0,63,144,0,63,32,0,62,32,0,62, + 64,0,31,192,0,15,0,0,18,22,66,22,2,0,127,255, + 192,124,15,192,120,31,128,112,63,0,96,63,0,96,126,0, + 64,126,0,64,252,0,1,248,0,1,248,0,3,240,0,3, + 240,0,7,224,64,15,192,64,15,192,64,31,128,192,31,0, + 192,63,1,192,126,1,192,126,3,192,252,15,192,255,255,192, + 14,43,86,20,3,247,0,60,0,240,3,192,7,128,7,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,0,15,0,28,0, + 240,0,60,0,30,0,15,0,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,7,128,7,128,3,192,0,240,0,60,3,44,44,13, + 5,247,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,15,43, + 86,20,3,247,240,0,60,0,15,0,7,128,7,128,7,192, + 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, + 7,192,7,192,7,192,7,192,3,192,3,192,0,240,0,62, + 0,240,1,224,3,192,7,192,7,192,7,192,7,192,7,192, + 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, + 7,128,7,128,15,0,60,0,240,0,27,9,36,31,2,8, + 31,128,1,128,63,240,0,192,127,254,0,96,255,255,128,96, + 193,255,240,96,192,63,255,224,192,15,255,192,96,1,255,128, + 48,0,63,0,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,13,0,0,8,35,35,14,3, + 245,60,126,255,255,255,126,60,0,0,0,24,24,24,24,24, + 24,24,24,60,60,60,60,126,126,126,126,254,255,255,255,255, + 255,255,126,60,18,34,102,28,5,250,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,1,240,0,7,236,0,15, + 103,0,30,99,0,62,99,128,126,103,128,126,111,128,124,111, + 128,252,111,128,252,103,0,252,96,0,252,96,0,252,96,0, + 252,96,0,252,96,0,252,96,0,124,96,192,124,96,192,62, + 96,128,62,97,128,30,97,0,15,99,0,7,252,0,0,248, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 29,34,136,34,3,1,0,1,255,0,0,7,129,192,0,31, + 0,224,0,31,0,224,0,63,0,240,0,126,1,240,0,126, + 3,240,0,254,3,240,0,254,3,224,0,254,1,192,0,254, + 0,0,0,254,0,0,0,254,0,0,0,254,0,0,15,254, + 0,0,24,126,6,0,0,127,252,0,0,127,0,0,0,63, + 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,31, + 0,0,0,31,0,0,0,30,0,0,0,30,0,24,30,28, + 0,56,127,220,0,112,195,248,0,224,128,255,255,224,128,127, + 255,192,128,255,255,128,193,207,255,0,127,3,252,0,24,22, + 66,28,2,5,96,126,6,243,255,207,127,255,254,63,129,252, + 30,0,120,60,0,60,56,0,28,56,0,28,112,0,14,112, + 0,14,112,0,14,112,0,14,112,0,14,112,0,14,56,0, + 28,56,0,28,60,0,60,30,0,120,63,129,252,127,255,254, + 243,255,207,96,126,6,26,34,136,28,1,0,255,248,63,192, + 63,224,15,0,31,224,14,0,31,224,12,0,31,224,12,0, + 15,240,8,0,15,240,8,0,7,240,24,0,7,248,16,0, + 3,248,48,0,3,252,32,0,3,252,96,0,1,254,64,0, + 1,254,192,0,0,254,128,0,0,255,128,0,0,255,0,0, + 63,255,254,0,0,127,0,0,0,127,0,0,0,127,0,0, + 0,127,0,0,63,255,254,0,0,127,0,0,0,127,0,0, + 0,127,0,0,0,127,0,0,0,127,0,0,0,127,0,0, + 0,127,0,0,0,127,0,0,0,127,0,0,0,127,0,0, + 7,255,248,0,3,42,42,13,5,248,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, + 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,22,43,129,30,2,248,1,255,0,7,1,192, + 14,0,224,28,0,224,28,1,240,60,3,240,60,7,240,60, + 7,240,62,7,224,62,3,192,63,0,0,31,192,0,31,248, + 0,15,254,0,31,255,128,55,255,192,97,255,240,96,127,248, + 224,31,248,224,7,252,240,1,252,252,0,124,255,0,60,255, + 192,28,127,240,24,63,252,24,31,255,16,15,255,160,3,255, + 192,0,255,224,0,63,224,0,15,240,6,3,240,31,129,240, + 63,128,240,63,128,240,63,128,240,63,0,240,62,0,224,28, + 1,192,28,3,192,15,7,0,3,252,0,15,6,12,21,3, + 26,120,60,252,126,252,126,252,126,252,126,120,60,35,34,170, + 39,2,1,0,15,254,0,0,0,112,3,192,0,0,192,0, + 96,0,3,128,0,56,0,6,0,0,28,0,12,0,0,6, + 0,24,3,225,134,0,24,15,25,131,0,48,30,15,129,128, + 48,62,7,129,128,96,60,3,128,192,96,124,3,128,192,96, + 124,1,128,192,192,252,1,128,96,192,252,1,128,96,192,252, + 0,0,96,192,252,0,0,96,192,252,0,0,96,192,252,0, + 0,96,192,252,0,128,96,192,252,0,128,96,64,124,0,128, + 192,96,124,1,128,192,96,60,1,0,192,48,62,3,1,128, + 48,30,2,1,128,24,15,12,3,0,24,3,248,6,0,12, + 0,0,6,0,6,0,0,12,0,3,128,0,56,0,0,192, + 0,96,0,0,112,1,192,0,0,15,254,0,0,14,17,34, + 18,2,17,31,0,51,192,97,224,113,224,121,224,57,224,7, + 224,57,224,113,224,241,224,241,228,241,228,241,228,126,248,0, + 0,127,252,127,252,13,20,40,23,5,1,4,0,28,24,24, + 48,56,112,112,96,112,224,241,224,241,224,241,224,241,224,241, + 224,241,224,241,224,112,224,112,224,112,96,56,48,24,16,12, + 0,4,0,23,13,39,27,2,6,255,255,254,255,255,254,255, + 255,254,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, + 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, + 35,34,170,39,2,1,0,15,254,0,0,0,112,3,192,0, + 0,192,0,96,0,3,128,0,56,0,6,0,0,28,0,12, + 0,0,6,0,24,255,252,6,0,24,62,31,3,0,48,62, + 15,129,128,48,62,15,193,128,96,62,15,192,192,96,62,15, + 192,192,96,62,15,192,192,192,62,15,128,96,192,62,31,0, + 96,192,63,248,0,96,192,62,60,0,96,192,62,30,0,96, + 192,62,15,0,96,192,62,15,128,96,192,62,15,128,96,64, + 62,15,128,192,96,62,15,136,192,96,62,15,136,192,48,62, + 15,137,128,48,62,15,145,128,24,255,231,243,0,24,0,3, + 230,0,12,0,0,6,0,6,0,0,12,0,3,128,0,56, + 0,0,192,0,96,0,0,112,1,192,0,0,15,254,0,0, + 12,3,6,20,4,28,255,240,255,240,255,240,16,15,30,28, + 6,20,15,240,31,248,62,124,120,30,240,14,224,7,224,7, + 224,7,224,7,224,14,112,14,124,60,63,252,31,240,3,192, + 41,36,216,45,2,253,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,255,255,255,255,255,128, + 255,255,255,255,255,128,255,255,255,255,255,128,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,0,255,255,255,255,255,0,255,255,255,255,255,0,14,21, + 42,21,4,14,31,240,48,248,96,124,224,124,240,124,248,124, + 248,120,120,248,1,240,1,224,3,128,6,0,12,4,16,4, + 32,4,32,12,127,252,127,252,79,248,71,248,1,224,16,21, + 42,22,3,14,31,224,48,248,112,124,112,124,124,124,124,124, + 60,124,0,120,0,224,15,128,0,240,0,124,0,62,16,63, + 124,63,252,63,252,63,240,63,112,126,112,252,31,240,8,9, + 9,21,9,25,6,15,31,62,60,120,240,192,128,24,35,105, + 29,3,244,120,3,192,124,3,192,252,7,224,252,7,224,252, + 7,224,252,7,224,252,7,224,252,7,224,252,7,224,248,7, + 224,248,7,224,120,7,192,112,3,192,112,3,193,112,3,129, + 48,3,131,48,7,135,48,7,255,56,15,254,62,62,254,47, + 252,126,35,248,60,32,0,0,48,0,0,112,0,0,112,0, + 0,120,0,0,120,0,0,124,0,0,124,0,0,126,0,0, + 126,0,0,126,0,0,62,0,0,28,0,0,23,41,123,28, + 3,249,3,255,254,15,240,224,63,240,224,127,240,224,127,240, + 224,255,240,224,255,240,224,255,240,224,255,240,224,255,240,224, + 255,240,224,255,240,224,255,240,224,255,240,224,127,240,224,63, + 240,224,31,240,224,7,240,224,0,112,224,0,112,224,0,112, + 224,0,112,224,0,112,224,0,112,224,0,112,224,0,112,224, + 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,0, + 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,112, + 224,0,112,224,0,112,224,0,112,224,0,112,224,8,7,7, + 14,3,12,60,126,255,255,255,126,60,10,10,20,21,5,246, + 8,0,8,0,24,0,15,0,7,128,3,192,3,192,3,192, + 199,128,63,0,11,20,40,21,5,14,7,0,15,0,255,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 255,224,13,17,34,19,3,17,15,128,24,192,56,224,112,112, + 112,112,240,120,240,120,240,120,240,120,240,120,240,120,112,112, + 112,224,56,224,15,128,0,0,255,248,13,20,40,23,5,1, + 1,0,193,128,96,192,112,224,48,112,56,112,56,120,60,120, + 60,120,60,120,60,120,60,120,60,120,56,112,56,112,48,112, + 96,224,64,192,1,128,1,0,36,36,180,44,5,255,0,0, + 0,48,0,7,0,0,48,0,7,0,0,96,0,31,0,0, + 224,0,255,0,0,192,0,31,0,1,192,0,31,0,1,128, + 0,31,0,3,0,0,31,0,7,0,0,31,0,6,0,0, + 31,0,14,0,0,31,0,12,0,0,31,0,24,0,0,31, + 0,24,0,0,31,0,48,0,0,31,0,112,15,0,31,0, + 96,31,0,31,0,224,31,0,31,0,192,63,0,31,1,128, + 127,0,255,227,128,127,0,0,3,0,223,0,0,7,1,159, + 0,0,6,1,159,0,0,12,3,31,0,0,12,2,31,0, + 0,24,6,31,0,0,56,12,31,0,0,48,15,255,240,0, + 112,0,31,0,0,96,0,31,0,0,192,0,31,0,1,192, + 0,31,0,1,128,0,31,0,3,128,1,255,224,3,0,0, + 0,0,35,36,180,43,5,255,0,0,0,56,0,7,0,0, + 48,0,7,0,0,112,0,31,0,0,224,0,255,0,0,192, + 0,31,0,1,192,0,31,0,1,128,0,31,0,3,128,0, + 31,0,3,0,0,31,0,7,0,0,31,0,14,0,0,31, + 0,12,0,0,31,0,28,0,0,31,0,24,0,0,31,0, + 56,126,0,31,0,113,143,128,31,0,99,7,192,31,0,231, + 3,224,31,0,199,3,224,31,1,199,131,224,255,227,135,195, + 224,0,3,3,199,192,0,7,1,135,128,0,6,0,15,0, + 0,14,0,30,0,0,12,0,56,0,0,24,0,96,0,0, + 56,0,128,32,0,48,1,0,32,0,112,2,0,32,0,96, + 2,255,224,0,192,7,255,224,1,192,6,255,192,1,128,4, + 127,192,3,128,4,63,128,3,0,0,0,0,38,36,180,44, + 3,255,0,0,0,12,0,31,224,0,12,0,48,248,0,24, + 0,112,124,0,56,0,112,124,0,48,0,124,124,0,112,0, + 124,124,0,96,0,60,124,0,192,0,0,120,1,192,0,0, + 224,1,128,0,15,128,3,128,0,0,240,3,0,0,0,124, + 7,0,0,0,62,6,0,0,16,63,12,0,0,124,63,28, + 3,192,252,63,24,7,192,252,63,56,7,192,240,63,48,15, + 192,112,126,112,31,192,112,252,224,31,192,31,240,192,55,192, + 0,1,192,103,192,0,1,128,103,192,0,3,128,199,192,0, + 3,0,135,192,0,6,1,135,192,0,14,3,7,192,0,12, + 3,255,252,0,28,0,7,192,0,24,0,7,192,0,56,0, + 7,192,0,112,0,7,192,0,96,0,7,192,0,224,0,127, + 248,0,192,0,0,0,16,35,70,23,3,245,7,0,15,128, + 31,192,31,192,31,192,15,128,7,0,0,0,0,0,7,128, + 12,224,16,48,16,48,16,48,16,48,0,96,0,224,0,192, + 3,192,7,128,15,128,31,0,31,4,62,4,126,6,124,2, + 252,3,252,3,252,3,252,3,252,6,126,6,63,12,31,248, + 7,224,33,45,225,36,2,0,0,56,0,0,0,0,60,0, + 0,0,0,62,0,0,0,0,62,0,0,0,0,31,0,0, + 0,0,7,0,0,0,0,3,128,0,0,0,1,192,0,0, + 0,0,64,0,0,0,0,0,0,0,0,0,192,0,0,0, + 1,192,0,0,0,1,224,0,0,0,1,224,0,0,0,3, + 224,0,0,0,3,240,0,0,0,3,240,0,0,0,7,240, + 0,0,0,7,248,0,0,0,7,248,0,0,0,15,248,0, + 0,0,15,252,0,0,0,15,252,0,0,0,25,252,0,0, + 0,25,254,0,0,0,25,254,0,0,0,48,254,0,0,0, + 48,255,0,0,0,32,255,0,0,0,96,127,0,0,0,96, + 127,128,0,0,64,127,128,0,0,192,63,128,0,0,192,63, + 192,0,0,255,255,192,0,1,255,255,192,0,1,128,31,224, + 0,1,0,31,224,0,3,0,15,224,0,3,0,15,240,0, + 2,0,15,240,0,6,0,7,240,0,15,0,7,248,0,31, + 0,15,252,0,255,240,255,255,128,33,45,225,36,2,0,0, + 0,14,0,0,0,0,15,0,0,0,0,31,0,0,0,0, + 62,0,0,0,0,60,0,0,0,0,120,0,0,0,0,240, + 0,0,0,0,192,0,0,0,0,128,0,0,0,0,0,0, + 0,0,0,192,0,0,0,1,192,0,0,0,1,224,0,0, + 0,1,224,0,0,0,3,224,0,0,0,3,240,0,0,0, + 3,240,0,0,0,7,240,0,0,0,7,248,0,0,0,7, + 248,0,0,0,15,248,0,0,0,15,252,0,0,0,15,252, + 0,0,0,25,252,0,0,0,25,254,0,0,0,25,254,0, + 0,0,48,254,0,0,0,48,255,0,0,0,32,255,0,0, + 0,96,127,0,0,0,96,127,128,0,0,64,127,128,0,0, + 192,63,128,0,0,192,63,192,0,0,255,255,192,0,1,255, + 255,192,0,1,128,31,224,0,1,0,31,224,0,3,0,15, + 224,0,3,0,15,240,0,6,0,15,240,0,6,0,7,240, + 0,15,0,7,248,0,255,240,255,255,128,255,240,255,255,128, + 33,44,220,36,2,0,0,1,192,0,0,0,1,224,0,0, + 0,3,224,0,0,0,7,240,0,0,0,15,120,0,0,0, + 30,30,0,0,0,120,7,0,0,0,64,1,128,0,0,0, + 0,0,0,0,0,192,0,0,0,1,192,0,0,0,1,224, + 0,0,0,1,224,0,0,0,3,224,0,0,0,3,240,0, + 0,0,3,240,0,0,0,7,240,0,0,0,7,248,0,0, + 0,7,248,0,0,0,15,248,0,0,0,15,252,0,0,0, + 15,252,0,0,0,25,252,0,0,0,25,254,0,0,0,25, + 254,0,0,0,48,254,0,0,0,48,255,0,0,0,32,255, + 0,0,0,96,127,0,0,0,96,127,128,0,0,64,127,128, + 0,0,192,63,128,0,0,192,63,192,0,0,255,255,192,0, + 1,255,255,192,0,1,128,31,224,0,1,0,31,224,0,3, + 0,15,224,0,3,0,15,240,0,2,0,15,240,0,6,0, + 7,240,0,15,0,7,248,0,31,0,15,252,0,255,240,255, + 255,128,33,43,215,36,2,0,0,15,1,0,0,0,31,227, + 0,0,0,63,254,0,0,0,33,254,0,0,0,32,124,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, + 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, + 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, + 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, + 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, + 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, + 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, + 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, + 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, + 0,3,0,15,240,0,6,0,15,240,0,6,0,7,240,0, + 15,0,7,248,0,255,240,255,255,128,255,240,255,255,128,33, + 43,215,36,2,0,0,60,15,0,0,0,126,31,128,0,0, + 126,31,128,0,0,126,31,128,0,0,126,31,128,0,0,60, + 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,192,0,0,0,1,224,0,0,0,1,224,0, + 0,0,1,224,0,0,0,3,240,0,0,0,3,240,0,0, + 0,3,240,0,0,0,7,248,0,0,0,7,248,0,0,0, + 7,248,0,0,0,15,252,0,0,0,15,252,0,0,0,25, + 252,0,0,0,25,254,0,0,0,24,254,0,0,0,48,254, + 0,0,0,48,255,0,0,0,48,127,0,0,0,96,127,0, + 0,0,96,127,128,0,0,96,63,128,0,0,192,63,128,0, + 0,192,63,192,0,0,255,255,192,0,1,255,255,192,0,1, + 128,31,224,0,1,128,15,224,0,3,0,15,224,0,3,0, + 15,240,0,3,0,7,240,0,7,0,7,240,0,15,0,7, + 248,0,31,128,15,252,0,255,240,255,255,128,33,45,225,36, + 2,0,0,1,224,0,0,0,7,248,0,0,0,14,28,0, + 0,0,12,12,0,0,0,12,12,0,0,0,12,12,0,0, + 0,14,28,0,0,0,7,248,0,0,0,3,240,0,0,0, + 0,0,0,0,0,0,192,0,0,0,1,192,0,0,0,1, + 224,0,0,0,1,224,0,0,0,3,224,0,0,0,3,240, + 0,0,0,3,240,0,0,0,7,240,0,0,0,7,248,0, + 0,0,7,248,0,0,0,15,248,0,0,0,13,252,0,0, + 0,13,252,0,0,0,29,252,0,0,0,25,254,0,0,0, + 24,254,0,0,0,56,254,0,0,0,48,255,0,0,0,48, + 127,0,0,0,112,127,0,0,0,96,127,128,0,0,96,63, + 128,0,0,224,63,128,0,0,192,63,192,0,0,255,255,192, + 0,1,255,255,192,0,1,128,31,224,0,1,128,31,224,0, + 3,0,15,224,0,3,0,15,240,0,3,0,15,240,0,7, + 0,7,240,0,15,0,7,248,0,31,128,15,252,0,255,240, + 255,255,128,45,34,204,48,1,0,0,0,127,255,255,240,0, + 0,31,248,7,240,0,0,15,248,1,240,0,0,15,248,0, + 240,0,0,31,248,0,240,0,0,27,248,0,112,0,0,59, + 248,0,112,0,0,51,248,0,48,0,0,115,248,0,48,0, + 0,99,248,12,48,0,0,227,248,12,16,0,0,195,248,12, + 0,0,1,195,248,28,0,0,1,131,248,28,0,0,3,131, + 248,60,0,0,3,3,248,124,0,0,7,3,255,252,0,0, + 6,3,248,124,0,0,14,3,248,60,0,0,12,3,248,28, + 0,0,28,3,248,28,0,0,24,3,248,12,24,0,56,3, + 248,12,24,0,63,255,248,12,24,0,96,3,248,0,56,0, + 224,3,248,0,56,0,192,3,248,0,56,1,192,3,248,0, + 120,1,128,3,248,0,120,3,128,3,248,0,248,7,128,3, + 248,1,248,15,128,3,248,3,248,255,248,127,255,255,248,255, + 248,127,255,255,248,26,45,180,31,3,246,0,127,193,128,1, + 224,241,128,3,192,63,128,7,128,31,128,15,128,15,128,31, + 0,15,128,63,0,7,128,63,0,7,128,63,0,3,128,127, + 0,3,128,127,0,1,128,127,0,1,128,255,0,1,128,255, + 0,1,128,255,0,1,128,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,192,127,0,0,192,127,0,0,192,127,0,0,128,63, + 0,0,128,63,0,1,128,63,0,1,128,31,128,3,0,15, + 128,3,0,7,128,6,0,3,192,12,0,1,224,56,0,0, + 127,224,0,0,12,0,0,0,8,0,0,0,30,0,0,0, + 31,128,0,0,3,192,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,129,192,0,0,199,192,0,0,63,0,0,27, + 45,180,33,3,0,0,224,0,0,1,240,0,0,1,240,0, + 0,0,248,0,0,0,124,0,0,0,60,0,0,0,14,0, + 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, + 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, + 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, + 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, + 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, + 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, + 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, + 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, + 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, + 224,255,255,255,224,255,255,255,224,27,45,180,33,3,0,0, + 0,56,0,0,0,120,0,0,0,248,0,0,0,248,0,0, + 1,240,0,0,3,192,0,0,3,128,0,0,6,0,0,0, + 4,0,0,0,0,0,0,0,0,0,0,255,255,255,224,15, + 224,31,224,15,224,7,224,15,224,3,224,15,224,1,224,15, + 224,1,224,15,224,0,224,15,224,0,224,15,224,0,96,15, + 224,48,96,15,224,48,96,15,224,48,0,15,224,112,0,15, + 224,112,0,15,224,240,0,15,225,240,0,15,255,240,0,15, + 225,240,0,15,224,240,0,15,224,112,0,15,224,112,32,15, + 224,48,96,15,224,48,96,15,224,48,96,15,224,0,96,15, + 224,0,224,15,224,0,224,15,224,0,224,15,224,1,224,15, + 224,3,224,15,224,3,224,15,224,15,224,255,255,255,224,255, + 255,255,224,27,44,176,33,3,0,0,6,0,0,0,15,0, + 0,0,15,128,0,0,31,192,0,0,57,224,0,0,240,112, + 0,3,192,28,0,0,0,4,0,0,0,0,0,0,0,0, + 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, + 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, + 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, + 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, + 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, + 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, + 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, + 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, + 224,255,255,255,224,255,255,255,224,27,43,172,33,3,0,1, + 224,120,0,3,240,252,0,3,240,252,0,3,240,252,0,3, + 240,252,0,1,224,120,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, + 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, + 224,0,224,15,224,0,224,15,224,48,96,15,224,48,96,15, + 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, + 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, + 224,112,0,15,224,112,96,15,224,48,96,15,224,48,96,15, + 224,48,96,15,224,0,96,15,224,0,224,15,224,0,224,15, + 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, + 224,15,224,255,255,255,224,255,255,255,224,16,45,90,21,3, + 0,56,0,124,0,124,0,62,0,31,0,15,0,3,128,1, + 192,0,0,0,0,0,0,255,255,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,255,255,16,45,90,21,3, + 0,0,14,0,30,0,62,0,60,0,120,0,240,0,224,1, + 192,0,0,0,0,0,0,255,255,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,255,255,16,44,88,21,3, + 0,1,192,3,192,3,224,7,240,31,120,60,28,240,7,0, + 1,0,0,0,0,255,255,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,255,255,255,255,16,43,86,21,3,0,120, + 30,252,63,252,63,252,63,252,63,120,30,0,0,0,0,0, + 0,255,255,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,255,255,32,34,136,37,3,0,255,255,248,0,7, + 240,31,0,7,240,7,128,7,240,3,224,7,240,1,240,7, + 240,1,240,7,240,0,248,7,240,0,252,7,240,0,252,7, + 240,0,254,7,240,0,254,7,240,0,254,7,240,0,255,7, + 240,0,255,7,240,0,255,7,240,0,255,255,255,0,255,7, + 240,0,255,7,240,0,255,7,240,0,255,7,240,0,255,7, + 240,0,254,7,240,0,254,7,240,0,254,7,240,0,254,7, + 240,0,252,7,240,0,252,7,240,0,248,7,240,1,240,7, + 240,1,224,7,240,3,192,7,240,7,128,7,240,31,0,255, + 255,248,0,34,44,220,37,2,255,0,7,128,128,0,0,15, + 241,128,0,0,31,255,0,0,0,16,255,0,0,0,16,60, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,224,15,255,192,31,240,3,255,0, + 15,240,0,252,0,15,248,0,120,0,7,252,0,48,0,3, + 254,0,48,0,3,254,0,48,0,3,255,0,48,0,3,255, + 128,48,0,3,255,128,48,0,3,127,192,48,0,3,63,224, + 48,0,3,31,224,48,0,3,31,240,48,0,3,15,248,48, + 0,3,7,248,48,0,3,7,252,48,0,3,3,254,48,0, + 3,1,255,48,0,3,1,255,48,0,3,0,255,176,0,3, + 0,127,240,0,3,0,127,240,0,3,0,63,240,0,3,0, + 31,240,0,3,0,15,240,0,3,0,15,240,0,3,0,7, + 240,0,3,0,3,240,0,3,0,3,240,0,7,128,1,240, + 0,15,192,0,240,0,63,240,0,240,0,255,252,0,112,0, + 0,0,0,48,0,28,45,180,33,3,0,0,192,0,0,1, + 224,0,0,1,240,0,0,0,248,0,0,0,120,0,0,0, + 60,0,0,0,28,0,0,0,6,0,0,0,2,0,0,0, + 0,0,0,0,0,0,0,0,63,192,0,0,224,112,0,3, + 192,56,0,7,128,30,0,15,128,30,0,15,0,15,0,31, + 0,15,128,63,0,15,192,63,0,15,192,127,0,15,192,127, + 0,15,224,127,0,15,224,127,0,15,224,255,0,15,240,255, + 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, + 0,15,240,255,0,15,240,255,0,15,240,127,0,15,224,127, + 0,15,224,127,0,15,224,127,0,15,192,63,0,15,192,63, + 0,15,192,31,0,15,128,15,0,15,0,15,128,31,0,7, + 128,30,0,3,192,60,0,0,224,112,0,0,63,192,0,28, + 45,180,33,3,0,0,0,48,0,0,0,120,0,0,0,248, + 0,0,1,240,0,0,1,224,0,0,3,192,0,0,3,128, + 0,0,6,0,0,0,4,0,0,0,0,0,0,0,0,0, + 0,0,63,192,0,0,224,112,0,3,192,56,0,7,128,30, + 0,15,128,30,0,15,0,15,0,31,0,15,128,63,0,15, + 192,63,0,15,192,127,0,15,192,127,0,15,224,127,0,15, + 224,127,0,15,224,255,0,15,240,255,0,15,240,255,0,15, + 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, + 240,255,0,15,240,127,0,15,224,127,0,15,224,127,0,15, + 224,127,0,15,192,63,0,15,192,63,0,15,192,31,0,15, + 128,15,0,15,0,15,128,31,0,7,128,30,0,3,192,60, + 0,0,224,112,0,0,63,192,0,28,45,180,33,3,0,0, + 6,0,0,0,14,0,0,0,15,0,0,0,31,128,0,0, + 63,192,0,0,121,224,0,0,240,240,0,3,192,60,0,3, + 0,12,0,0,0,0,0,0,0,0,0,0,63,192,0,0, + 224,112,0,3,192,56,0,7,128,30,0,15,128,30,0,15, + 0,15,0,31,0,15,128,63,0,15,192,63,0,15,192,127, + 0,15,192,127,0,15,224,127,0,15,224,127,0,15,224,255, + 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, + 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,127, + 0,15,224,127,0,15,224,127,0,15,224,127,0,15,192,63, + 0,15,192,63,0,15,192,31,0,15,128,15,0,15,0,15, + 128,31,0,7,128,30,0,3,192,60,0,0,224,112,0,0, + 63,192,0,28,44,176,33,3,0,0,0,8,0,0,126,24, + 0,0,255,248,0,1,255,240,0,1,7,224,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,63,192,0,0,224,112,0,3,192,56,0,7,128,30, + 0,15,128,30,0,15,0,15,0,31,0,15,128,63,0,15, + 192,63,0,15,192,127,0,15,192,127,0,15,224,127,0,15, + 224,127,0,15,224,255,0,15,240,255,0,15,240,255,0,15, + 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, + 240,255,0,15,240,127,0,15,224,127,0,15,224,127,0,15, + 224,127,0,15,192,63,0,15,192,63,0,15,192,31,0,15, + 128,15,0,15,0,15,128,31,0,7,128,30,0,3,192,60, + 0,0,224,112,0,0,63,192,0,28,44,176,33,3,0,1, + 224,120,0,3,240,252,0,3,240,252,0,3,240,252,0,3, + 240,252,0,1,224,120,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,63,192,0,0,224,112,0,3, + 192,56,0,7,128,30,0,15,128,30,0,15,0,15,0,31, + 0,15,128,63,0,15,192,63,0,15,192,127,0,15,192,127, + 0,15,224,127,0,15,224,127,0,15,224,255,0,15,240,255, + 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, + 0,15,240,255,0,15,240,255,0,15,240,127,0,15,224,127, + 0,15,224,127,0,15,224,127,0,15,192,63,0,15,192,63, + 0,15,192,31,0,15,128,15,0,15,0,15,128,31,0,7, + 128,30,0,3,192,60,0,0,224,112,0,0,63,192,0,31, + 30,120,45,7,253,32,0,0,0,112,0,0,12,248,0,0, + 30,124,0,0,60,62,0,0,120,31,0,1,240,15,128,3, + 224,7,192,7,192,3,224,15,128,1,240,31,0,0,248,62, + 0,0,124,124,0,0,62,248,0,0,31,240,0,0,15,224, + 0,0,7,192,0,0,15,224,0,0,31,240,0,0,62,248, + 0,0,124,60,0,0,248,30,0,1,240,15,0,3,224,7, + 128,7,192,3,192,15,128,1,224,31,0,0,240,62,0,0, + 120,124,0,0,60,248,0,0,30,112,0,0,12,28,34,136, + 33,3,1,0,63,224,48,0,224,112,96,1,192,60,192,7, + 128,31,192,15,128,31,128,15,0,15,0,31,0,15,128,63, + 0,15,192,63,0,31,192,63,0,31,224,127,0,63,224,127, + 0,111,224,127,0,239,224,255,0,207,240,255,1,143,240,255, + 3,15,240,255,7,15,240,255,14,15,240,255,12,15,240,255, + 24,15,240,255,48,15,240,255,112,15,224,127,96,15,224,127, + 192,15,224,127,128,15,192,63,128,15,192,63,0,15,192,31, + 0,15,128,15,0,15,0,31,128,30,0,63,128,30,0,51, + 192,56,0,96,224,112,0,192,127,192,0,33,45,225,38,3, + 0,0,24,0,0,0,0,60,0,0,0,0,62,0,0,0, + 0,31,0,0,0,0,15,128,0,0,0,7,128,0,0,0, + 1,192,0,0,0,0,224,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,7,255,128,15,224,1, + 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, + 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, + 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, + 0,0,33,45,225,38,3,0,0,0,7,0,0,0,0,15, + 0,0,0,0,15,0,0,0,0,31,0,0,0,0,60,0, + 0,0,0,56,0,0,0,0,112,0,0,0,0,224,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,7,255,128,15,224,1,254,0,15,224,0,120,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,7,224,0,48,0,7,224,0,96,0,7,240,0,96,0, + 3,240,0,192,0,1,248,1,192,0,0,252,3,128,0,0, + 127,159,0,0,0,31,252,0,0,33,45,225,38,3,0,0, + 0,64,0,0,0,0,224,0,0,0,1,240,0,0,0,3, + 240,0,0,0,7,248,0,0,0,15,28,0,0,0,30,15, + 0,0,0,112,3,128,0,0,0,0,128,0,0,0,0,0, + 0,0,0,0,0,0,255,255,7,255,128,15,224,1,254,0, + 15,224,0,120,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,7,224,0,48,0,7,224,0, + 96,0,7,240,0,96,0,3,240,0,192,0,1,248,1,192, + 0,0,252,3,128,0,0,127,159,0,0,0,31,252,0,0, + 33,44,220,38,3,0,0,60,15,0,0,0,126,31,128,0, + 0,126,31,128,0,0,126,31,128,0,0,126,31,128,0,0, + 60,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,254,7,255,128,15,224,1, + 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, + 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, + 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, + 0,0,32,45,180,35,2,0,0,0,7,0,0,0,15,0, + 0,0,31,0,0,0,31,0,0,0,60,0,0,0,120,0, + 0,0,112,0,0,0,192,0,0,0,128,0,0,0,0,0, + 0,0,0,0,255,254,15,255,31,248,1,248,15,248,0,240, + 7,248,0,224,7,248,0,192,3,252,0,192,3,252,0,192, + 1,252,1,128,1,254,1,128,0,254,3,0,0,255,3,0, + 0,255,3,0,0,127,134,0,0,127,134,0,0,63,196,0, + 0,63,204,0,0,31,204,0,0,31,248,0,0,15,248,0, + 0,15,248,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,255,255,0,29,34,136,34, + 3,0,255,255,128,0,7,240,0,0,7,240,0,0,7,240, + 0,0,7,240,0,0,7,240,0,0,7,255,248,0,7,240, + 63,0,7,240,15,192,7,240,15,224,7,240,15,240,7,240, + 7,240,7,240,7,248,7,240,7,248,7,240,7,248,7,240, + 7,248,7,240,7,248,7,240,7,248,7,240,7,240,7,240, + 15,240,7,240,15,224,7,240,15,192,7,240,31,0,7,255, + 252,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, + 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, + 0,0,7,240,0,0,255,255,128,0,23,34,102,27,2,0, + 0,127,0,1,227,128,3,195,224,7,193,224,7,193,240,15, + 129,240,15,129,240,15,129,240,31,129,240,31,129,224,31,129, + 224,31,129,192,31,131,128,31,188,0,31,131,0,31,129,192, + 31,128,240,31,128,248,31,128,248,31,128,124,31,128,124,31, + 128,126,31,128,126,31,128,126,31,128,126,31,128,126,31,128, + 126,31,184,126,31,252,124,31,252,124,31,248,252,31,248,248, + 31,184,240,255,159,224,21,34,102,24,2,0,24,0,0,60, + 0,0,62,0,0,30,0,0,15,0,0,7,128,0,3,128, + 0,1,192,0,0,192,0,0,0,0,0,0,0,0,0,0, + 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, + 31,128,126,31,128,60,31,128,0,127,128,3,223,128,15,31, + 128,30,31,128,62,31,128,124,31,128,252,31,128,252,31,128, + 252,31,136,252,31,136,252,31,152,254,63,144,127,127,240,63, + 143,224,21,34,102,24,2,0,0,12,0,0,30,0,0,62, + 0,0,62,0,0,124,0,0,120,0,0,224,0,0,192,0, + 1,128,0,0,0,0,0,0,0,0,0,0,15,248,0,24, + 62,0,56,63,0,120,31,0,124,31,128,126,31,128,126,31, + 128,62,31,128,8,63,128,1,255,128,7,159,128,30,31,128, + 62,31,128,124,31,128,124,31,128,252,31,128,252,31,136,252, + 31,136,252,31,152,254,63,144,127,127,240,63,143,224,21,34, + 102,24,2,0,1,192,0,1,224,0,3,224,0,3,224,0, + 7,240,0,7,56,0,14,28,0,28,14,0,48,7,0,0, + 0,0,0,0,0,0,0,0,15,248,0,24,62,0,56,63, + 0,120,31,0,124,31,128,126,31,128,126,31,128,62,31,128, + 8,63,128,1,255,128,7,159,128,30,31,128,62,31,128,124, + 31,128,124,31,128,252,31,128,252,31,136,252,31,136,252,31, + 152,254,63,144,127,127,240,63,143,224,21,32,96,24,2,0, + 15,3,0,31,195,0,63,254,0,49,252,0,32,120,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,248, + 0,24,62,0,56,63,0,120,31,0,124,31,128,126,31,128, + 126,31,128,62,31,128,8,63,128,1,255,128,7,159,128,30, + 31,128,62,31,128,124,31,128,124,31,128,252,31,128,252,31, + 136,252,31,136,252,31,152,254,63,144,127,127,240,63,143,224, + 21,32,96,24,2,0,60,30,0,126,63,0,126,63,0,126, + 63,0,126,63,0,60,30,0,0,0,0,0,0,0,0,0, + 0,0,0,0,15,248,0,24,62,0,56,63,0,120,31,0, + 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, + 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, + 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, + 127,127,240,63,143,224,21,34,102,24,2,1,3,240,0,7, + 248,0,14,28,0,12,12,0,12,12,0,12,12,0,14,28, + 0,7,248,0,1,224,0,0,0,0,0,0,0,0,0,0, + 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, + 31,128,126,31,128,62,31,128,8,63,128,1,255,128,7,31, + 128,30,31,128,62,31,128,124,31,128,124,31,128,252,31,128, + 252,31,136,252,31,136,252,31,152,254,63,144,127,111,240,63, + 199,224,29,22,88,34,2,1,15,240,255,128,24,63,195,192, + 56,63,195,224,120,31,131,240,124,31,129,240,126,31,129,240, + 126,31,129,248,62,31,129,248,0,63,129,248,1,255,129,248, + 7,31,255,248,30,31,128,0,62,31,128,0,124,31,128,0, + 124,31,128,8,252,31,128,8,252,31,128,24,252,31,192,16, + 252,31,192,16,254,51,192,32,127,97,240,64,63,192,255,128, + 18,32,96,22,2,247,3,252,0,15,6,0,31,7,0,62, + 7,128,62,7,128,126,15,128,124,31,128,252,31,128,252,31, + 0,252,14,0,252,0,0,252,0,0,252,0,0,252,0,0, + 252,0,0,124,0,64,124,0,192,62,0,128,62,1,128,30, + 1,0,15,130,0,3,252,0,0,128,0,0,128,0,1,128, + 0,0,240,0,0,56,0,0,60,0,0,60,0,0,60,0, + 4,120,0,3,240,0,18,34,102,23,2,0,28,0,0,30, + 0,0,30,0,0,31,0,0,15,128,0,7,128,0,3,192, + 0,0,192,0,0,96,0,0,0,0,0,0,0,0,0,0, + 3,252,0,14,30,0,30,31,0,62,15,128,60,15,128,124, + 15,128,124,15,192,252,15,192,252,15,192,252,15,192,255,255, + 192,252,0,0,252,0,0,252,0,0,252,0,64,124,0,64, + 124,0,192,62,0,192,62,1,128,31,1,0,15,135,0,3, + 252,0,18,34,102,23,2,0,0,14,0,0,31,0,0,31, + 0,0,62,0,0,60,0,0,120,0,0,240,0,0,224,0, + 1,128,0,0,0,0,0,0,0,0,0,0,3,252,0,14, + 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, + 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, + 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, + 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, + 102,23,2,0,1,224,0,1,224,0,1,240,0,3,240,0, + 3,248,0,7,56,0,14,28,0,28,14,0,56,3,0,0, + 0,0,0,0,0,0,0,0,3,252,0,14,30,0,30,31, + 0,62,15,128,60,15,128,124,15,128,124,15,192,252,15,192, + 252,15,192,252,15,192,255,255,192,252,0,0,252,0,0,252, + 0,0,252,0,64,124,0,64,124,0,192,62,0,192,62,0, + 128,31,1,0,15,131,0,3,252,0,18,32,96,23,2,0, + 30,15,0,63,31,128,63,31,128,63,31,128,63,31,128,30, + 15,0,0,0,0,0,0,0,0,0,0,0,0,0,3,252, + 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, + 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, + 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, + 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, + 12,34,68,15,1,0,96,0,240,0,248,0,248,0,124,0, + 28,0,14,0,7,0,3,0,0,0,0,0,0,0,127,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, + 31,128,31,128,31,128,31,128,127,240,12,34,68,15,2,0, + 0,224,1,240,1,240,3,224,7,192,7,128,15,0,28,0, + 24,0,0,0,0,0,0,0,255,0,63,0,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, + 63,0,255,224,14,34,68,14,0,0,7,128,15,128,15,128, + 15,192,31,224,60,224,56,112,112,60,192,12,0,0,0,0, + 0,0,63,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,192,15,192,63,248,14,32, + 64,14,1,0,120,120,252,252,252,252,252,252,252,252,120,120, + 0,0,0,0,0,0,0,0,63,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, + 15,192,63,248,20,34,102,24,2,0,15,193,128,15,227,0, + 7,254,0,3,248,0,1,248,0,1,252,0,3,254,0,14, + 126,0,24,63,0,0,63,128,0,31,128,0,15,192,7,255, + 192,15,15,224,30,7,224,62,7,224,62,7,224,124,7,240, + 124,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,7, + 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, + 23,32,96,27,2,0,3,224,96,7,248,64,15,255,192,12, + 127,128,8,15,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,31,192,63,35,224,63,65,240,63,65,248, + 63,129,248,63,129,248,63,1,248,63,1,248,63,1,248,63, + 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, + 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, + 63,1,248,255,199,254,20,34,102,24,2,0,14,0,0,31, + 0,0,31,0,0,15,128,0,7,192,0,3,192,0,1,224, + 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, + 3,252,0,15,15,0,30,7,128,62,7,192,62,7,192,124, + 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, + 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, + 124,3,224,62,7,192,62,7,192,30,7,128,15,15,0,3, + 252,0,20,34,102,24,2,0,0,7,0,0,15,128,0,15, + 128,0,31,0,0,62,0,0,60,0,0,120,0,0,224,0, + 0,192,0,0,0,0,0,0,0,0,0,0,3,252,0,15, + 15,0,30,7,128,62,7,192,62,7,192,124,3,224,124,3, + 224,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, + 252,3,240,252,3,240,252,3,240,124,3,224,124,3,224,62, + 7,192,62,7,192,30,7,128,15,15,0,3,252,0,20,34, + 102,24,2,0,0,240,0,0,240,0,1,248,0,1,248,0, + 3,252,0,3,156,0,7,14,0,14,7,0,24,1,128,0, + 0,0,0,0,0,0,0,0,3,252,0,15,15,0,30,7, + 128,62,7,192,62,7,192,124,3,224,124,3,224,252,3,240, + 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,124,3,224,124,3,224,62,7,192,62,7, + 192,30,7,128,15,15,0,3,252,0,20,32,96,24,2,0, + 7,192,128,15,240,128,31,255,128,16,255,0,16,62,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,252, + 0,15,15,0,30,7,128,62,7,192,62,7,192,124,3,224, + 124,3,224,252,3,240,252,3,240,252,3,240,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,3, + 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, + 20,32,96,24,2,0,30,15,0,63,31,128,63,31,128,63, + 31,128,63,31,128,30,15,0,0,0,0,0,0,0,0,0, + 0,0,0,0,3,252,0,15,15,0,30,7,128,62,7,192, + 62,7,192,124,3,224,124,3,224,252,3,240,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, + 240,124,3,224,124,3,224,62,7,192,62,7,192,30,7,128, + 15,15,0,3,252,0,41,32,192,45,2,253,0,0,28,0, + 0,0,0,0,62,0,0,0,0,0,127,0,0,0,0,0, + 127,0,0,0,0,0,127,0,0,0,0,0,62,0,0,0, + 0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, + 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,28,0,0,0,0,0,62,0,0,0,0,0, + 127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0, + 0,0,62,0,0,0,0,0,28,0,0,0,20,22,66,24, + 2,1,3,252,48,15,15,96,30,15,192,62,7,192,62,7, + 192,124,7,224,124,7,224,252,15,240,252,27,240,252,51,240, + 252,115,240,252,227,240,252,195,240,253,131,240,255,3,240,126, + 3,224,126,3,224,62,7,192,62,7,192,63,7,128,111,15, + 0,195,252,0,24,34,102,26,1,0,7,0,0,7,128,0, + 7,192,0,7,192,0,3,224,0,1,224,0,0,112,0,0, + 48,0,0,24,0,0,0,0,0,0,0,0,0,0,255,143, + 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, + 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,131, + 248,31,131,248,31,133,248,15,133,248,15,201,248,7,241,255, + 24,34,102,26,1,0,0,3,128,0,3,128,0,7,128,0, + 15,128,0,15,0,0,30,0,0,28,0,0,56,0,0,48, + 0,0,0,0,0,0,0,0,0,0,255,143,248,31,129,248, + 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,129,248,31,129,248,31,129,248,31,131,248,31,131,248, + 31,133,248,15,133,248,15,201,248,7,241,255,24,34,102,26, + 1,0,0,56,0,0,120,0,0,124,0,0,252,0,0,254, + 0,1,206,0,3,135,0,7,3,128,14,0,192,0,0,0, + 0,0,0,0,0,0,255,143,248,31,129,248,31,129,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, + 31,129,248,31,129,248,31,131,248,31,131,248,31,133,248,15, + 133,248,15,201,248,7,241,255,24,32,96,26,1,0,7,131, + 192,15,199,224,15,199,224,15,199,224,15,199,224,7,131,192, + 0,0,0,0,0,0,0,0,0,0,0,0,255,135,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, + 31,129,248,31,129,248,31,129,248,31,129,248,31,131,248,31, + 131,248,31,133,248,15,133,248,15,201,248,7,241,255,23,45, + 135,25,1,245,0,1,192,0,1,224,0,3,224,0,7,192, + 0,7,128,0,15,0,0,14,0,0,28,0,0,24,0,0, + 0,0,0,0,0,0,0,0,255,241,254,63,192,120,31,128, + 48,15,192,32,15,192,32,15,192,96,7,224,64,7,224,64, + 3,240,192,3,240,128,1,248,128,1,249,128,0,249,0,0, + 253,0,0,253,0,0,126,0,0,126,0,0,62,0,0,60, + 0,0,28,0,0,28,0,0,12,0,0,8,0,0,8,0, + 0,8,0,15,16,0,31,16,0,63,144,0,63,32,0,62, + 32,0,62,64,0,31,192,0,15,0,0,22,44,132,25,1, + 244,3,128,0,15,128,0,63,128,0,255,128,0,223,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 135,240,31,159,248,31,177,248,31,160,252,31,192,252,31,192, + 252,31,192,252,31,128,252,31,128,252,31,128,248,31,129,248, + 31,129,240,31,129,240,31,129,224,31,131,192,31,131,128,31, + 135,128,31,134,0,31,140,0,31,152,0,31,224,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,30,0,0,120,0,0,224, + 0,0,128,0,0,23,44,132,25,1,245,3,193,224,7,227, + 240,7,227,240,7,227,240,7,227,240,3,193,224,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,241,254,63, + 192,120,31,128,48,15,192,32,15,192,32,15,192,96,7,224, + 64,7,224,64,3,240,192,3,240,128,1,240,128,1,249,128, + 0,249,0,0,253,0,0,253,0,0,126,0,0,126,0,0, + 62,0,0,60,0,0,28,0,0,28,0,0,12,0,0,8, + 0,0,8,0,0,8,0,15,16,0,31,16,0,63,144,0, + 63,32,0,62,32,0,62,64,0,31,192,0,15,0,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 34 + Calculated Max Values w=41 h=44 x= 6 y=13 dx=45 dy= 0 ascent=35 len=246 + Font Bounding box w=133 h=60 x=-41 y=-14 + Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 + Pure Font ascent =34 descent= 0 + X Font ascent =34 descent= 0 + Max Font ascent =35 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb35n[1539] U8G_SECTION(".progmem.u8g_font_osb35n") = { + 0,133,60,215,242,34,0,0,0,0,42,57,0,35,247,34, + 0,17,19,57,24,4,13,1,128,0,3,192,0,3,192,0, + 227,195,0,241,135,128,248,143,128,252,159,128,126,191,0,3, + 192,0,3,192,0,126,191,0,252,159,128,248,143,128,241,135, + 128,225,195,0,3,192,0,3,192,0,3,192,0,1,128,0, + 41,41,246,45,2,249,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,255,255,255,255,255,128,255,255, + 255,255,255,128,255,255,255,255,255,128,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, + 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, + 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, + 0,0,28,0,0,0,0,0,28,0,0,0,9,15,30,13, + 2,248,126,0,255,0,255,128,255,128,255,128,127,128,1,128, + 1,128,1,128,3,0,2,0,6,0,28,0,56,0,96,0, + 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, + 8,6,6,14,3,1,126,255,255,255,255,126,16,44,88,22, + 3,247,0,7,0,15,0,14,0,14,0,14,0,30,0,28, + 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, + 0,224,0,224,0,224,1,224,1,192,1,192,3,192,3,128, + 3,128,7,128,7,0,7,0,15,0,14,0,14,0,14,0, + 30,0,28,0,28,0,60,0,56,0,56,0,120,0,112,0, + 112,0,240,0,224,0,224,0,224,0,23,35,105,28,2,0, + 0,16,0,0,254,0,3,199,128,7,131,192,15,1,224,15, + 1,224,31,1,240,63,1,248,63,1,248,127,1,248,127,1, + 252,127,1,252,127,1,252,255,1,254,255,1,254,255,1,254, + 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, + 1,254,255,1,254,127,1,252,127,1,252,127,1,252,127,1, + 252,63,1,248,63,1,248,31,1,240,15,1,224,15,1,224, + 7,131,192,3,199,128,0,254,0,16,34,68,28,6,0,0, + 240,0,240,1,240,7,240,255,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,255, + 255,255,255,21,34,102,28,3,1,7,255,0,14,15,192,28, + 7,224,56,7,240,120,3,240,120,3,248,248,3,248,252,3, + 248,255,3,248,255,3,248,255,7,248,127,7,240,63,15,240, + 12,15,224,0,31,192,0,63,128,0,127,0,0,252,0,1, + 240,0,3,192,0,7,128,0,14,0,24,12,0,24,24,0, + 24,48,0,24,96,0,24,111,192,56,127,255,248,255,255,240, + 239,255,240,195,255,240,193,255,224,192,255,192,192,63,128,22, + 34,102,28,3,1,7,255,0,14,15,192,28,7,224,56,7, + 240,120,3,240,124,3,248,126,3,248,127,3,248,127,3,248, + 127,3,248,63,3,240,30,3,240,0,7,224,0,7,192,0, + 15,0,7,248,0,0,31,128,0,15,192,0,7,224,0,7, + 240,0,3,248,0,3,248,62,3,252,127,3,252,255,3,252, + 255,3,252,255,3,252,254,3,252,252,3,248,248,7,248,120, + 7,240,56,15,224,30,31,192,15,255,0,23,34,102,28,2, + 0,0,7,192,0,15,192,0,15,192,0,31,192,0,63,192, + 0,63,192,0,127,192,0,127,192,0,255,192,0,223,192,1, + 223,192,1,159,192,3,159,192,7,31,192,6,31,192,14,31, + 192,12,31,192,28,31,192,24,31,192,56,31,192,112,31,192, + 96,31,192,224,31,192,255,255,254,0,31,192,0,31,192,0, + 31,192,0,31,192,0,31,192,0,31,192,0,31,192,0,31, + 192,7,255,252,7,255,252,21,34,102,28,4,0,32,0,192, + 60,7,128,63,255,128,63,255,0,63,254,0,63,248,0,63, + 224,0,63,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,48,0,0,49,252,0,54,63,0,60,15,192,56,15,224, + 48,15,224,32,7,240,0,7,240,0,7,248,0,7,248,8, + 7,248,62,7,248,126,7,248,254,7,248,254,7,248,254,7, + 240,248,7,240,240,7,224,112,15,192,48,15,192,28,31,0, + 15,252,0,22,34,102,28,3,1,0,255,128,3,192,192,7, + 192,96,15,128,240,31,131,240,31,7,240,63,15,240,63,15, + 240,127,15,224,127,7,192,127,3,0,127,0,0,255,0,0, + 255,0,0,255,63,0,255,255,192,255,195,224,255,131,240,255, + 3,248,255,1,248,255,1,252,255,1,252,255,1,252,127,1, + 252,127,1,252,127,1,252,127,1,252,63,1,248,63,1,248, + 31,1,248,15,129,240,7,131,224,3,195,192,1,255,0,20, + 34,102,28,5,1,71,224,224,207,240,224,223,248,112,255,252, + 48,255,254,48,255,255,240,255,255,240,224,31,176,192,0,32, + 192,0,96,128,0,96,128,0,192,128,1,192,0,1,128,0, + 3,128,0,7,0,0,15,0,0,14,0,0,30,0,0,60, + 0,0,124,0,0,252,0,1,252,0,1,248,0,3,248,0, + 3,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, + 248,0,7,248,0,3,248,0,3,240,0,23,34,102,28,3, + 1,1,255,128,7,0,192,12,0,96,28,0,48,56,0,24, + 56,0,24,120,0,24,120,0,24,124,0,24,126,0,24,127, + 0,48,127,192,32,127,240,96,63,255,128,63,255,0,31,255, + 192,15,255,240,7,255,248,15,255,248,24,63,252,48,15,252, + 112,3,254,96,0,254,224,0,126,224,0,62,224,0,30,224, + 0,30,224,0,12,240,0,28,112,0,24,56,0,24,28,0, + 48,15,0,192,3,255,0,22,34,102,28,3,1,3,254,0, + 15,15,0,31,7,128,62,7,192,126,3,224,126,3,240,126, + 3,240,254,3,248,254,3,248,254,3,248,254,3,248,254,3, + 252,254,3,252,254,3,252,126,3,252,127,7,252,63,7,252, + 31,15,252,15,255,252,3,243,252,0,3,252,0,3,252,0, + 3,248,7,3,248,31,131,248,31,195,248,63,195,240,63,195, + 240,63,131,224,62,7,224,60,7,192,28,15,128,14,31,0, + 7,252,0}; +/* + Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 35, '1' Height: 34 + Calculated Max Values w=49 h=46 x= 6 y=25 dx=52 dy= 0 ascent=38 len=246 + Font Bounding box w=133 h=60 x=-41 y=-14 + Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 + Pure Font ascent =35 descent=-10 + X Font ascent =35 descent=-10 + Max Font ascent =38 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osb35r[10245] U8G_SECTION(".progmem.u8g_font_osb35r") = { + 0,133,60,215,242,35,12,218,29,222,32,127,246,38,245,35, + 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, + 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, + 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, + 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, + 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, + 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, + 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, + 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, + 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, + 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, + 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, + 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, + 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, + 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, + 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, + 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, + 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, + 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, + 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, + 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, + 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, + 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, + 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, + 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, + 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, + 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, + 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, + 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, + 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, + 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, + 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, + 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, + 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, + 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, + 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, + 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, + 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, + 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, + 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, + 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, + 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, + 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, + 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, + 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, + 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, + 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, + 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, + 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, + 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, + 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, + 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, + 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, + 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, + 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, + 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, + 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, + 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, + 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, + 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, + 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, + 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, + 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, + 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, + 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, + 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, + 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, + 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, + 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, + 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, + 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, + 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, + 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, + 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, + 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, + 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, + 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, + 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, + 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, + 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, + 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, + 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, + 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, + 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, + 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, + 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, + 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, + 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, + 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, + 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, + 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, + 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, + 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, + 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, + 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, + 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, + 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, + 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, + 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, + 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, + 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, + 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, + 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, + 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, + 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, + 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, + 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, + 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, + 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, + 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, + 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, + 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, + 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, + 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, + 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, + 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, + 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, + 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, + 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, + 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, + 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, + 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, + 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, + 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, + 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, + 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, + 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, + 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, + 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, + 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, + 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, + 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, + 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, + 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, + 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, + 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, + 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, + 0,0,0,0,0,0,126,255,255,255,255,126,9,31,62,13, + 2,248,63,0,127,128,127,128,127,128,127,128,63,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,126,0,255,0,255,128,255,128,255,128,127,128,1,128, + 1,128,1,128,3,0,3,0,6,0,28,0,56,0,96,0, + 37,40,200,45,4,249,0,0,0,0,48,0,0,0,0,240, + 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, + 0,0,126,0,0,0,1,252,0,0,0,7,240,0,0,0, + 15,192,0,0,0,63,0,0,0,0,252,0,0,0,3,240, + 0,0,0,15,224,0,0,0,63,128,0,0,0,126,0,0, + 0,1,248,0,0,0,7,224,0,0,0,31,128,0,0,0, + 127,0,0,0,0,252,0,0,0,0,248,0,0,0,0,126, + 0,0,0,0,31,128,0,0,0,15,224,0,0,0,3,248, + 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, + 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, + 0,0,0,31,192,0,0,0,7,224,0,0,0,1,248,0, + 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, + 0,0,3,248,0,0,0,0,248,0,0,0,0,48,41,13, + 78,45,2,6,255,255,255,255,255,128,255,255,255,255,255,128, + 255,255,255,255,255,128,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, + 255,128,37,40,200,45,4,249,96,0,0,0,0,120,0,0, + 0,0,252,0,0,0,0,63,0,0,0,0,15,192,0,0, + 0,3,240,0,0,0,1,252,0,0,0,0,127,0,0,0, + 0,31,128,0,0,0,7,224,0,0,0,1,248,0,0,0, + 0,126,0,0,0,0,63,128,0,0,0,15,224,0,0,0, + 3,240,0,0,0,0,252,0,0,0,0,63,0,0,0,0, + 15,192,0,0,0,7,240,0,0,0,1,248,0,0,0,0, + 248,0,0,0,3,240,0,0,0,15,192,0,0,0,63,128, + 0,0,0,254,0,0,0,1,248,0,0,0,7,224,0,0, + 0,31,128,0,0,0,126,0,0,0,1,252,0,0,0,7, + 240,0,0,0,31,192,0,0,0,63,0,0,0,0,252,0, + 0,0,3,240,0,0,0,15,224,0,0,0,63,128,0,0, + 0,254,0,0,0,0,248,0,0,0,0,96,0,0,0,0, + 15,34,68,22,3,1,31,240,59,248,96,252,96,252,192,126, + 192,126,192,126,192,126,192,126,64,252,96,252,48,248,1,240, + 1,224,3,192,3,128,7,0,7,0,14,0,12,16,12,16, + 12,16,12,16,6,32,3,192,0,0,0,0,0,128,3,224, + 7,240,7,240,7,240,7,240,3,224,35,34,170,39,2,1, + 0,15,255,0,0,0,56,1,224,0,0,224,0,112,0,1, + 128,0,28,0,7,0,0,14,0,14,0,0,7,0,12,0, + 248,3,0,28,3,205,243,128,56,7,135,241,128,56,15,7, + 225,192,112,31,7,225,192,112,62,7,224,224,112,62,7,224, + 224,224,124,7,192,224,224,124,7,192,224,224,124,7,192,224, + 224,252,15,192,224,224,248,15,128,224,224,248,15,128,224,224, + 248,15,129,192,224,248,31,129,192,224,248,31,129,128,112,248, + 31,3,128,112,248,63,3,0,112,120,111,6,0,56,60,199, + 140,0,56,31,3,240,0,28,0,0,0,0,14,0,0,0, + 0,7,0,0,0,0,3,128,0,0,0,1,192,0,96,0, + 0,120,1,192,0,0,31,255,0,0,33,35,175,36,2,0, + 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, + 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, + 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, + 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, + 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, + 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, + 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, + 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, + 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, + 0,3,0,15,240,0,2,0,15,240,0,6,0,7,240,0, + 15,0,7,248,0,31,0,15,252,0,255,240,255,255,128,28, + 34,136,33,3,0,255,255,240,0,15,224,126,0,15,224,31, + 0,15,224,31,128,15,224,15,192,15,224,15,192,15,224,15, + 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, + 224,15,224,15,192,15,224,15,192,15,224,31,128,15,224,30, + 0,15,224,60,0,15,255,224,0,15,224,124,0,15,224,63, + 0,15,224,31,128,15,224,15,192,15,224,15,224,15,224,15, + 240,15,224,15,240,15,224,15,240,15,224,15,240,15,224,15, + 240,15,224,15,240,15,224,15,224,15,224,15,224,15,224,31, + 192,15,224,31,128,15,224,126,0,255,255,248,0,26,34,136, + 31,3,1,0,127,193,128,1,224,241,128,3,192,63,128,15, + 128,31,128,15,128,15,128,31,0,15,128,63,0,7,128,63, + 0,7,128,127,0,3,128,127,0,3,128,127,0,3,128,127, + 0,1,128,255,0,1,128,255,0,1,128,255,0,1,128,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,192,127,0,0,192,127, + 0,0,192,127,0,0,128,63,0,1,128,63,0,1,128,63, + 0,1,128,31,128,3,0,15,128,3,0,7,128,6,0,3, + 192,12,0,1,224,56,0,0,127,224,0,32,34,136,37,3, + 0,255,255,248,0,15,224,31,0,15,224,7,128,15,224,3, + 224,15,224,1,240,15,224,1,240,15,224,0,248,15,224,0, + 252,15,224,0,252,15,224,0,254,15,224,0,254,15,224,0, + 254,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, + 255,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, + 255,15,224,0,255,15,224,0,254,15,224,0,254,15,224,0, + 254,15,224,0,254,15,224,0,252,15,224,0,252,15,224,0, + 248,15,224,1,240,15,224,1,224,15,224,3,192,15,224,7, + 128,15,224,30,0,255,255,248,0,27,34,136,33,3,0,255, + 255,255,224,15,224,31,224,15,224,7,224,15,224,3,224,15, + 224,1,224,15,224,1,224,15,224,0,224,15,224,0,224,15, + 224,0,96,15,224,48,96,15,224,48,96,15,224,48,0,15, + 224,112,0,15,224,112,0,15,224,240,0,15,225,240,0,15, + 255,240,0,15,225,240,0,15,224,240,0,15,224,112,0,15, + 224,112,32,15,224,48,96,15,224,48,96,15,224,48,96,15, + 224,0,96,15,224,0,96,15,224,0,224,15,224,0,224,15, + 224,1,224,15,224,3,224,15,224,3,224,15,224,15,224,255, + 255,255,224,255,255,255,224,28,34,136,32,3,0,255,255,255, + 240,7,240,15,240,7,240,3,240,7,240,1,240,7,240,1, + 240,7,240,0,240,7,240,0,240,7,240,0,112,7,240,0, + 112,7,240,24,48,7,240,24,48,7,240,24,48,7,240,56, + 48,7,240,56,0,7,240,120,0,7,240,248,0,7,255,248, + 0,7,240,248,0,7,240,120,0,7,240,56,0,7,240,56, + 0,7,240,24,0,7,240,24,0,7,240,24,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,255,255,128,0,30,34,136,35,3,1,0,127,224,192,0, + 224,120,192,3,192,31,192,7,128,15,192,15,128,7,192,31, + 0,7,192,31,0,3,192,63,0,3,192,63,0,1,192,127, + 0,1,192,127,0,1,192,127,0,0,192,255,0,0,192,255, + 0,0,192,255,0,0,0,255,0,0,0,255,0,0,0,255, + 3,255,252,255,3,255,252,255,0,31,192,255,0,31,192,255, + 0,31,192,127,0,31,192,127,0,31,192,127,0,31,192,127, + 0,31,192,63,0,31,192,63,0,31,192,31,0,31,192,15, + 128,57,192,15,128,49,192,7,192,96,192,1,224,192,192,0, + 127,128,192,34,34,170,39,3,0,255,255,63,255,192,7,240, + 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, + 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, + 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, + 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, + 240,1,252,0,7,240,1,252,0,7,255,255,252,0,7,240, + 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, + 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, + 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, + 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, + 240,1,252,0,7,240,1,252,0,7,240,1,252,0,255,255, + 63,255,192,16,34,68,21,3,0,255,255,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, + 240,7,240,7,240,7,240,7,240,7,240,255,255,23,34,102, + 26,2,0,1,255,254,0,15,224,0,15,224,0,15,224,0, + 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, + 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, + 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, + 15,224,30,15,224,126,15,224,127,15,224,255,15,224,255,15, + 224,254,15,224,254,15,224,248,15,192,112,15,192,96,15,128, + 48,31,0,24,30,0,15,248,0,33,34,170,37,3,0,255, + 255,31,254,0,7,240,7,240,0,7,240,3,192,0,7,240, + 3,128,0,7,240,3,0,0,7,240,7,0,0,7,240,14, + 0,0,7,240,12,0,0,7,240,24,0,0,7,240,48,0, + 0,7,240,96,0,0,7,240,224,0,0,7,240,224,0,0, + 7,241,240,0,0,7,243,240,0,0,7,247,248,0,0,7, + 255,252,0,0,7,255,252,0,0,7,249,254,0,0,7,241, + 254,0,0,7,240,255,0,0,7,240,255,0,0,7,240,127, + 128,0,7,240,127,128,0,7,240,63,192,0,7,240,63,192, + 0,7,240,31,224,0,7,240,31,224,0,7,240,15,240,0, + 7,240,15,240,0,7,240,7,248,0,7,240,7,248,0,7, + 240,7,252,0,255,255,63,255,128,28,34,136,32,3,0,255, + 255,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, + 240,0,0,7,240,0,0,7,240,0,0,7,240,0,48,7, + 240,0,48,7,240,0,48,7,240,0,112,7,240,0,112,7, + 240,0,112,7,240,0,240,7,240,0,240,7,240,0,240,7, + 240,1,240,7,240,3,240,7,240,3,240,7,240,7,240,255, + 255,255,240,255,255,255,240,39,34,170,43,2,0,255,240,0, + 63,254,7,240,0,63,192,7,248,0,63,192,7,248,0,63, + 192,7,248,0,127,192,7,252,0,127,192,7,252,0,95,192, + 7,252,0,95,192,7,254,0,223,192,6,254,0,223,192,6, + 255,0,159,192,6,127,0,159,192,6,127,1,159,192,6,127, + 129,159,192,6,63,129,31,192,6,63,129,31,192,6,63,195, + 31,192,6,31,194,31,192,6,31,226,31,192,6,15,226,31, + 192,6,15,230,31,192,6,15,244,31,192,6,7,244,31,192, + 6,7,244,31,192,6,7,252,31,192,6,3,248,31,192,6, + 3,248,31,192,6,1,248,31,192,6,1,248,31,192,6,1, + 240,31,192,6,0,240,31,192,15,0,240,31,192,63,192,240, + 31,192,255,240,97,255,254,34,35,175,37,2,255,255,224,15, + 255,192,31,240,3,255,0,15,240,0,252,0,15,248,0,120, + 0,7,252,0,48,0,3,254,0,48,0,3,254,0,48,0, + 3,255,0,48,0,3,255,128,48,0,3,255,128,48,0,3, + 127,192,48,0,3,63,224,48,0,3,31,224,48,0,3,31, + 240,48,0,3,15,248,48,0,3,7,248,48,0,3,7,252, + 48,0,3,3,254,48,0,3,1,255,48,0,3,1,255,48, + 0,3,0,255,176,0,3,0,127,240,0,3,0,127,240,0, + 3,0,63,240,0,3,0,31,240,0,3,0,15,240,0,3, + 0,15,240,0,3,0,7,240,0,3,0,3,240,0,3,0, + 3,240,0,7,128,1,240,0,15,192,0,240,0,63,240,0, + 240,0,255,252,0,112,0,0,0,0,48,0,28,34,136,33, + 3,1,0,63,192,0,0,224,112,0,3,192,56,0,7,128, + 30,0,15,128,30,0,15,0,15,0,31,0,15,128,63,0, + 15,192,63,0,15,192,127,0,15,192,127,0,15,224,127,0, + 15,224,127,0,15,224,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, + 15,224,127,0,15,192,63,0,15,192,63,0,15,192,31,0, + 15,128,15,0,15,0,15,128,31,0,7,128,30,0,3,192, + 60,0,0,224,112,0,0,63,192,0,29,34,136,34,3,0, + 255,255,248,0,7,240,63,0,7,240,15,192,7,240,15,224, + 7,240,15,240,7,240,7,240,7,240,7,248,7,240,7,248, + 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,248, + 7,240,7,240,7,240,15,240,7,240,15,224,7,240,15,192, + 7,240,31,0,7,255,252,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, + 7,240,0,0,255,255,128,0,28,45,180,33,3,246,0,63, + 192,0,0,224,112,0,3,192,56,0,7,128,30,0,15,128, + 30,0,15,0,15,0,31,0,15,128,63,0,15,128,63,0, + 15,192,127,0,15,192,127,0,15,224,127,0,15,224,127,0, + 15,224,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, + 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, + 15,224,63,0,15,192,63,15,15,192,31,17,143,128,15,160, + 223,0,15,160,223,0,7,160,254,0,3,224,252,16,0,240, + 248,16,0,127,224,16,0,0,224,16,0,0,224,16,0,0, + 224,48,0,0,240,48,0,0,248,112,0,0,255,240,0,0, + 255,224,0,0,127,224,0,0,127,192,0,0,63,128,0,0, + 31,0,32,36,144,36,3,254,255,255,240,0,7,240,126,0, + 7,240,63,0,7,240,63,128,7,240,31,192,7,240,31,192, + 7,240,31,224,7,240,31,224,7,240,31,224,7,240,31,224, + 7,240,31,224,7,240,31,192,7,240,63,192,7,240,63,0, + 7,240,126,0,7,255,240,0,7,240,240,0,7,240,62,0, + 7,240,63,0,7,240,31,128,7,240,31,128,7,240,31,192, + 7,240,31,192,7,240,31,192,7,240,31,192,7,240,31,195, + 7,240,31,195,7,240,31,195,7,240,31,195,7,240,31,195, + 7,240,31,198,7,240,31,198,7,240,15,238,255,255,135,252, + 0,0,3,248,0,0,0,96,23,34,102,29,4,1,7,252, + 24,24,15,24,56,3,248,112,1,248,112,0,248,240,0,120, + 248,0,120,248,0,56,252,0,24,254,0,24,255,128,24,255, + 224,8,127,240,0,127,252,0,63,254,0,31,255,128,15,255, + 192,3,255,240,1,255,248,128,127,248,192,31,252,192,15,252, + 192,3,254,224,1,254,224,0,126,224,0,62,240,0,30,248, + 0,30,248,0,28,252,0,28,254,0,24,239,0,48,195,128, + 96,193,255,128,29,34,136,34,3,0,255,255,255,248,255,63, + 231,248,252,31,193,248,248,31,192,248,248,31,192,248,240,31, + 192,120,224,31,192,56,224,31,192,56,224,31,192,56,192,31, + 192,24,192,31,192,24,192,31,192,24,192,31,192,24,128,31, + 192,8,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, + 192,0,0,31,192,0,0,31,192,0,0,31,192,0,3,255, + 254,0,33,34,170,38,3,0,255,255,7,255,128,15,224,1, + 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, + 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, + 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, + 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, + 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, + 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, + 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, + 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, + 0,0,34,34,170,37,2,0,255,255,135,255,192,15,248,0, + 126,0,7,248,0,56,0,7,248,0,56,0,3,248,0,48, + 0,3,252,0,48,0,3,252,0,48,0,1,254,0,96,0, + 1,254,0,96,0,0,254,0,96,0,0,255,0,192,0,0, + 255,0,192,0,0,127,0,192,0,0,127,129,128,0,0,127, + 129,128,0,0,63,129,128,0,0,63,195,0,0,0,63,195, + 0,0,0,31,195,0,0,0,31,230,0,0,0,15,230,0, + 0,0,15,246,0,0,0,15,252,0,0,0,7,252,0,0, + 0,7,252,0,0,0,7,248,0,0,0,3,248,0,0,0, + 3,248,0,0,0,3,240,0,0,0,1,240,0,0,0,1, + 240,0,0,0,0,224,0,0,0,0,224,0,0,0,0,224, + 0,0,49,34,238,52,2,0,255,255,63,255,207,255,128,31, + 252,7,254,0,252,0,7,248,3,252,0,112,0,7,248,1, + 252,0,112,0,3,248,1,254,0,96,0,3,252,1,254,0, + 96,0,3,252,0,254,0,96,0,1,252,0,254,0,192,0, + 1,254,1,255,0,192,0,1,254,1,255,0,192,0,0,254, + 1,255,1,128,0,0,255,3,127,129,128,0,0,255,3,63, + 129,128,0,0,127,3,63,129,128,0,0,127,135,63,195,0, + 0,0,127,134,31,195,0,0,0,63,134,31,195,0,0,0, + 63,198,31,231,0,0,0,31,204,15,230,0,0,0,31,204, + 15,230,0,0,0,31,236,15,246,0,0,0,15,248,7,252, + 0,0,0,15,248,7,252,0,0,0,15,248,7,252,0,0, + 0,7,248,3,252,0,0,0,7,240,3,248,0,0,0,7, + 240,3,248,0,0,0,3,240,1,248,0,0,0,3,224,1, + 240,0,0,0,3,224,1,240,0,0,0,1,224,0,240,0, + 0,0,1,192,0,240,0,0,0,1,192,0,224,0,0,0, + 0,192,0,96,0,0,33,34,170,36,2,0,127,255,31,254, + 0,31,252,3,240,0,7,248,3,192,0,3,248,3,128,0, + 3,252,3,128,0,1,252,3,0,0,1,254,7,0,0,0, + 255,6,0,0,0,255,12,0,0,0,127,140,0,0,0,127, + 152,0,0,0,63,240,0,0,0,63,240,0,0,0,31,224, + 0,0,0,31,224,0,0,0,15,240,0,0,0,15,248,0, + 0,0,7,248,0,0,0,7,252,0,0,0,7,252,0,0, + 0,15,254,0,0,0,29,254,0,0,0,24,255,0,0,0, + 56,255,0,0,0,48,127,128,0,0,96,127,128,0,0,224, + 63,192,0,0,192,63,224,0,1,128,31,224,0,3,128,31, + 240,0,3,128,15,240,0,7,128,15,248,0,31,128,31,252, + 0,255,240,127,255,128,32,34,136,35,2,0,255,254,15,255, + 31,248,1,248,15,248,0,240,7,248,0,224,7,248,0,192, + 3,252,0,192,3,252,0,192,1,252,1,128,1,254,1,128, + 0,254,3,0,0,255,3,0,0,255,3,0,0,127,134,0, + 0,127,134,0,0,63,196,0,0,63,204,0,0,31,204,0, + 0,31,248,0,0,15,248,0,0,15,248,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, + 0,255,255,0,25,34,136,31,3,0,127,255,255,128,127,128, + 127,128,126,0,255,0,124,0,255,0,120,1,254,0,120,3, + 254,0,112,3,252,0,112,7,252,0,96,7,248,0,96,15, + 248,0,96,15,240,0,64,31,224,0,0,31,224,0,0,63, + 192,0,0,63,192,0,0,127,128,0,0,127,128,0,0,255, + 0,0,0,255,0,0,1,254,0,0,3,254,0,128,3,252, + 0,128,7,248,0,128,7,248,0,128,15,240,1,128,15,240, + 1,128,31,224,3,128,31,224,3,128,63,192,7,128,63,192, + 15,128,127,128,31,128,127,128,63,128,255,255,255,128,255,255, + 255,128,11,42,84,18,4,248,255,224,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,248,0,248,0,255,224,16,44,88,22, + 3,247,224,0,224,0,224,0,240,0,112,0,112,0,120,0, + 56,0,56,0,60,0,28,0,28,0,30,0,14,0,14,0, + 14,0,15,0,7,0,7,0,7,128,3,128,3,128,3,192, + 1,192,1,192,1,224,0,224,0,224,0,224,0,240,0,112, + 0,112,0,120,0,56,0,56,0,60,0,28,0,28,0,30, + 0,14,0,14,0,14,0,15,0,7,11,42,84,18,3,248, + 255,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, + 3,224,255,224,22,17,51,28,3,18,0,48,0,0,112,0, + 0,120,0,0,252,0,0,252,0,1,254,0,3,207,0,3, + 143,0,7,135,128,15,3,128,15,3,192,30,1,224,60,0, + 224,60,0,240,120,0,120,112,0,56,240,0,60,25,3,12, + 25,0,248,255,255,255,128,255,255,255,128,255,255,255,128,8, + 9,9,21,4,25,96,240,248,124,60,30,15,3,1,21,22, + 66,24,2,1,15,248,0,24,62,0,56,63,0,120,31,0, + 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, + 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, + 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, + 127,127,240,63,143,224,22,34,102,25,1,0,255,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,159,128,31,179,224,31,225,224,31,193,240,31,193,248,31, + 192,248,31,192,248,31,128,252,31,128,252,31,128,252,31,128, + 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,248, + 31,192,248,31,193,248,29,193,240,24,225,224,24,99,192,16, + 63,128,18,22,66,22,2,1,3,252,0,15,6,0,31,3, + 0,62,3,128,62,7,128,126,15,128,124,31,128,252,31,128, + 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, + 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,0, + 128,30,1,0,15,130,0,3,252,0,23,34,102,26,2,0, + 0,63,224,0,7,224,0,7,224,0,7,224,0,7,224,0, + 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, + 224,0,7,224,7,231,224,31,23,224,30,31,224,62,15,224, + 126,15,224,124,15,224,124,7,224,252,7,224,252,7,224,252, + 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, + 224,124,7,224,124,15,224,126,15,224,62,15,224,30,31,224, + 15,23,224,7,231,254,18,22,66,23,2,1,3,252,0,14, + 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, + 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, + 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, + 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, + 102,16,1,1,0,255,0,1,199,128,7,199,128,7,199,192, + 15,143,192,15,143,192,31,143,192,31,143,128,31,135,128,31, + 128,0,31,128,0,31,128,0,255,240,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,255,240,0,24,33,99,27,2,246, + 7,254,62,31,15,71,63,7,143,62,7,207,126,7,238,126, + 7,228,126,7,224,126,7,224,126,7,224,62,7,192,31,15, + 128,15,15,0,3,252,0,12,0,0,48,0,0,48,0,0, + 112,0,0,112,0,0,127,255,128,127,255,224,63,255,240,31, + 255,240,7,255,248,60,1,248,96,0,120,192,0,56,192,0, + 56,192,0,48,192,0,112,96,0,96,48,1,192,30,7,128, + 3,252,0,24,34,102,27,1,0,255,128,0,31,128,0,31, + 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, + 0,31,128,0,31,128,0,31,128,0,31,128,0,31,143,224, + 31,145,240,31,160,248,31,160,252,31,192,252,31,192,252,31, + 192,252,31,128,252,31,128,252,31,128,252,31,128,252,31,128, + 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,255,227,255,11, + 35,70,15,2,0,4,0,31,0,63,128,63,128,63,128,63, + 128,31,0,4,0,0,0,0,0,0,0,0,0,0,0,255, + 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, + 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, + 0,63,0,63,0,63,0,63,0,255,224,15,46,92,16,254, + 245,0,16,0,124,0,254,0,254,0,254,0,254,0,124,0, + 16,0,0,0,0,0,0,0,0,0,0,7,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, + 252,0,252,0,252,0,252,0,252,0,252,56,252,124,252,252, + 252,252,252,248,248,248,248,113,240,49,224,31,128,25,34,136, + 27,1,0,255,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, + 128,0,0,31,131,254,0,31,128,240,0,31,128,96,0,31, + 128,192,0,31,128,128,0,31,129,128,0,31,131,0,0,31, + 134,0,0,31,143,0,0,31,159,0,0,31,159,128,0,31, + 191,128,0,31,239,192,0,31,199,224,0,31,135,224,0,31, + 131,240,0,31,129,248,0,31,129,248,0,31,128,252,0,31, + 128,252,0,31,128,254,0,255,243,255,128,12,34,68,14,1, + 0,255,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,255,240,34,22,110,37,2,1,255,31,193,248,0, + 63,35,230,124,0,63,67,228,62,0,63,131,248,63,0,63, + 131,248,63,0,63,131,248,63,0,63,3,240,63,0,63,3, + 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, + 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, + 0,63,3,240,63,0,63,3,240,63,0,63,3,240,63,0, + 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, + 3,240,63,0,255,207,252,255,192,23,22,66,27,2,1,255, + 31,192,63,35,224,63,65,240,63,65,248,63,129,248,63,129, + 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, + 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, + 1,248,63,1,248,63,1,248,63,1,248,63,1,248,255,199, + 254,20,22,66,24,2,1,3,252,0,15,15,0,30,7,128, + 62,7,192,62,7,192,124,3,224,124,3,224,252,3,240,252, + 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, + 240,252,3,240,124,3,224,124,3,224,62,7,192,62,7,192, + 30,7,128,15,15,0,3,252,0,22,33,99,25,1,246,255, + 159,128,31,163,192,31,225,224,31,193,240,31,192,248,31,192, + 248,31,192,248,31,128,252,31,128,252,31,128,252,31,128,252, + 31,128,252,31,128,252,31,128,252,31,128,252,31,192,252,31, + 192,248,31,192,248,31,193,240,31,225,240,31,179,224,31,159, + 128,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, + 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,255, + 240,0,22,33,99,25,2,246,7,240,32,15,24,96,30,28, + 96,62,14,224,126,15,224,124,15,224,124,7,224,252,7,224, + 252,7,224,252,7,224,252,7,224,252,7,224,252,7,224,252, + 7,224,252,7,224,124,7,224,124,15,224,126,15,224,62,15, + 224,30,31,224,31,23,224,7,231,224,0,7,224,0,7,224, + 0,7,224,0,7,224,0,7,224,0,7,224,0,7,224,0, + 7,224,0,7,224,0,7,224,0,63,252,17,22,66,20,2, + 1,255,31,0,63,63,128,63,79,128,63,79,128,63,159,128, + 63,159,128,63,159,0,63,14,0,63,0,0,63,0,0,63, + 0,0,63,0,0,63,0,0,63,0,0,63,0,0,63,0, + 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, + 255,192,0,16,22,44,21,3,1,31,196,48,116,96,60,224, + 28,224,28,240,12,248,4,254,4,127,128,127,224,63,240,31, + 252,7,254,129,254,192,127,192,31,224,15,224,7,240,7,248, + 6,204,14,135,248,15,32,64,17,1,0,1,128,1,128,1, + 128,1,128,1,128,3,128,3,128,7,128,15,128,63,128,255, + 248,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, + 128,31,128,31,128,31,128,31,130,31,130,31,130,31,130,31, + 134,31,134,31,132,15,196,15,248,7,240,24,22,66,26,1, + 0,255,143,248,31,129,248,31,129,248,31,129,248,31,129,248, + 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, + 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, + 248,31,131,248,31,131,248,31,133,248,15,133,248,15,201,248, + 7,241,255,23,23,69,25,1,255,255,241,254,63,192,120,31, + 128,48,15,192,48,15,192,32,7,192,96,7,224,96,7,224, + 64,3,224,192,3,240,128,3,240,128,1,241,128,1,249,0, + 0,249,0,0,255,0,0,254,0,0,126,0,0,126,0,0, + 124,0,0,60,0,0,60,0,0,24,0,0,24,0,35,23, + 115,37,1,255,255,231,255,31,224,63,129,252,7,128,31,128, + 252,3,0,15,128,252,2,0,15,192,124,2,0,15,192,124, + 6,0,7,192,126,4,0,7,224,254,4,0,3,224,191,12, + 0,3,224,191,8,0,3,241,159,24,0,1,241,31,144,0, + 1,241,31,144,0,1,251,31,176,0,0,250,15,224,0,0, + 250,15,224,0,0,254,15,224,0,0,124,7,192,0,0,124, + 7,192,0,0,60,7,192,0,0,56,3,128,0,0,56,3, + 128,0,0,24,3,0,0,23,22,66,25,1,0,255,231,252, + 63,192,240,31,192,224,15,192,192,15,225,128,7,227,0,3, + 242,0,3,254,0,1,252,0,1,252,0,0,252,0,0,126, + 0,0,127,0,0,127,0,0,223,128,1,159,192,3,15,192, + 2,15,224,6,7,224,14,7,240,30,7,248,255,207,254,23, + 33,99,25,1,245,255,241,254,63,192,120,31,128,48,15,192, + 32,15,192,32,15,192,96,7,224,64,7,224,64,3,240,192, + 3,240,128,1,248,128,1,249,128,0,249,0,0,253,0,0, + 253,0,0,126,0,0,126,0,0,62,0,0,60,0,0,28, + 0,0,28,0,0,12,0,0,8,0,0,8,0,0,8,0, + 15,16,0,31,16,0,63,144,0,63,32,0,62,32,0,62, + 64,0,31,192,0,15,0,0,18,22,66,22,2,0,127,255, + 192,124,15,192,120,31,128,112,63,0,96,63,0,96,126,0, + 64,126,0,64,252,0,1,248,0,1,248,0,3,240,0,3, + 240,0,7,224,64,15,192,64,15,192,64,31,128,192,31,0, + 192,63,1,192,126,1,192,126,3,192,252,15,192,255,255,192, + 14,43,86,20,3,247,0,60,0,240,3,192,7,128,7,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,0,15,0,28,0, + 240,0,60,0,30,0,15,0,15,128,15,128,15,128,15,128, + 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, + 15,128,7,128,7,128,3,192,0,240,0,60,3,44,44,13, + 5,247,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,15,43, + 86,20,3,247,240,0,60,0,15,0,7,128,7,128,7,192, + 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, + 7,192,7,192,7,192,7,192,3,192,3,192,0,240,0,62, + 0,240,1,224,3,192,7,192,7,192,7,192,7,192,7,192, + 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, + 7,128,7,128,15,0,60,0,240,0,27,9,36,31,2,8, + 31,128,1,128,63,240,0,192,127,254,0,96,255,255,128,96, + 193,255,240,96,192,63,255,224,192,15,255,192,96,1,255,128, + 48,0,63,0,255}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=24 x= 5 y=15 dx=28 dy= 0 ascent=25 len=72 + Font Bounding box w=68 h=33 x=-21 y=-8 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =18 descent=-6 + X Font ascent =19 descent=-6 + Max Font ascent =25 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr18[7816] U8G_SECTION(".progmem.u8g_font_osr18") = { + 0,68,33,235,248,18,4,197,10,125,32,255,250,25,249,19, + 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, + 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, + 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, + 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, + 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, + 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, + 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, + 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, + 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, + 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, + 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, + 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, + 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, + 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, + 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, + 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, + 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, + 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, + 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, + 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, + 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, + 192,42,0,30,0,235,192,201,192,12,0,12,0,22,22,66, + 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, + 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, + 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, + 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, + 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, + 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, + 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, + 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, + 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, + 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, + 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, + 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, + 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, + 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, + 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, + 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, + 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, + 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, + 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, + 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, + 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, + 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, + 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, + 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, + 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, + 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, + 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, + 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, + 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, + 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, + 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, + 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, + 0,0,0,0,224,224,224,4,16,16,8,2,252,96,240,240, + 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, + 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, + 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, + 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, + 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, + 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, + 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, + 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, + 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, + 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, + 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, + 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, + 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, + 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, + 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, + 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, + 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, + 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, + 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, + 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, + 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, + 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, + 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, + 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, + 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, + 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, + 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, + 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, + 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, + 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, + 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, + 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, + 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, + 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, + 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, + 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, + 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, + 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, + 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, + 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, + 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, + 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, + 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, + 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, + 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, + 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, + 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, + 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, + 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, + 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, + 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, + 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, + 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, + 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, + 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, + 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, + 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, + 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, + 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, + 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, + 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, + 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, + 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, + 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, + 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, + 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, + 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, + 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, + 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, + 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, + 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, + 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, + 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, + 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, + 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, + 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, + 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, + 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, + 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, + 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, + 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, + 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, + 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, + 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, + 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, + 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, + 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, + 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, + 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, + 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, + 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, + 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, + 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, + 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, + 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, + 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, + 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, + 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, + 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, + 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, + 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, + 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, + 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, + 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, + 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, + 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, + 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, + 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, + 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, + 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, + 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, + 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, + 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, + 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, + 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, + 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, + 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, + 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, + 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, + 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, + 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, + 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, + 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, + 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, + 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, + 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, + 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, + 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, + 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, + 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, + 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, + 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, + 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, + 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, + 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, + 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, + 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, + 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, + 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, + 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, + 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, + 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, + 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, + 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, + 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, + 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, + 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, + 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, + 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, + 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, + 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, + 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, + 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, + 64,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,7,0,0,3,18,18,7,2,250,224, + 224,224,0,64,64,64,64,64,64,64,64,224,224,224,224,224, + 224,9,18,36,15,3,253,4,0,4,0,4,0,31,0,53, + 0,100,128,229,128,197,128,196,0,196,0,196,0,228,128,100, + 128,53,0,31,0,4,0,4,0,4,0,14,18,36,19,2, + 0,0,248,1,132,3,4,2,12,6,0,6,0,6,0,62, + 0,7,224,6,0,6,0,6,0,6,0,6,0,116,4,140, + 4,139,248,112,240,11,11,22,15,2,2,159,32,113,192,64, + 64,128,96,128,32,128,32,128,32,128,32,64,64,96,192,159, + 32,15,18,36,15,0,0,252,126,56,24,24,16,28,16,12, + 32,14,64,6,64,7,128,3,128,63,240,3,0,3,0,63, + 240,3,0,3,0,3,0,3,0,31,224,1,23,23,7,3, + 251,128,128,128,128,128,128,128,128,128,0,0,0,0,0,128, + 128,128,128,128,128,128,128,128,10,23,46,17,3,251,30,0, + 33,0,35,0,35,0,32,0,48,0,28,0,46,0,71,0, + 131,128,129,192,192,192,224,64,112,64,56,128,29,0,6,0, + 3,0,3,0,49,0,49,0,34,0,28,0,7,2,2,11, + 2,15,198,198,19,18,54,21,1,0,3,248,0,12,6,0, + 16,225,0,33,28,128,67,12,64,70,4,64,134,4,32,134, + 0,32,134,0,32,134,0,32,134,0,32,134,8,32,67,8, + 64,67,8,64,32,240,128,16,1,0,12,6,0,3,248,0, + 7,8,8,11,2,10,240,200,24,104,136,154,100,252,6,10, + 10,12,3,1,32,68,136,136,136,136,136,136,68,32,13,6, + 12,15,1,3,255,248,0,8,0,8,0,8,0,8,0,8, + 7,1,1,11,2,6,254,19,18,54,21,1,0,3,248,0, + 12,6,0,31,225,0,35,24,128,67,24,64,67,24,64,131, + 24,32,131,24,32,131,224,32,131,16,32,131,24,32,131,24, + 32,67,26,64,67,26,64,47,142,128,16,1,0,12,6,0, + 3,248,0,7,1,1,11,2,15,254,7,7,7,15,4,11, + 56,68,130,130,130,68,56,22,18,54,24,1,255,0,16,0, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, + 16,0,255,255,252,0,16,0,0,16,0,0,16,0,0,16, + 0,0,16,0,0,16,0,0,16,0,0,0,0,0,0,0, + 255,255,252,7,10,10,11,2,8,124,134,134,230,6,8,16, + 96,66,254,7,11,11,12,3,7,120,132,198,198,4,120,14, + 70,198,134,120,4,4,4,11,5,13,48,48,96,128,14,19, + 38,17,2,249,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,64,192,64,128,64,132,163,252,159,28,128,0,128,0, + 192,0,192,0,192,0,224,0,64,0,11,22,44,14,2,252, + 63,224,120,128,248,128,248,128,248,128,248,128,248,128,120,128, + 8,128,8,128,8,128,8,128,8,128,8,128,8,128,8,128, + 8,128,8,128,8,128,8,128,8,128,8,128,3,3,3,7, + 2,7,224,224,224,5,5,5,11,3,251,64,48,24,24,240, + 6,11,11,12,3,7,16,16,240,48,48,48,48,48,48,48, + 252,6,9,9,10,2,9,112,136,132,132,132,132,72,48,252, + 7,10,10,13,3,1,8,68,68,34,34,34,34,68,68,136, + 18,18,54,23,3,0,16,4,0,240,12,0,48,8,0,48, + 16,0,48,16,0,48,32,0,48,96,0,48,67,0,48,135, + 0,48,139,0,253,11,0,3,19,0,2,19,0,6,35,0, + 4,63,192,8,3,0,24,3,0,16,15,192,17,18,54,22, + 3,0,16,4,0,240,8,0,48,8,0,48,16,0,48,16, + 0,48,32,0,48,64,0,48,78,0,48,179,128,48,161,128, + 253,49,128,3,17,128,2,3,0,4,6,0,4,8,0,8, + 16,128,24,49,128,16,63,128,18,18,54,23,3,0,120,4, + 0,134,12,0,198,8,0,4,16,0,120,16,0,12,32,0, + 6,96,0,198,67,0,198,135,0,142,139,0,121,11,0,2, + 19,0,2,19,0,4,35,0,12,63,192,8,3,0,16,3, + 0,16,15,192,9,18,36,12,1,250,28,0,28,0,28,0, + 0,0,28,0,34,0,34,0,6,0,4,0,24,0,48,0, + 96,0,227,0,195,128,192,128,224,128,97,0,62,0,18,24, + 72,20,2,0,6,0,0,6,0,0,3,0,0,0,128,0, + 0,0,0,0,0,0,0,128,0,0,192,0,1,192,0,1, + 192,0,1,224,0,3,224,0,2,96,0,2,112,0,6,112, + 0,4,48,0,4,56,0,12,24,0,15,248,0,24,28,0, + 16,12,0,16,14,0,48,14,0,254,63,192,18,24,72,20, + 2,0,0,16,0,0,48,0,0,96,0,0,64,0,0,128, + 0,0,0,0,0,128,0,0,192,0,1,192,0,1,192,0, + 1,224,0,3,224,0,2,96,0,2,112,0,6,112,0,4, + 48,0,4,56,0,12,56,0,15,248,0,24,28,0,16,12, + 0,16,14,0,48,14,0,254,63,192,18,24,72,20,2,0, + 0,128,0,0,192,0,1,96,0,2,48,0,4,8,0,0, + 0,0,0,128,0,0,192,0,1,192,0,1,192,0,1,224, + 0,3,224,0,2,96,0,2,112,0,6,112,0,4,48,0, + 4,56,0,12,56,0,15,248,0,24,28,0,16,12,0,16, + 12,0,48,14,0,254,63,192,18,23,69,20,2,0,3,144, + 0,5,240,0,0,0,0,0,0,0,0,0,0,0,128,0, + 0,128,0,1,192,0,1,192,0,1,224,0,3,224,0,2, + 96,0,2,112,0,6,112,0,4,48,0,12,56,0,12,56, + 0,15,248,0,24,28,0,16,28,0,16,12,0,48,14,0, + 254,63,192,18,23,69,20,1,0,6,24,0,6,24,0,2, + 16,0,0,0,0,0,0,0,0,192,0,0,192,0,0,192, + 0,1,224,0,1,224,0,1,96,0,2,112,0,2,112,0, + 2,48,0,4,56,0,4,24,0,12,24,0,15,252,0,8, + 12,0,24,12,0,24,14,0,56,6,0,254,63,192,17,24, + 72,20,2,0,1,192,0,2,32,0,2,32,0,2,32,0, + 1,192,0,0,0,0,0,128,0,0,128,0,1,192,0,1, + 192,0,1,192,0,2,224,0,2,96,0,2,96,0,4,112, + 0,4,112,0,12,48,0,8,56,0,15,248,0,24,28,0, + 16,28,0,16,12,0,48,14,0,254,127,128,24,18,54,26, + 0,0,0,127,255,0,28,7,0,28,3,0,44,1,0,44, + 1,0,76,17,0,76,16,0,140,48,0,143,240,1,12,48, + 3,12,16,2,12,17,7,252,17,4,12,1,8,12,1,8, + 12,3,24,12,7,254,63,255,14,24,48,18,2,250,7,132, + 24,108,32,60,96,28,96,12,192,12,192,4,192,0,192,0, + 192,0,192,0,192,4,96,4,96,4,96,8,48,24,24,48, + 7,192,2,0,3,128,0,192,0,192,8,192,7,128,15,24, + 48,18,1,0,4,0,6,0,3,0,1,128,0,0,0,0, + 255,254,24,6,24,2,24,2,24,2,24,34,24,32,24,96, + 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, + 24,14,255,254,15,24,48,18,1,0,0,48,0,48,0,96, + 0,192,0,0,0,0,255,254,24,14,24,6,24,2,24,2, + 24,34,24,32,24,96,31,224,24,96,24,32,24,32,24,34, + 24,2,24,2,24,6,24,14,255,254,15,24,48,18,1,0, + 0,128,1,192,3,64,6,48,8,8,0,0,255,254,24,6, + 24,2,24,2,24,2,24,34,24,32,24,96,31,224,24,96, + 24,32,24,32,24,34,24,2,24,2,24,6,24,14,255,254, + 15,23,46,18,1,0,6,48,6,48,4,16,0,0,0,0, + 255,254,24,14,24,6,24,2,24,2,24,34,24,32,24,96, + 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, + 24,14,255,254,8,24,24,10,1,0,64,96,48,16,8,0, + 255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,255,8,24,24,10,1,0,3,3,6,8,0,0,255,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,255, + 8,24,24,10,1,0,8,24,52,66,129,0,255,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,255,8,23, + 23,10,1,0,195,195,66,0,0,255,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,255,17,18,54,19,1, + 0,255,240,0,24,12,0,24,6,0,24,3,0,24,3,0, + 24,1,128,24,1,128,24,1,128,127,1,128,24,1,128,24, + 1,128,24,1,128,24,1,128,24,3,0,24,3,0,24,6, + 0,24,12,0,255,240,0,18,24,72,19,1,0,3,200,0, + 2,248,0,0,0,0,0,0,0,0,0,0,0,0,0,252, + 15,192,28,2,0,30,2,0,22,2,0,23,2,0,19,130, + 0,17,130,0,17,194,0,16,226,0,16,226,0,16,114,0, + 16,50,0,16,58,0,16,30,0,16,14,0,16,14,0,16, + 6,0,252,2,0,15,24,48,18,2,1,28,0,12,0,6, + 0,2,0,1,0,0,0,7,192,24,48,48,24,32,8,96, + 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, + 12,96,12,32,8,48,24,24,48,7,192,15,24,48,18,2, + 1,0,112,0,96,0,192,0,128,1,0,0,0,7,192,24, + 48,48,24,32,8,96,12,96,12,192,6,192,6,192,6,192, + 6,192,6,192,6,96,12,96,12,32,8,48,24,24,48,7, + 192,15,24,48,18,2,0,1,0,3,128,6,192,12,96,16, + 16,0,0,7,192,24,48,48,24,32,8,96,12,96,12,192, + 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, + 8,48,24,24,48,7,192,15,24,48,18,2,0,15,16,19, + 224,0,0,0,0,0,0,0,0,7,192,24,48,48,24,32, + 8,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, + 6,96,12,96,12,32,8,48,24,24,48,7,192,15,24,48, + 18,2,0,8,0,12,96,12,96,0,0,0,0,0,0,7, + 192,24,48,48,24,32,8,96,12,96,12,192,6,192,6,192, + 6,192,6,192,6,192,6,96,12,96,12,32,8,48,24,24, + 48,7,192,16,16,32,24,4,255,0,1,64,3,32,6,16, + 12,8,24,4,48,2,96,1,192,1,128,3,64,6,32,12, + 16,24,8,48,4,96,2,192,1,15,18,36,18,2,0,7, + 194,24,52,48,28,32,12,96,28,96,44,192,70,192,198,193, + 134,195,6,198,6,196,6,232,12,112,12,96,8,112,24,88, + 48,135,192,19,24,72,21,1,1,3,0,0,3,128,0,0, + 128,0,0,64,0,0,0,0,0,0,0,255,15,224,24,1, + 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, + 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, + 1,0,24,1,0,12,1,0,12,2,0,6,4,0,1,248, + 0,19,24,72,21,1,1,0,28,0,0,24,0,0,48,0, + 0,32,0,0,64,0,0,0,0,255,15,224,24,1,0,24, + 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, + 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, + 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,19, + 24,72,21,1,0,0,96,0,0,224,0,1,176,0,3,8, + 0,0,4,0,0,0,0,255,15,224,24,1,0,24,1,0, + 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, + 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, + 0,12,1,0,12,2,0,6,4,0,1,248,0,19,23,69, + 21,1,1,3,24,0,3,24,0,0,0,0,0,0,0,0, + 0,0,255,15,224,24,1,0,24,1,0,24,1,0,24,1, + 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, + 24,1,0,24,1,0,24,1,0,24,1,0,12,1,0,12, + 2,0,6,4,0,1,248,0,17,24,72,19,1,0,0,24, + 0,0,56,0,0,48,0,0,64,0,0,0,0,0,0,0, + 255,31,128,28,6,0,28,4,0,14,4,0,6,8,0,7, + 8,0,3,144,0,3,160,0,1,224,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, + 0,192,0,7,252,0,15,18,36,17,1,0,255,0,24,0, + 24,0,31,224,24,24,24,12,24,6,24,6,24,6,24,14, + 24,12,24,24,31,240,24,0,24,0,24,0,24,0,255,0, + 12,18,36,14,1,0,7,128,24,224,24,96,48,96,48,192, + 48,128,55,0,49,128,48,64,48,96,48,112,48,48,48,48, + 48,48,54,48,54,112,52,96,243,192,11,18,36,13,1,0, + 96,0,96,0,48,0,24,0,8,0,0,0,30,0,99,0, + 65,128,97,128,33,128,15,128,113,128,193,128,195,160,195,160, + 197,160,121,192,11,18,36,13,1,0,1,128,3,128,3,0, + 4,0,8,0,0,0,62,0,65,0,65,128,97,128,33,128, + 15,128,113,128,193,128,193,160,195,160,197,160,120,192,11,18, + 36,13,1,0,8,0,12,0,28,0,50,0,65,0,0,0, + 30,0,99,0,65,128,97,128,33,128,15,128,113,128,193,128, + 195,160,195,160,197,160,121,192,11,17,34,13,1,0,56,128, + 79,0,0,0,0,0,0,0,30,0,99,0,65,128,97,128, + 33,128,15,128,113,128,193,128,195,160,195,160,197,160,121,192, + 11,17,34,13,1,0,99,0,99,0,1,0,0,0,0,0, + 60,0,67,0,67,0,99,0,3,0,15,0,115,0,195,0, + 195,32,199,32,203,32,121,192,11,18,36,13,1,0,28,0, + 34,0,34,0,34,0,28,0,0,0,60,0,67,0,67,0, + 99,0,35,0,15,0,115,0,195,0,195,32,199,32,199,32, + 121,192,16,12,24,18,1,0,30,120,99,198,65,134,97,131, + 1,131,31,255,97,128,193,128,195,129,195,130,196,194,120,124, + 9,18,36,11,1,250,30,0,33,0,96,128,193,128,193,128, + 192,0,192,0,192,0,192,0,96,128,33,0,30,0,8,0, + 12,0,2,0,3,0,3,0,30,0,9,18,36,12,1,0, + 96,0,112,0,48,0,8,0,0,0,0,0,30,0,35,0, + 97,128,193,128,193,128,255,128,192,0,192,0,192,128,96,128, + 33,0,30,0,9,18,36,12,1,0,1,0,3,0,2,0, + 4,0,8,0,0,0,30,0,35,0,97,128,193,128,193,128, + 255,128,192,0,192,0,192,128,96,128,33,0,30,0,9,18, + 36,12,1,0,8,0,12,0,28,0,18,0,33,0,0,0, + 30,0,35,0,97,128,193,128,193,128,255,128,192,0,192,0, + 192,128,96,128,33,0,30,0,9,17,34,12,1,0,51,0, + 51,0,1,0,0,0,0,0,30,0,35,0,97,128,193,128, + 193,128,255,128,192,0,192,0,192,128,96,128,33,0,30,0, + 7,18,18,8,0,0,192,224,96,16,8,0,120,24,24,24, + 24,24,24,24,24,24,24,126,6,18,18,7,1,0,4,12, + 24,16,32,0,240,48,48,48,48,48,48,48,48,48,48,252, + 8,17,17,8,0,0,24,56,36,195,0,120,24,24,24,24, + 24,24,24,24,24,24,126,7,17,17,9,1,0,4,198,198, + 0,0,120,24,24,24,24,24,24,24,24,24,24,124,10,18, + 36,13,1,0,56,128,27,0,12,0,22,0,35,0,3,0, + 31,128,33,128,97,192,192,192,192,192,192,192,192,192,192,192, + 192,192,97,128,33,128,30,0,13,17,34,15,1,0,14,64, + 19,192,0,0,0,0,0,0,243,192,52,192,56,96,56,96, + 48,96,48,96,48,96,48,96,48,96,48,96,48,96,253,248, + 10,18,36,13,1,0,96,0,48,0,16,0,8,0,4,0, + 0,0,30,0,33,128,97,128,192,192,192,192,192,192,192,192, + 192,192,192,192,97,128,33,128,30,0,10,18,36,13,1,0, + 1,128,3,128,3,0,4,0,0,0,0,0,30,0,33,128, + 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, + 33,128,30,0,10,18,36,13,1,0,4,0,12,0,14,0, + 18,0,33,0,0,0,30,0,33,128,97,128,192,192,192,192, + 192,192,192,192,192,192,192,192,97,128,33,128,30,0,10,17, + 34,13,1,0,60,128,47,0,0,0,0,0,0,0,30,0, + 33,128,97,128,192,192,192,192,192,192,192,192,192,192,192,192, + 97,128,33,128,30,0,10,17,34,13,1,0,49,128,49,128, + 1,0,0,0,0,0,30,0,33,128,97,128,192,192,192,192, + 192,192,192,192,192,192,192,192,97,128,33,128,30,0,22,16, + 48,24,1,255,0,112,0,0,112,0,0,112,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,255,252,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,112, + 0,0,112,0,10,12,24,13,1,0,30,64,33,128,96,128, + 193,192,194,192,196,192,200,192,208,192,208,192,97,128,97,128, + 158,0,13,18,36,14,0,0,16,0,24,0,12,0,4,0, + 2,0,0,0,241,224,48,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,224,48,224,57,96,30,120,13,18,36,14, + 0,0,0,192,0,192,1,128,2,0,0,0,0,0,241,224, + 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,224, + 48,224,57,96,30,120,13,18,36,14,0,0,2,0,6,0, + 5,0,8,128,16,0,0,0,241,224,48,96,48,96,48,96, + 48,96,48,96,48,96,48,96,48,224,48,224,57,96,30,120, + 13,17,34,14,0,0,24,192,24,192,0,0,0,0,0,0, + 240,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,224,48,224,57,96,30,120,13,24,48,14,0,250,0,96, + 0,224,0,192,1,0,0,0,0,0,252,248,56,32,24,32, + 24,64,12,64,12,64,12,128,6,128,6,128,7,0,3,0, + 3,0,3,0,2,0,34,0,98,0,100,0,56,0,11,24, + 48,14,1,250,48,0,240,0,48,0,48,0,48,0,48,0, + 49,192,54,224,52,96,56,96,56,96,48,96,48,192,48,192, + 49,128,49,0,50,0,60,0,48,0,48,0,48,0,48,0, + 48,0,96,0,13,23,46,14,0,250,8,64,12,96,12,96, + 0,0,0,0,252,120,24,32,24,32,24,64,12,64,12,64, + 14,128,6,128,6,128,7,0,3,0,3,0,2,0,2,0, + 34,0,114,0,100,0,56,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y= 8 dx=24 dy= 0 ascent=18 len=66 + Font Bounding box w=68 h=33 x=-21 y=-8 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =18 descent= 0 + X Font ascent =18 descent= 0 + Max Font ascent =18 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr18n[595] U8G_SECTION(".progmem.u8g_font_osr18n") = { + 0,68,33,235,248,18,0,0,0,0,42,57,0,18,250,18, + 0,10,10,20,14,2,8,12,0,12,0,204,192,201,192,42, + 0,30,0,235,192,201,192,12,0,12,0,22,22,66,24,1, + 252,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,255, + 255,252,0,16,0,0,16,0,0,16,0,0,16,0,0,16, + 0,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, + 0,16,0,3,8,8,7,2,252,192,224,224,32,32,64,64, + 128,7,1,1,11,2,6,254,3,3,3,7,2,0,224,224, + 224,8,24,24,12,2,250,1,1,2,2,2,4,4,4,12, + 8,8,24,16,16,16,32,32,32,64,64,64,128,128,128,12, + 18,36,15,1,0,15,0,16,192,32,64,96,96,96,32,192, + 48,192,48,192,48,192,48,192,48,192,48,192,48,192,48,96, + 32,96,96,32,64,16,192,15,0,9,18,36,15,3,0,8, + 0,8,0,24,0,248,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,255,128,10,18,36,15,2,0,30,0,99,128,129,192,128, + 192,128,192,224,192,240,192,32,192,1,128,3,0,6,0,8, + 0,16,0,32,0,64,64,192,64,255,192,255,192,11,18,36, + 15,2,0,63,0,97,128,192,192,224,192,240,192,0,192,0, + 192,1,128,62,0,1,128,0,192,0,96,96,96,240,96,240, + 96,192,192,65,128,63,0,12,18,36,15,2,0,1,0,3, + 0,3,0,7,0,15,0,11,0,19,0,51,0,35,0,67, + 0,195,0,131,0,255,224,3,0,3,0,3,0,3,0,31, + 240,11,18,36,15,2,0,96,192,127,128,126,0,64,0,64, + 0,64,0,95,0,97,128,64,192,64,224,0,96,0,96,96, + 96,240,96,224,192,192,192,65,128,62,0,11,18,36,15,2, + 0,15,0,24,128,48,64,96,192,96,192,64,0,192,0,207, + 0,209,192,224,192,224,224,224,96,224,96,224,96,96,224,96, + 192,49,128,15,0,10,18,36,15,3,0,255,192,255,192,128, + 64,128,64,128,128,0,128,1,0,1,0,2,0,6,0,6, + 0,12,0,12,0,30,0,30,0,30,0,30,0,14,0,12, + 18,36,15,2,0,31,128,48,224,96,96,192,48,192,48,224, + 48,240,32,124,64,63,128,55,224,96,240,192,112,192,48,192, + 48,192,48,96,96,112,192,31,128,11,18,36,15,2,0,30, + 0,49,128,96,192,224,192,192,64,192,96,192,96,192,224,96, + 224,113,96,30,96,0,96,0,64,96,192,96,192,64,128,65, + 0,62,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 18, '1' Height: 18 + Calculated Max Values w=26 h=24 x= 3 y=13 dx=28 dy= 0 ascent=20 len=72 + Font Bounding box w=68 h=33 x=-21 y=-8 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =18 descent=-6 + X Font ascent =19 descent=-6 + Max Font ascent =20 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr18r[3683] U8G_SECTION(".progmem.u8g_font_osr18r") = { + 0,68,33,235,248,18,4,197,10,125,32,127,250,20,250,19, + 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, + 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, + 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, + 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, + 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, + 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, + 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, + 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, + 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, + 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, + 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, + 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, + 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, + 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, + 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, + 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, + 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, + 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, + 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, + 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, + 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, + 192,42,0,30,0,235,192,201,192,12,0,12,0,22,22,66, + 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, + 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, + 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, + 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, + 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, + 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, + 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, + 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, + 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, + 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, + 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, + 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, + 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, + 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, + 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, + 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, + 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, + 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, + 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, + 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, + 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, + 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, + 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, + 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, + 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, + 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, + 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, + 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, + 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, + 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, + 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, + 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, + 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, + 0,0,0,0,224,224,224,4,16,16,8,2,252,96,240,240, + 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, + 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, + 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, + 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, + 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, + 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, + 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, + 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, + 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, + 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, + 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, + 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, + 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, + 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, + 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, + 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, + 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, + 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, + 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, + 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, + 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, + 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, + 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, + 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, + 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, + 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, + 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, + 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, + 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, + 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, + 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, + 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, + 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, + 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, + 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, + 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, + 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, + 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, + 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, + 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, + 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, + 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, + 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, + 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, + 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, + 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, + 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, + 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, + 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, + 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, + 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, + 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, + 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, + 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, + 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, + 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, + 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, + 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, + 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, + 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, + 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, + 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, + 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, + 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, + 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, + 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, + 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, + 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, + 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, + 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, + 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, + 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, + 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, + 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, + 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, + 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, + 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, + 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, + 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, + 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, + 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, + 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, + 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, + 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, + 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, + 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, + 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, + 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, + 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, + 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, + 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, + 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, + 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, + 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, + 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, + 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, + 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, + 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, + 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, + 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, + 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, + 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, + 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, + 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, + 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, + 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, + 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, + 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, + 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, + 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, + 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, + 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, + 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, + 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, + 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, + 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, + 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, + 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, + 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, + 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, + 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, + 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, + 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, + 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, + 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, + 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, + 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, + 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, + 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, + 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, + 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, + 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, + 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, + 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, + 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, + 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, + 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, + 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, + 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, + 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, + 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, + 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, + 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, + 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, + 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, + 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, + 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, + 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, + 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, + 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, + 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, + 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, + 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, + 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, + 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, + 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, + 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, + 64,124,255}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 21, '1' Height: 21 + Calculated Max Values w=29 h=28 x= 6 y=17 dx=32 dy= 0 ascent=28 len=88 + Font Bounding box w=76 h=38 x=-24 y=-9 + Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 + Pure Font ascent =21 descent=-7 + X Font ascent =22 descent=-7 + Max Font ascent =28 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr21[9530] U8G_SECTION(".progmem.u8g_font_osr21") = { + 0,76,38,232,247,21,5,131,12,189,32,255,249,28,248,22, + 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, + 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, + 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, + 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, + 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, + 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, + 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, + 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, + 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, + 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, + 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, + 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, + 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, + 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, + 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, + 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, + 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, + 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, + 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, + 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, + 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, + 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, + 24,14,2,9,12,0,14,0,204,64,228,192,53,0,14,0, + 63,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, + 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, + 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, + 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, + 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, + 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, + 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, + 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, + 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, + 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, + 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, + 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, + 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, + 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, + 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, + 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, + 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, + 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, + 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, + 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, + 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, + 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, + 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, + 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,79, + 0,112,192,64,96,64,96,0,112,0,112,0,112,96,112,240, + 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, + 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, + 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, + 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, + 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, + 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, + 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, + 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, + 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, + 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, + 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, + 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, + 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, + 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, + 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, + 240,240,16,16,16,32,64,22,24,72,27,2,251,0,0,12, + 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, + 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, + 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, + 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, + 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, + 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, + 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, + 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, + 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, + 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, + 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, + 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, + 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, + 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, + 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, + 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, + 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, + 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, + 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, + 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, + 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, + 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, + 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, + 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, + 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, + 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, + 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, + 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, + 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, + 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, + 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, + 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, + 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, + 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, + 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, + 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, + 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, + 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, + 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, + 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, + 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, + 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, + 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, + 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, + 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, + 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, + 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, + 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, + 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, + 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, + 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, + 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, + 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, + 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, + 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, + 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, + 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, + 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, + 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, + 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, + 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, + 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, + 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, + 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, + 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, + 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, + 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, + 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, + 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, + 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, + 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, + 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, + 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, + 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, + 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, + 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, + 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, + 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, + 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, + 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, + 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, + 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, + 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, + 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, + 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, + 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, + 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, + 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, + 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, + 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, + 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, + 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, + 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, + 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, + 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, + 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, + 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, + 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, + 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, + 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, + 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, + 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, + 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, + 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, + 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, + 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, + 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, + 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, + 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, + 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, + 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, + 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, + 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, + 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, + 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, + 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, + 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, + 56,56,56,56,48,56,48,56,48,56,32,44,96,35,192,10, + 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, + 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, + 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, + 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, + 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, + 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, + 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, + 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, + 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, + 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, + 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, + 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, + 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, + 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, + 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, + 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, + 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, + 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, + 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, + 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, + 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, + 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, + 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, + 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, + 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, + 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, + 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, + 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, + 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, + 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, + 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, + 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, + 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, + 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, + 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, + 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, + 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, + 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, + 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, + 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, + 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, + 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, + 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, + 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, + 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, + 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, + 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, + 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, + 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, + 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, + 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, + 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, + 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, + 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, + 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, + 2,126,1,143,193,131,241,128,255,64,62,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, + 0,0,4,21,21,8,2,249,96,240,240,96,0,64,64,96, + 96,96,96,96,96,96,96,240,240,240,240,240,96,10,21,42, + 17,3,253,4,0,4,0,4,0,4,0,31,0,52,128,100, + 64,100,192,229,192,228,128,228,0,228,0,228,0,228,0,100, + 64,100,64,52,128,31,0,4,0,4,0,4,0,16,21,42, + 21,2,0,0,60,0,194,0,131,1,135,1,135,3,130,3, + 128,3,128,3,128,63,128,3,240,3,128,3,128,3,128,3, + 0,3,0,123,1,142,1,135,3,135,254,120,252,13,13,26, + 17,2,4,143,136,112,112,96,48,64,16,128,8,128,8,128, + 8,128,8,128,8,64,16,96,48,112,112,143,136,16,21,42, + 17,1,0,252,63,56,8,56,8,24,16,28,16,28,32,14, + 32,14,64,6,64,7,128,3,128,63,248,3,128,3,128,63, + 248,3,128,3,128,3,128,3,128,3,128,31,240,1,27,27, + 8,4,251,128,128,128,128,128,128,128,128,128,128,128,0,0, + 0,0,0,128,128,128,128,128,128,128,128,128,128,128,11,27, + 54,19,3,250,30,0,49,0,97,128,99,128,97,0,112,0, + 56,0,60,0,62,0,79,0,131,128,129,192,128,224,192,96, + 224,32,112,32,56,64,28,128,15,0,7,0,3,0,1,128, + 33,128,113,128,97,128,35,0,28,0,8,3,3,12,2,16, + 195,231,195,21,22,66,23,1,0,0,32,0,3,222,0,12, + 1,128,24,0,192,48,114,96,33,142,32,67,6,16,67,2, + 16,135,2,8,135,0,8,135,0,8,135,0,8,135,0,8, + 135,0,8,135,2,8,67,2,16,67,4,16,33,132,32,48, + 120,96,24,0,192,12,1,128,3,222,0,8,9,9,12,2, + 12,120,196,12,52,68,197,205,118,254,7,12,12,14,3,1, + 16,34,98,68,196,196,196,196,196,66,34,16,14,6,12,16, + 1,5,255,252,0,4,0,4,0,4,0,4,0,4,7,2, + 2,11,2,7,254,254,21,22,66,23,1,0,0,32,0,3, + 222,0,12,1,128,24,0,192,63,248,96,35,140,32,67,142, + 16,67,142,16,131,142,8,131,140,8,131,240,8,131,140,8, + 131,140,8,131,142,8,131,142,72,67,142,80,67,134,80,47, + 195,160,48,0,96,24,0,192,12,1,128,3,222,0,8,1, + 1,14,3,17,255,8,8,8,16,4,13,60,66,129,129,129, + 129,66,60,24,21,63,26,1,255,0,8,0,0,8,0,0, + 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,255,255,255,0,8,0,0,8,0,0,8,0,0,8,0, + 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0, + 0,0,0,0,0,255,255,255,8,13,13,13,3,8,60,198, + 135,199,231,6,12,24,48,65,193,255,255,9,13,26,13,3, + 8,60,0,70,0,67,0,99,0,3,0,6,0,120,0,7, + 0,3,0,227,128,227,0,135,0,124,0,5,5,5,13,6, + 16,24,56,48,96,128,15,22,44,18,2,248,192,64,192,96, + 224,224,192,224,192,224,192,96,192,96,192,96,64,96,64,64, + 64,66,192,194,177,190,143,12,128,0,128,0,192,0,192,0, + 192,0,224,0,224,0,96,0,12,26,52,16,2,251,31,240, + 124,64,252,64,252,64,252,64,252,64,252,64,124,64,60,64, + 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, + 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, + 4,64,4,4,4,8,2,8,96,240,240,96,6,7,7,13, + 3,250,32,32,48,8,12,140,120,6,12,12,13,4,9,16, + 48,240,48,48,48,48,48,48,48,48,252,7,10,10,11,2, + 11,56,68,198,198,198,198,198,68,56,254,8,12,12,14,3, + 1,8,132,70,66,35,35,35,35,34,70,68,8,19,21,63, + 25,4,0,16,3,0,48,2,0,240,4,0,48,4,0,48, + 8,0,48,8,0,48,16,0,48,48,0,48,32,0,48,65, + 128,48,67,128,48,131,128,252,133,128,1,9,128,3,9,128, + 2,17,128,4,31,224,4,1,128,8,1,128,8,1,128,16, + 7,224,19,21,63,25,4,0,16,2,0,48,2,0,240,4, + 0,48,4,0,48,8,0,48,16,0,48,16,0,48,32,0, + 48,39,128,48,72,192,48,80,224,48,144,224,252,156,224,1, + 12,192,2,0,192,2,1,0,4,6,0,4,12,32,8,8, + 32,8,31,224,16,31,224,20,21,63,25,3,0,60,1,0, + 70,1,0,67,2,0,99,2,0,3,4,0,6,12,0,120, + 8,0,7,16,0,3,16,0,227,160,192,227,33,192,135,65, + 192,124,130,192,0,132,192,1,4,192,1,8,192,2,15,240, + 2,0,192,4,0,192,8,0,192,8,3,240,11,21,42,14, + 1,249,12,0,30,0,30,0,12,0,0,0,14,0,17,0, + 17,0,17,0,2,0,6,0,28,0,56,0,112,0,224,192, + 225,224,225,224,224,32,96,32,112,64,31,128,20,28,84,22, + 1,0,3,0,0,3,128,0,1,128,0,0,192,0,0,64, + 0,0,0,0,0,0,0,0,32,0,0,96,0,0,96,0, + 0,112,0,0,240,0,0,240,0,0,184,0,1,56,0,1, + 56,0,3,28,0,3,28,0,2,28,0,6,14,0,6,14, + 0,7,254,0,12,7,0,12,7,0,8,7,0,24,3,128, + 24,3,128,255,31,240,20,28,84,22,1,0,0,4,0,0, + 12,0,0,24,0,0,48,0,0,32,0,0,0,0,0,0, + 0,0,32,0,0,96,0,0,96,0,0,112,0,0,240,0, + 0,240,0,1,184,0,1,56,0,1,56,0,3,28,0,3, + 28,0,2,28,0,6,14,0,6,14,0,7,254,0,12,7, + 0,12,7,0,8,7,0,24,3,128,24,3,128,255,31,240, + 20,28,84,22,1,0,0,32,0,0,96,0,0,240,0,1, + 152,0,3,4,0,0,0,0,0,0,0,0,32,0,0,96, + 0,0,96,0,0,112,0,0,240,0,0,240,0,0,184,0, + 1,56,0,1,56,0,3,28,0,3,28,0,2,28,0,6, + 14,0,6,14,0,7,254,0,12,7,0,12,7,0,8,7, + 0,24,3,128,24,3,128,255,31,240,20,27,81,22,1,0, + 1,228,0,3,252,0,2,56,0,0,0,0,0,0,0,0, + 0,0,0,32,0,0,96,0,0,96,0,0,112,0,0,240, + 0,0,240,0,0,184,0,1,184,0,1,56,0,3,28,0, + 3,28,0,2,28,0,6,14,0,6,14,0,7,254,0,12, + 7,0,12,7,0,8,7,0,24,3,128,24,3,128,255,31, + 240,19,27,81,22,2,0,6,24,0,7,28,0,6,24,0, + 0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0, + 224,0,0,224,0,1,224,0,1,224,0,1,112,0,3,112, + 0,2,48,0,2,56,0,6,56,0,4,24,0,4,28,0, + 12,28,0,15,252,0,8,14,0,24,14,0,24,6,0,24, + 7,0,56,7,0,254,31,224,20,28,84,23,2,0,0,96, + 0,1,152,0,1,8,0,1,8,0,1,152,0,0,96,0, + 0,0,0,0,96,0,0,96,0,0,96,0,0,240,0,0, + 240,0,0,240,0,1,184,0,1,56,0,1,56,0,3,28, + 0,2,28,0,2,28,0,6,14,0,4,14,0,15,254,0, + 8,7,0,8,7,0,24,7,0,24,3,128,56,3,128,255, + 31,240,27,21,84,30,1,0,0,63,255,224,0,15,0,224, + 0,15,0,96,0,31,0,96,0,23,0,32,0,55,0,32, + 0,39,8,32,0,103,8,0,0,71,8,0,0,199,24,0, + 0,135,248,0,1,7,24,0,3,7,8,0,2,7,8,32, + 7,255,8,32,4,7,0,32,12,7,0,32,8,7,0,96, + 24,7,0,96,56,7,1,224,255,63,255,224,15,28,56,19, + 2,250,15,226,16,54,48,30,32,14,96,6,96,6,224,6, + 224,2,224,0,224,0,224,0,224,0,224,0,224,2,96,2, + 96,2,96,4,32,4,48,12,24,8,6,112,1,128,1,0, + 1,192,0,96,0,112,8,96,7,192,17,28,84,20,2,0, + 4,0,0,6,0,0,3,0,0,1,0,0,0,128,0,0, + 0,0,0,0,0,255,255,128,28,3,128,28,3,128,28,1, + 128,28,1,128,28,0,128,28,32,128,28,32,0,28,32,0, + 28,96,0,31,224,0,28,96,0,28,32,0,28,32,128,28, + 32,128,28,0,128,28,1,128,28,1,128,28,3,128,28,7, + 128,255,255,128,17,28,84,20,2,0,0,24,0,0,56,0, + 0,48,0,0,96,0,0,128,0,0,0,0,0,0,0,255, + 255,128,28,3,128,28,3,128,28,1,128,28,1,128,28,0, + 128,28,32,128,28,32,0,28,32,0,28,96,0,31,224,0, + 28,96,0,28,32,0,28,32,128,28,32,128,28,0,128,28, + 1,128,28,1,128,28,3,128,28,7,128,255,255,128,17,28, + 84,20,2,0,0,128,0,0,192,0,1,192,0,2,32,0, + 4,24,0,0,0,0,0,0,0,255,255,128,28,3,128,28, + 3,128,28,1,128,28,1,128,28,0,128,28,32,128,28,32, + 0,28,32,0,28,96,0,31,224,0,28,96,0,28,32,0, + 28,32,128,28,32,128,28,0,128,28,1,128,28,1,128,28, + 3,128,28,7,128,255,255,128,17,27,81,20,2,0,6,48, + 0,7,56,0,6,48,0,0,0,0,0,0,0,0,0,0, + 255,255,128,28,7,128,28,3,128,28,1,128,28,1,128,28, + 1,128,28,32,128,28,32,0,28,32,0,28,96,0,31,224, + 0,28,96,0,28,32,0,28,32,128,28,32,128,28,1,0, + 28,1,128,28,1,128,28,3,128,28,7,128,255,255,128,8, + 28,28,12,2,0,192,224,96,48,24,0,0,255,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 255,9,28,56,12,2,0,1,0,3,0,6,0,4,0,8, + 0,0,0,0,0,255,128,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,8, + 28,28,12,2,0,8,24,28,38,193,0,0,255,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, + 255,9,27,54,11,2,0,195,0,227,128,195,0,0,0,0, + 0,0,0,255,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,255,0,19,21,63, + 22,2,0,255,248,0,28,6,0,28,3,0,28,1,128,28, + 1,192,28,0,192,28,0,192,28,0,224,28,0,224,255,128, + 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,192, + 28,0,192,28,1,128,28,1,128,28,3,0,28,6,0,255, + 248,0,20,27,81,23,2,0,1,226,0,3,254,0,2,28, + 0,0,0,0,0,0,0,0,0,0,252,7,240,28,0,128, + 30,0,128,31,0,128,23,0,128,19,128,128,19,192,128,17, + 192,128,16,224,128,16,240,128,16,112,128,16,56,128,16,56, + 128,16,28,128,16,30,128,16,14,128,16,7,128,16,7,128, + 16,3,128,16,1,128,254,1,128,17,28,84,20,2,0,12, + 0,0,14,0,0,6,0,0,3,0,0,1,128,0,0,0, + 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, + 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, + 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, + 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, + 7,240,0,17,28,84,20,2,0,0,24,0,0,56,0,0, + 112,0,0,64,0,0,128,0,0,0,0,0,128,0,7,112, + 0,24,8,0,16,12,0,48,6,0,96,6,0,96,3,0, + 96,3,0,224,3,0,224,3,0,224,3,0,224,3,128,224, + 3,128,224,3,0,224,3,0,96,3,0,96,3,0,96,6, + 0,48,6,0,16,12,0,24,8,0,7,240,0,17,28,84, + 20,2,0,0,128,0,1,128,0,3,192,0,6,32,0,12, + 16,0,0,8,0,0,128,0,7,112,0,24,8,0,16,12, + 0,48,6,0,96,6,0,96,3,0,96,3,0,224,3,0, + 224,3,0,224,3,0,224,3,128,224,3,128,224,3,0,224, + 3,0,96,3,0,96,3,0,96,6,0,48,6,0,16,12, + 0,24,8,0,7,240,0,17,27,81,20,2,0,7,136,0, + 15,248,0,8,112,0,0,0,0,0,0,0,0,128,0,7, + 112,0,24,8,0,16,12,0,48,6,0,96,6,0,96,3, + 0,96,3,0,224,3,0,224,3,0,224,3,0,224,3,128, + 224,3,128,224,3,0,224,3,0,96,3,0,96,3,0,96, + 6,0,48,6,0,16,12,0,24,8,0,7,240,0,17,27, + 81,20,2,0,12,48,0,14,56,0,12,48,0,0,0,0, + 0,0,0,0,128,0,7,112,0,24,8,0,16,12,0,48, + 6,0,96,6,0,96,3,0,96,3,0,224,3,0,224,3, + 0,224,3,0,224,3,128,224,3,128,224,3,0,224,3,0, + 96,3,0,96,3,0,96,6,0,48,6,0,16,12,0,24, + 8,0,7,240,0,18,18,54,27,5,255,128,0,192,192,1, + 128,96,3,0,48,6,0,24,12,0,12,24,0,6,48,0, + 3,96,0,1,192,0,1,192,0,3,96,0,6,48,0,12, + 24,0,24,12,0,48,6,0,96,3,0,64,1,128,128,0, + 192,17,21,63,20,2,1,7,241,0,8,15,0,16,14,0, + 48,6,0,96,14,0,96,27,0,96,19,0,224,35,0,224, + 99,0,224,195,128,225,131,128,225,3,0,226,3,0,230,3, + 0,236,3,0,104,3,0,112,6,0,112,6,0,112,12,0, + 88,8,0,143,240,0,20,28,84,23,2,0,3,0,0,3, + 128,0,1,128,0,0,192,0,0,32,0,0,0,0,0,0, + 0,255,7,240,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, + 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, + 128,28,0,128,12,0,128,12,1,0,6,2,0,3,252,0, + 20,28,84,23,2,0,0,4,0,0,12,0,0,24,0,0, + 16,0,0,32,0,0,0,0,0,0,0,255,7,240,28,0, + 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, + 0,128,28,0,128,28,0,128,28,0,128,28,0,128,12,0, + 128,12,1,0,6,2,0,3,252,0,20,28,84,23,2,0, + 0,32,0,0,96,0,0,112,0,0,136,0,3,4,0,0, + 0,0,0,0,0,255,7,240,28,0,128,28,0,128,28,0, + 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, + 0,128,28,0,128,28,0,128,12,1,128,12,1,0,6,2, + 0,3,252,0,20,27,81,23,2,0,1,134,0,3,142,0, + 1,134,0,0,0,0,0,0,0,0,0,0,255,131,240,28, + 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, + 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,12, + 0,128,12,1,0,6,2,0,3,252,0,19,28,84,21,1, + 0,0,4,0,0,12,0,0,24,0,0,16,0,0,32,0, + 0,0,0,0,0,0,255,143,224,30,3,128,14,3,0,14, + 2,0,7,2,0,7,4,0,3,132,0,1,200,0,1,200, + 0,0,240,0,0,240,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,7,254,0,17,21,63,20,2,0,255,128,0,28,0, + 0,28,0,0,31,240,0,28,12,0,28,6,0,28,3,0, + 28,3,0,28,3,128,28,3,128,28,3,0,28,3,0,28, + 6,0,28,12,0,31,240,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,255,128,0,13,21,42,15,1,0, + 7,192,12,96,24,112,56,112,56,112,56,96,56,192,59,0, + 56,192,56,96,56,48,56,48,56,56,56,56,56,56,56,56, + 58,56,63,56,62,48,60,48,251,192,13,21,42,15,1,0, + 96,0,96,0,48,0,24,0,8,0,4,0,0,0,31,0, + 97,128,65,192,97,192,113,192,1,192,15,192,49,192,97,192, + 193,192,193,200,195,200,196,216,56,240,13,21,42,15,1,0, + 0,192,1,192,1,128,3,0,6,0,4,0,0,0,31,0, + 33,128,96,192,112,192,112,192,0,192,7,192,56,192,96,192, + 224,192,224,200,225,200,226,216,60,112,13,21,42,15,1,0, + 4,0,12,0,14,0,26,0,17,0,32,128,0,0,31,0, + 33,128,97,192,113,192,113,192,1,192,15,192,49,192,97,192, + 225,192,225,200,225,200,226,216,60,240,13,20,40,15,1,0, + 24,0,63,128,71,128,0,0,0,0,0,0,31,0,33,128, + 97,192,113,192,113,192,1,192,15,192,49,192,97,192,225,192, + 225,200,225,200,226,216,60,240,13,20,40,15,1,0,97,128, + 97,192,97,128,0,0,0,0,0,0,30,0,97,128,64,128, + 96,128,96,192,0,192,15,192,48,192,96,192,192,192,193,200, + 194,200,194,216,60,112,13,21,42,15,1,0,14,0,49,0, + 33,0,33,0,19,0,14,0,0,0,30,0,33,128,97,128, + 97,128,113,192,1,192,15,192,113,192,97,192,225,192,225,200, + 227,200,229,216,120,240,18,14,42,20,1,0,31,30,0,97, + 227,0,65,227,0,97,193,128,113,193,128,1,193,128,15,255, + 192,113,192,0,65,192,0,193,192,128,193,192,128,194,224,128, + 194,97,0,60,62,0,10,20,40,12,1,250,31,0,48,128, + 96,192,96,192,225,192,224,128,224,0,224,0,224,0,224,64, + 96,64,96,128,48,128,31,0,8,0,12,0,3,0,3,0, + 3,0,30,0,10,21,42,13,1,0,96,0,112,0,56,0, + 24,0,4,0,0,0,0,0,30,0,49,128,97,128,96,192, + 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, + 48,128,31,0,10,21,42,13,1,0,0,192,1,192,1,128, + 3,0,6,0,0,0,0,0,30,0,49,128,97,128,96,192, + 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, + 48,128,31,0,10,21,42,13,1,0,4,0,4,0,14,0, + 11,0,17,0,32,128,0,0,30,0,49,128,97,128,96,192, + 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, + 48,128,31,0,10,20,40,13,1,0,49,128,113,192,49,128, + 0,0,0,0,0,0,30,0,49,128,97,128,96,192,224,192, + 224,192,255,192,224,0,224,0,224,64,96,64,96,64,48,128, + 31,0,7,21,21,8,0,0,192,192,96,48,24,0,0,124, + 28,28,28,28,28,28,28,28,28,28,28,28,126,7,21,21, + 8,1,0,6,14,12,24,16,0,0,248,56,56,56,56,56, + 56,56,56,56,56,56,56,252,7,20,20,9,1,0,48,48, + 104,132,2,0,248,56,56,56,56,56,56,56,56,56,56,56, + 56,252,8,19,19,9,1,0,198,231,198,0,0,124,28,28, + 28,28,28,28,28,28,28,28,28,28,126,12,21,42,14,1, + 0,56,64,29,128,14,0,15,0,19,0,33,128,1,192,15, + 192,48,224,96,224,96,96,224,96,224,112,224,112,224,96,224, + 96,224,96,96,96,96,192,48,128,15,0,14,20,40,16,1, + 0,14,32,15,32,19,192,16,192,0,0,0,0,249,192,62, + 96,60,112,56,112,56,112,56,112,56,112,56,112,56,112,56, + 112,56,112,56,112,56,112,252,252,12,21,42,14,1,0,32, + 0,48,0,24,0,8,0,4,0,0,0,0,0,15,0,48, + 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, + 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,0, + 192,1,192,1,128,3,0,2,0,4,0,0,0,15,0,48, + 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, + 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,4, + 0,6,0,14,0,11,0,16,128,32,0,0,0,15,0,48, + 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, + 96,96,96,96,192,48,128,15,0,12,20,40,14,1,0,28, + 64,63,192,39,128,0,0,0,0,0,0,15,0,48,128,96, + 192,96,96,224,96,224,96,224,112,224,112,224,96,224,96,96, + 96,96,192,48,128,15,0,12,20,40,14,1,0,48,192,57, + 192,48,192,0,0,0,0,0,0,15,0,48,128,96,192,96, + 96,224,96,224,96,224,112,224,112,224,96,224,96,96,96,96, + 192,48,128,15,0,24,19,57,26,1,254,0,24,0,0,60, + 0,0,60,0,0,24,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,24,0,0,60,0,0,60, + 0,0,24,0,12,14,28,14,1,0,15,32,48,160,96,192, + 96,224,225,96,227,96,226,112,228,112,232,96,240,96,96,96, + 96,192,112,128,143,0,14,21,42,16,1,0,24,0,24,0, + 12,0,6,0,2,0,0,0,0,0,248,240,56,112,56,112, + 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, + 56,240,25,112,14,124,14,21,42,16,1,0,0,96,0,224, + 0,192,1,128,1,0,0,0,0,0,248,240,56,112,56,112, + 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, + 56,240,25,112,14,124,14,21,42,16,1,0,2,0,3,0, + 7,0,4,128,8,64,0,0,0,0,248,240,56,112,56,112, + 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, + 56,240,25,112,14,124,14,20,40,16,1,0,24,96,28,224, + 24,96,0,0,0,0,0,0,248,240,56,112,56,112,56,112, + 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,240, + 25,112,14,124,14,28,56,15,0,249,0,48,0,112,0,96, + 0,192,1,128,0,0,0,0,254,124,24,16,24,16,28,16, + 12,32,12,32,14,32,6,64,6,64,6,64,3,128,3,128, + 3,128,1,128,1,0,1,0,1,0,98,0,114,0,100,0, + 56,0,12,28,56,14,1,249,56,0,248,0,56,0,56,0, + 56,0,56,0,56,0,57,224,62,112,60,112,56,112,56,112, + 56,112,56,96,56,96,56,192,56,128,57,128,58,0,60,0, + 56,0,56,0,56,0,56,0,56,0,56,0,48,0,192,0, + 14,26,52,15,0,249,12,48,14,112,12,48,0,0,0,0, + 254,60,24,16,24,16,28,32,12,32,12,32,14,32,6,64, + 6,64,7,64,3,128,3,128,3,128,1,0,1,0,1,0, + 1,0,114,0,114,0,116,0,56,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 21 + Calculated Max Values w=24 h=28 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 + Font Bounding box w=76 h=38 x=-24 y=-9 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =21 descent= 0 + X Font ascent =21 descent= 0 + Max Font ascent =22 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr21n[702] U8G_SECTION(".progmem.u8g_font_osr21n") = { + 0,76,38,232,247,21,0,0,0,0,42,57,0,22,250,21, + 0,10,12,24,14,2,9,12,0,14,0,204,64,228,192,53, + 0,14,0,63,0,229,192,196,192,12,0,14,0,12,0,24, + 25,75,26,1,252,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, + 0,8,0,0,8,0,0,8,0,255,255,255,0,8,0,0, + 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, + 4,8,8,8,2,251,224,240,240,16,16,16,32,64,7,2, + 2,11,2,7,254,254,4,4,4,8,2,0,96,240,240,96, + 9,28,56,13,2,250,0,128,0,128,1,128,1,0,1,0, + 1,0,2,0,2,0,2,0,6,0,4,0,4,0,12,0, + 8,0,8,0,24,0,16,0,16,0,16,0,32,0,32,0, + 32,0,64,0,64,0,64,0,192,0,128,0,128,0,14,21, + 42,17,1,0,7,128,24,64,48,32,32,48,96,16,96,24, + 96,24,224,24,224,24,224,24,224,28,224,28,224,24,224,24, + 224,24,96,24,96,24,96,48,48,32,16,96,15,192,10,21, + 42,17,3,0,2,0,6,0,6,0,14,0,254,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,255,192,12,21, + 42,17,2,0,31,0,32,192,64,96,128,112,128,112,192,112, + 240,112,112,112,32,96,0,224,0,192,1,0,6,0,12,0, + 24,0,48,16,96,16,64,16,224,112,255,240,255,240,12,21, + 42,17,2,0,31,0,97,192,192,224,224,96,240,96,112,112, + 0,96,0,96,0,224,48,192,63,0,0,192,0,96,0,112, + 0,112,96,112,240,112,240,112,192,96,192,192,127,128,14,21, + 42,17,2,0,0,64,0,192,1,192,1,192,3,192,7,192, + 5,192,13,192,9,192,17,192,49,192,33,192,65,192,193,192, + 255,252,1,192,1,192,1,192,1,192,1,192,15,252,12,21, + 42,17,2,0,96,64,127,128,127,0,64,0,64,0,64,0, + 64,0,79,0,112,192,64,96,64,96,0,112,0,112,0,112, + 96,112,240,112,240,112,224,96,192,224,64,192,63,128,12,21, + 42,17,2,0,7,128,24,64,16,96,48,224,96,224,96,192, + 96,0,224,0,231,128,232,192,240,96,240,96,224,112,224,112, + 224,112,224,112,96,112,96,96,112,96,48,192,31,128,11,21, + 42,17,3,0,255,224,255,224,192,32,128,32,128,64,128,64, + 0,64,0,128,1,0,1,0,2,0,6,0,6,0,12,0, + 12,0,12,0,30,0,30,0,30,0,30,0,30,0,14,21, + 42,17,2,0,15,128,48,96,96,48,224,24,224,24,224,24, + 224,24,240,16,124,32,63,192,15,224,51,240,96,248,224,56, + 224,28,224,28,224,24,224,24,96,24,112,48,31,192,12,21, + 42,17,2,0,15,0,48,128,96,64,96,96,224,96,224,96, + 224,112,224,112,224,112,96,112,96,240,49,176,14,48,0,48, + 0,32,48,96,112,96,112,64,96,192,96,128,63,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 21, '1' Height: 21 + Calculated Max Values w=29 h=28 x= 4 y=17 dx=32 dy= 0 ascent=23 len=88 + Font Bounding box w=76 h=38 x=-24 y=-9 + Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 + Pure Font ascent =21 descent=-7 + X Font ascent =22 descent=-7 + Max Font ascent =23 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr21r[4396] U8G_SECTION(".progmem.u8g_font_osr21r") = { + 0,76,38,232,247,21,5,131,12,189,32,127,249,23,249,22, + 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, + 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, + 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, + 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, + 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, + 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, + 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, + 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, + 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, + 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, + 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, + 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, + 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, + 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, + 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, + 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, + 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, + 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, + 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, + 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, + 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, + 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, + 24,14,2,9,12,0,14,0,204,64,228,192,53,0,14,0, + 63,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, + 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, + 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, + 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, + 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, + 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, + 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, + 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, + 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, + 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, + 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, + 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, + 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, + 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, + 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, + 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, + 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, + 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, + 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, + 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, + 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, + 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, + 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, + 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, + 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,79, + 0,112,192,64,96,64,96,0,112,0,112,0,112,96,112,240, + 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, + 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, + 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, + 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, + 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, + 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, + 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, + 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, + 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, + 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, + 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, + 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, + 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, + 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, + 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, + 240,240,16,16,16,32,64,22,24,72,27,2,251,0,0,12, + 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, + 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, + 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, + 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, + 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, + 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, + 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, + 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, + 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, + 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, + 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, + 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, + 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, + 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, + 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, + 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, + 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, + 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, + 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, + 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, + 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, + 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, + 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, + 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, + 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, + 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, + 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, + 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, + 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, + 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, + 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, + 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, + 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, + 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, + 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, + 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, + 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, + 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, + 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, + 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, + 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, + 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, + 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, + 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, + 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, + 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, + 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, + 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, + 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, + 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, + 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, + 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, + 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, + 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, + 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, + 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, + 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, + 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, + 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, + 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, + 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, + 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, + 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, + 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, + 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, + 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, + 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, + 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, + 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, + 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, + 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, + 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, + 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, + 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, + 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, + 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, + 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, + 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, + 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, + 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, + 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, + 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, + 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, + 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, + 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, + 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, + 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, + 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, + 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, + 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, + 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, + 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, + 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, + 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, + 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, + 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, + 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, + 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, + 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, + 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, + 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, + 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, + 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, + 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, + 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, + 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, + 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, + 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, + 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, + 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, + 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, + 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, + 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, + 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, + 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, + 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, + 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, + 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, + 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, + 56,56,56,56,48,56,48,56,48,56,32,44,96,35,192,10, + 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, + 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, + 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, + 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, + 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, + 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, + 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, + 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, + 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, + 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, + 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, + 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, + 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, + 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, + 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, + 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, + 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, + 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, + 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, + 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, + 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, + 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, + 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, + 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, + 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, + 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, + 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, + 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, + 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, + 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, + 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, + 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, + 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, + 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, + 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, + 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, + 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, + 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, + 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, + 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, + 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, + 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, + 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, + 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, + 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, + 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, + 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, + 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, + 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, + 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, + 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, + 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, + 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, + 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, + 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, + 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, + 2,126,1,143,193,131,241,128,255,64,62,255}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 26, '1' Height: 25 + Calculated Max Values w=36 h=35 x= 7 y=21 dx=38 dy= 0 ascent=35 len=140 + Font Bounding box w=94 h=46 x=-29 y=-11 + Calculated Min Values x=-1 y=-10 dx= 0 dy= 0 + Pure Font ascent =26 descent=-8 + X Font ascent =27 descent=-8 + Max Font ascent =35 descent=-10 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr26[13186] U8G_SECTION(".progmem.u8g_font_osr26") = { + 0,94,46,227,245,26,7,96,17,82,32,255,248,35,246,27, + 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, + 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, + 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, + 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, + 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, + 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, + 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, + 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, + 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, + 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, + 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, + 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, + 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, + 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, + 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, + 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, + 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, + 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, + 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, + 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, + 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, + 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, + 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, + 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, + 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, + 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, + 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, + 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, + 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, + 0,195,24,226,56,114,112,10,128,7,0,15,128,122,240,242, + 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, + 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, + 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, + 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, + 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, + 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, + 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, + 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, + 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, + 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, + 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, + 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, + 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, + 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, + 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, + 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, + 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, + 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, + 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, + 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, + 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, + 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, + 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, + 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, + 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, + 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, + 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, + 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, + 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, + 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, + 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, + 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, + 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, + 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, + 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, + 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, + 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, + 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, + 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, + 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, + 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, + 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, + 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, + 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, + 0,112,240,248,120,8,8,8,16,16,32,64,28,29,116,34, + 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, + 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, + 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, + 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, + 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, + 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, + 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, + 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, + 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, + 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, + 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, + 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, + 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, + 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, + 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, + 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, + 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, + 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, + 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, + 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, + 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, + 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, + 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, + 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, + 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, + 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, + 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, + 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, + 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, + 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, + 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, + 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, + 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, + 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, + 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, + 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, + 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, + 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, + 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, + 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, + 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, + 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, + 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, + 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, + 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, + 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, + 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, + 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, + 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, + 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, + 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, + 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, + 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, + 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, + 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, + 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, + 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, + 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, + 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, + 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, + 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, + 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, + 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, + 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, + 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, + 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, + 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, + 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, + 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, + 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, + 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, + 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, + 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, + 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, + 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, + 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, + 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, + 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, + 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, + 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, + 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, + 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, + 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, + 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, + 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, + 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, + 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, + 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, + 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, + 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, + 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, + 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, + 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, + 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, + 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, + 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, + 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, + 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, + 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, + 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, + 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, + 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, + 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, + 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, + 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, + 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, + 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, + 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, + 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, + 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, + 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, + 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, + 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, + 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, + 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, + 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, + 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, + 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, + 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, + 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, + 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, + 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, + 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, + 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, + 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, + 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, + 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, + 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, + 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, + 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, + 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, + 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, + 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, + 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, + 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, + 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, + 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, + 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, + 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, + 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, + 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, + 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, + 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, + 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, + 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, + 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, + 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, + 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, + 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, + 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, + 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, + 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, + 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, + 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, + 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, + 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, + 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, + 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, + 28,7,28,7,28,7,28,7,28,7,28,7,30,6,30,14, + 19,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, + 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, + 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, + 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, + 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, + 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, + 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, + 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, + 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, + 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, + 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, + 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, + 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, + 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, + 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, + 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, + 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, + 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, + 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, + 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, + 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, + 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, + 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, + 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, + 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, + 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, + 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, + 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, + 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, + 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, + 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, + 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, + 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, + 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, + 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, + 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, + 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, + 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, + 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, + 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, + 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, + 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, + 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, + 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, + 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, + 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, + 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, + 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, + 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, + 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, + 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, + 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, + 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, + 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, + 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, + 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, + 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, + 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, + 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, + 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, + 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, + 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,0,0,0,10,0,0,4,25,25,10,3,248,96,240,240, + 240,96,64,64,96,96,96,96,96,96,96,96,96,96,240,240, + 240,240,240,240,240,96,12,25,50,21,4,252,1,0,1,0, + 1,0,1,0,7,192,25,32,57,48,113,48,113,112,225,112, + 225,32,225,0,225,0,225,0,225,0,225,0,113,16,113,16, + 57,16,29,32,7,192,1,0,1,0,1,0,1,0,20,25, + 75,25,2,0,0,15,128,0,24,96,0,48,32,0,96,112, + 0,192,240,0,192,240,1,192,224,1,192,0,1,192,0,1, + 192,0,1,192,0,63,192,0,1,254,0,1,192,0,1,192, + 0,1,192,0,1,192,0,1,192,0,1,192,0,57,128,16, + 199,128,16,131,128,48,131,224,96,134,255,192,120,63,128,18, + 16,48,22,2,5,195,241,192,124,15,128,48,7,0,32,3, + 0,96,1,0,64,1,128,64,0,128,64,0,128,64,0,128, + 64,0,128,64,1,128,96,1,0,32,3,0,48,7,0,124, + 15,128,227,241,192,20,25,75,22,1,0,255,7,240,60,1, + 192,28,1,128,30,1,0,14,3,0,15,2,0,7,6,0, + 7,132,0,3,140,0,3,136,0,1,216,0,1,208,0,1, + 224,0,31,255,0,0,224,0,0,224,0,31,255,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,15,254,0,2,33,33,10,4,250,192,192,192,192, + 192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,0, + 192,192,192,192,192,192,192,192,192,192,192,192,192,13,32,64, + 23,4,249,7,128,24,64,16,96,48,224,48,224,48,64,56, + 0,28,0,30,0,15,0,23,128,99,192,129,224,128,240,128, + 120,128,24,192,24,224,8,120,8,60,16,30,32,15,64,7, + 128,3,192,1,192,0,224,16,96,56,96,56,96,48,64,16, + 192,15,0,10,4,8,16,3,20,96,192,225,192,225,192,96, + 192,26,26,104,30,2,1,0,255,192,0,3,0,48,0,4, + 0,8,0,8,0,4,0,16,30,2,0,32,113,225,0,32, + 224,225,0,65,192,96,128,65,192,96,128,129,128,32,64,131, + 128,32,64,131,128,0,64,131,128,0,64,131,128,0,64,131, + 128,0,64,131,128,0,64,131,128,32,64,65,192,64,128,65, + 192,64,128,32,224,65,0,32,112,129,0,16,31,2,0,8, + 0,4,0,4,0,8,0,3,0,48,0,0,255,192,0,9, + 13,26,13,2,12,120,0,132,0,198,0,198,0,14,0,54, + 0,70,0,198,0,198,128,206,128,115,0,0,0,255,0,10, + 14,28,18,4,2,16,64,48,128,97,128,97,0,195,0,195, + 0,195,0,195,0,195,0,67,0,97,0,32,128,16,192,8, + 0,18,7,21,22,2,6,255,255,192,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,0,0,192,9,2,4,13, + 2,8,255,128,255,128,26,26,104,30,2,1,0,255,192,0, + 3,0,48,0,4,0,8,0,8,0,4,0,19,255,2,0, + 32,225,193,0,32,224,225,0,64,224,224,128,64,224,224,128, + 128,224,224,64,128,224,224,64,128,225,192,64,128,254,0,64, + 128,225,128,64,128,224,192,64,128,224,224,64,128,224,224,64, + 64,224,228,128,64,224,228,128,32,224,233,0,35,248,121,0, + 16,0,2,0,8,0,4,0,4,0,8,0,3,0,48,0, + 0,255,192,0,9,1,2,15,3,21,255,128,10,9,18,22, + 6,16,30,0,97,128,192,128,128,64,128,64,128,64,64,128, + 97,128,30,0,30,25,100,34,2,255,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,255,255,255,252,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, + 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,255,255,252,10,15, + 30,16,3,10,63,0,67,128,129,192,129,192,225,192,225,192, + 1,128,3,0,6,0,8,0,48,0,64,64,64,64,255,192, + 255,192,10,16,32,16,4,9,62,0,67,0,193,128,225,128, + 225,128,1,128,3,0,124,0,3,128,1,192,1,192,225,192, + 225,192,129,192,131,128,126,0,6,6,6,16,7,19,12,28, + 56,48,96,192,19,27,81,22,2,246,96,24,0,224,60,0, + 224,60,0,224,60,0,224,60,0,224,60,0,224,60,0,224, + 60,0,224,60,0,192,24,0,64,24,0,64,24,0,64,56, + 0,96,48,32,112,124,96,95,227,224,71,193,192,128,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,224,0,0,224, + 0,0,224,0,0,240,0,0,96,0,0,15,31,62,19,2, + 251,31,254,62,16,126,16,254,16,254,16,254,16,254,16,254, + 16,254,16,126,16,62,16,2,16,2,16,2,16,2,16,2, + 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2, + 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4, + 5,5,10,3,9,96,240,240,240,96,7,7,7,16,4,248, + 16,32,28,6,6,134,124,8,15,15,16,4,10,8,24,248, + 24,24,24,24,24,24,24,24,24,24,24,255,9,13,26,15, + 3,12,28,0,99,0,67,0,193,128,193,128,193,128,193,128, + 193,128,67,0,99,0,28,0,0,0,255,128,9,14,28,17, + 4,2,132,0,66,0,99,0,33,0,49,128,49,128,49,128, + 49,128,49,128,33,128,99,0,67,0,134,0,4,0,24,25, + 75,31,4,0,8,0,16,24,0,48,248,0,32,24,0,64, + 24,0,64,24,0,128,24,1,128,24,1,0,24,2,0,24, + 6,0,24,4,12,24,8,28,24,8,28,24,16,44,255,48, + 76,0,32,76,0,64,140,0,192,140,0,129,12,1,2,12, + 1,3,255,2,0,12,6,0,12,4,0,12,8,0,127,24, + 25,75,31,4,0,8,0,32,24,0,96,248,0,64,24,0, + 192,24,0,128,24,1,0,24,1,0,24,2,0,24,6,0, + 24,4,0,24,12,248,24,9,14,24,18,15,24,18,7,255, + 35,135,0,97,135,0,64,14,0,128,12,0,128,24,1,0, + 32,3,0,193,2,1,1,6,1,1,4,3,255,8,3,254, + 24,25,75,31,4,0,62,0,32,67,0,32,193,128,64,225, + 128,192,1,128,128,3,1,128,124,1,0,3,130,0,1,194, + 0,1,196,0,225,204,24,225,200,24,129,208,56,131,144,88, + 126,32,88,0,96,152,0,64,152,0,193,24,0,129,24,1, + 2,24,3,3,255,2,0,24,6,0,24,4,0,24,8,0, + 127,13,25,50,17,1,248,6,0,15,0,15,0,15,0,6, + 0,7,0,8,192,16,64,16,64,16,192,0,128,1,0,7, + 0,14,0,28,0,56,0,112,0,240,112,224,120,224,120,224, + 24,224,24,112,16,56,96,15,192,25,34,136,28,2,0,0, + 192,0,0,0,224,0,0,0,224,0,0,0,48,0,0,0, + 24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,12,0,0,0,28,0,0,0,28,0,0,0, + 30,0,0,0,62,0,0,0,46,0,0,0,47,0,0,0, + 103,0,0,0,103,0,0,0,71,128,0,0,195,128,0,0, + 195,128,0,0,131,192,0,1,129,192,0,1,129,192,0,3, + 1,224,0,3,255,224,0,2,0,224,0,6,0,240,0,6, + 0,112,0,6,0,112,0,12,0,120,0,12,0,120,0,30, + 0,120,0,255,195,255,128,25,34,136,28,2,0,0,0,192, + 0,0,1,192,0,0,3,128,0,0,7,0,0,0,6,0, + 0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,12,0,0,0,28,0,0,0,28,0,0,0,30,0, + 0,0,62,0,0,0,46,0,0,0,47,0,0,0,103,0, + 0,0,103,0,0,0,71,128,0,0,195,128,0,0,195,128, + 0,1,131,192,0,1,129,192,0,1,129,192,0,3,1,224, + 0,3,255,224,0,2,0,224,0,6,0,240,0,6,0,112, + 0,4,0,112,0,12,0,120,0,12,0,56,0,30,0,124, + 0,255,195,255,128,25,34,136,28,2,0,0,8,0,0,0, + 28,0,0,0,30,0,0,0,51,0,0,0,65,128,0,1, + 128,64,0,0,0,0,0,0,0,0,0,0,8,0,0,0, + 12,0,0,0,28,0,0,0,28,0,0,0,30,0,0,0, + 62,0,0,0,46,0,0,0,47,0,0,0,103,0,0,0, + 103,0,0,0,71,128,0,0,195,128,0,0,195,128,0,0, + 131,192,0,1,129,192,0,1,129,192,0,3,1,224,0,3, + 255,224,0,2,0,224,0,6,0,240,0,6,0,112,0,6, + 0,112,0,12,0,120,0,12,0,120,0,30,0,120,0,255, + 195,255,128,25,33,132,28,2,0,0,112,64,0,0,252,64, + 0,0,159,192,0,1,7,128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,8,0,0,0,12,0,0,0,28,0, + 0,0,28,0,0,0,30,0,0,0,62,0,0,0,46,0, + 0,0,47,0,0,0,103,0,0,0,103,0,0,0,71,128, + 0,0,195,128,0,0,195,128,0,1,131,192,0,1,129,192, + 0,1,129,192,0,3,1,224,0,3,255,224,0,2,0,224, + 0,6,0,240,0,6,0,112,0,4,0,112,0,12,0,120, + 0,12,0,56,0,30,0,124,0,255,195,255,128,25,33,132, + 28,2,0,0,193,128,0,1,193,192,0,1,193,192,0,0, + 193,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,24,0,0,0,28,0,0,0,28,0,0,0, + 60,0,0,0,62,0,0,0,62,0,0,0,110,0,0,0, + 79,0,0,0,71,0,0,0,199,0,0,0,199,128,0,0, + 131,128,0,1,131,128,0,1,129,192,0,1,1,192,0,3, + 1,192,0,3,255,224,0,2,0,224,0,6,0,224,0,6, + 0,112,0,4,0,112,0,12,0,112,0,12,0,120,0,30, + 0,120,0,255,195,255,128,25,35,140,28,2,0,0,28,0, + 0,0,34,0,0,0,65,0,0,0,65,0,0,0,65,0, + 0,0,65,0,0,0,34,0,0,0,28,0,0,0,0,0, + 0,0,8,0,0,0,12,0,0,0,28,0,0,0,28,0, + 0,0,30,0,0,0,62,0,0,0,46,0,0,0,47,0, + 0,0,111,0,0,0,71,0,0,0,71,128,0,0,199,128, + 0,0,131,128,0,1,131,192,0,1,131,192,0,1,1,192, + 0,3,1,224,0,3,255,224,0,2,0,224,0,6,0,240, + 0,6,0,240,0,4,0,112,0,12,0,120,0,12,0,120, + 0,28,0,120,0,255,195,255,128,33,26,130,36,1,0,0, + 7,255,255,128,0,1,224,7,128,0,1,224,3,128,0,3, + 224,1,128,0,2,224,1,128,0,6,224,0,128,0,4,224, + 0,128,0,12,224,32,128,0,8,224,32,0,0,24,224,32, + 0,0,16,224,96,0,0,48,224,96,0,0,48,255,224,0, + 0,96,224,96,0,0,96,224,96,0,0,192,224,32,0,0, + 192,224,32,128,1,255,224,32,128,1,0,224,0,128,3,0, + 224,0,128,2,0,224,1,128,6,0,224,1,128,6,0,224, + 1,128,14,0,224,3,128,30,0,224,15,128,255,199,255,255, + 128,19,34,102,24,3,249,3,252,64,14,6,96,28,3,224, + 24,1,224,56,0,224,120,0,224,112,0,96,112,0,96,240, + 0,96,240,0,32,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,112,0,32,112,0,32, + 120,0,96,56,0,64,56,0,64,24,0,128,12,0,128,6, + 3,0,3,204,0,0,112,0,0,64,0,0,240,0,0,28, + 0,0,28,0,0,28,0,2,28,0,1,240,0,21,34,102, + 25,2,0,3,0,0,3,128,0,1,192,0,0,192,0,0, + 96,0,0,16,0,0,0,0,0,0,0,255,255,248,14,0, + 120,14,0,56,14,0,24,14,0,24,14,0,8,14,0,8, + 14,4,8,14,4,0,14,4,0,14,12,0,14,12,0,15, + 252,0,14,12,0,14,4,0,14,4,0,14,4,8,14,4, + 8,14,0,8,14,0,8,14,0,24,14,0,24,14,0,56, + 14,0,56,14,0,248,255,255,248,21,34,102,25,2,0,0, + 3,0,0,7,128,0,7,0,0,12,0,0,24,0,0,48, + 0,0,0,0,0,0,0,255,255,248,14,0,120,14,0,56, + 14,0,24,14,0,24,14,0,8,14,0,8,14,4,8,14, + 4,0,14,4,0,14,12,0,14,12,0,15,252,0,14,12, + 0,14,4,0,14,4,0,14,4,8,14,4,8,14,0,8, + 14,0,8,14,0,24,14,0,24,14,0,56,14,0,56,14, + 0,248,255,255,248,21,34,102,25,2,0,0,48,0,0,48, + 0,0,120,0,0,204,0,1,134,0,2,1,128,0,0,0, + 0,0,0,255,255,248,14,0,120,14,0,56,14,0,24,14, + 0,24,14,0,8,14,0,8,14,4,8,14,4,0,14,4, + 0,14,12,0,14,12,0,15,252,0,14,12,0,14,4,0, + 14,4,0,14,4,8,14,4,8,14,0,8,14,0,8,14, + 0,24,14,0,24,14,0,56,14,0,56,14,0,248,255,255, + 248,21,33,99,25,2,0,1,131,0,3,135,0,3,135,0, + 1,131,0,0,0,0,0,0,0,0,0,0,255,255,248,14, + 0,120,14,0,56,14,0,24,14,0,24,14,0,8,14,0, + 8,14,4,8,14,4,0,14,4,0,14,12,0,14,12,0, + 15,252,0,14,12,0,14,4,0,14,4,0,14,4,8,14, + 4,8,14,0,8,14,0,8,14,0,24,14,0,24,14,0, + 56,14,0,56,14,0,248,255,255,248,10,34,68,14,2,0, + 192,0,224,0,112,0,56,0,8,0,4,0,0,0,0,0, + 255,192,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,255,192,10,34,68,14,2,0,0,192,1,192,1,128, + 3,0,6,0,4,0,0,0,0,0,255,192,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,255,192,10,34, + 68,14,2,0,4,0,14,0,30,0,59,0,97,128,128,64, + 0,0,0,0,255,192,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,255,192,11,33,66,14,2,0,96,192, + 224,224,224,224,96,192,0,0,0,0,0,0,127,224,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,127,224, + 24,26,78,27,2,0,255,255,0,14,0,192,14,0,112,14, + 0,56,14,0,60,14,0,28,14,0,30,14,0,30,14,0, + 14,14,0,15,14,0,15,14,0,15,255,224,15,14,0,15, + 14,0,15,14,0,15,14,0,15,14,0,14,14,0,30,14, + 0,30,14,0,28,14,0,56,14,0,56,14,0,112,14,0, + 192,255,255,0,25,33,132,28,2,0,0,120,32,0,0,254, + 96,0,0,143,192,0,0,131,128,0,0,0,0,0,0,0, + 0,0,0,0,0,0,254,0,255,128,15,0,28,0,15,128, + 8,0,15,128,8,0,11,192,8,0,11,192,8,0,9,224, + 8,0,8,240,8,0,8,240,8,0,8,120,8,0,8,60, + 8,0,8,60,8,0,8,30,8,0,8,30,8,0,8,15, + 8,0,8,7,136,0,8,7,136,0,8,3,200,0,8,1, + 232,0,8,1,232,0,8,0,248,0,8,0,120,0,8,0, + 120,0,8,0,56,0,28,0,24,0,255,128,24,0,21,34, + 102,26,3,0,3,0,0,7,0,0,3,128,0,1,192,0, + 0,64,0,0,32,0,0,0,0,0,32,0,3,220,0,6, + 3,0,12,1,128,28,1,192,56,0,224,56,0,224,120,0, + 240,112,0,112,112,0,112,240,0,120,240,0,120,240,0,120, + 240,0,120,240,0,120,240,0,120,240,0,120,240,0,120,112, + 0,112,112,0,112,120,0,240,56,0,224,56,0,224,28,1, + 192,12,1,128,6,3,0,3,254,0,21,34,102,26,3,0, + 0,6,0,0,7,0,0,14,0,0,28,0,0,16,0,0, + 32,0,0,0,0,0,32,0,3,220,0,6,3,0,12,1, + 128,28,1,192,56,0,224,56,0,224,120,0,240,112,0,112, + 112,0,112,240,0,120,240,0,120,240,0,120,240,0,120,240, + 0,120,240,0,120,240,0,120,240,0,120,112,0,112,112,0, + 112,120,0,240,56,0,224,56,0,224,28,1,192,12,1,128, + 6,3,0,3,254,0,21,34,102,26,3,0,0,32,0,0, + 112,0,0,112,0,0,216,0,1,4,0,6,3,0,0,0, + 0,0,32,0,3,220,0,6,3,0,12,1,128,28,1,192, + 56,0,224,56,0,224,120,0,240,112,0,112,112,0,112,240, + 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, + 120,240,0,120,240,0,120,112,0,112,112,0,112,120,0,240, + 56,0,224,56,0,224,28,1,192,12,1,128,6,3,0,3, + 254,0,21,33,99,26,3,0,3,225,0,3,255,0,4,62, + 0,0,0,0,0,0,0,0,0,0,0,32,0,3,220,0, + 6,3,0,12,1,128,28,1,192,56,0,224,56,0,224,120, + 0,240,112,0,112,112,0,112,240,0,120,240,0,120,240,0, + 120,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, + 112,0,112,112,0,112,120,0,240,56,0,224,56,0,224,28, + 1,192,12,1,128,6,3,0,3,254,0,21,33,99,26,3, + 0,3,6,0,7,7,0,7,7,0,3,6,0,0,0,0, + 0,0,0,0,32,0,3,220,0,6,3,0,12,1,128,28, + 1,192,56,0,224,56,0,224,120,0,240,112,0,112,112,0, + 112,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, + 240,0,120,240,0,120,240,0,120,112,0,112,112,0,112,120, + 0,240,56,0,224,56,0,224,28,1,192,12,1,128,6,3, + 0,3,254,0,22,23,69,34,6,254,128,0,4,192,0,12, + 96,0,24,48,0,48,24,0,96,12,0,192,6,1,128,3, + 3,0,1,134,0,0,204,0,0,120,0,0,48,0,0,120, + 0,0,204,0,1,134,0,3,3,0,6,1,128,12,0,192, + 24,0,96,48,0,48,96,0,24,192,0,12,128,0,0,21, + 27,81,26,3,0,0,32,0,3,222,24,6,3,48,12,1, + 224,28,1,192,56,0,224,56,1,224,120,3,240,112,2,112, + 112,6,112,240,12,120,240,24,120,240,16,120,240,48,120,240, + 96,120,240,192,120,240,192,120,241,128,120,115,0,112,114,0, + 112,126,0,240,60,0,224,56,0,224,28,1,192,60,1,128, + 102,3,0,195,222,0,25,34,136,29,2,0,0,192,0,0, + 0,224,0,0,0,224,0,0,0,48,0,0,0,16,0,0, + 0,8,0,0,0,0,0,0,0,0,0,0,255,192,255,128, + 14,0,14,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 6,0,8,0,7,0,8,0,3,0,16,0,1,192,32,0, + 0,127,192,0,25,34,136,29,2,0,0,0,192,0,0,1, + 192,0,0,3,128,0,0,7,0,0,0,4,0,0,0,8, + 0,0,0,0,0,0,0,0,0,0,255,192,255,128,14,0, + 14,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,6,0, + 8,0,7,0,8,0,3,0,16,0,1,192,32,0,0,127, + 192,0,25,34,136,29,2,0,0,8,0,0,0,28,0,0, + 0,30,0,0,0,55,0,0,0,65,128,0,1,128,96,0, + 0,0,0,0,0,0,0,0,255,192,255,128,14,0,14,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, + 14,0,4,0,14,0,4,0,14,0,4,0,6,0,8,0, + 7,0,8,0,3,128,16,0,1,192,96,0,0,127,192,0, + 25,33,132,29,2,0,0,192,192,0,0,225,192,0,0,225, + 192,0,0,192,192,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,192,255,128,14,0,14,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, + 4,0,14,0,4,0,6,0,8,0,7,0,8,0,3,0, + 16,0,1,192,32,0,0,127,192,0,24,34,102,27,2,0, + 0,0,192,0,1,192,0,3,128,0,7,0,0,4,0,0, + 8,0,0,0,0,0,0,0,255,225,255,31,0,56,15,0, + 48,7,128,48,7,128,32,3,192,96,3,192,64,1,224,128, + 0,224,128,0,241,0,0,113,0,0,122,0,0,58,0,0, + 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,1,255,224,21,26,78,25,2,0,255,224,0,14, + 0,0,14,0,0,14,0,0,14,0,0,15,255,0,14,1, + 192,14,0,224,14,0,240,14,0,120,14,0,120,14,0,120, + 14,0,120,14,0,120,14,0,240,14,0,224,14,1,192,15, + 255,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,255,224,0,16,26,52,19,1,0, + 1,240,3,28,6,14,14,14,28,14,28,14,28,12,28,28, + 28,48,29,192,28,48,28,24,28,12,28,14,28,6,28,7, + 28,7,28,7,28,7,28,7,28,135,29,199,29,199,29,142, + 29,140,252,120,16,25,50,19,2,1,112,0,112,0,56,0, + 28,0,12,0,2,0,0,0,0,0,15,128,48,224,32,112, + 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, + 224,112,224,113,224,241,225,113,113,126,62,60,16,25,50,19, + 2,1,0,112,0,240,0,224,1,128,3,0,2,0,0,0, + 0,0,15,128,48,224,96,112,96,112,120,112,120,112,0,112, + 1,240,30,112,112,112,96,112,224,112,224,113,224,241,225,113, + 113,126,62,60,16,25,50,19,2,0,6,0,7,0,7,0, + 13,128,24,192,48,96,0,0,0,0,15,128,48,224,96,112, + 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, + 224,112,224,113,224,241,225,113,113,126,62,60,16,24,48,19, + 2,0,30,48,63,224,35,192,0,0,0,0,0,0,0,0, + 15,128,48,224,96,112,96,112,120,112,120,112,0,112,1,240, + 30,112,112,112,96,112,224,112,224,113,224,241,225,113,113,126, + 62,60,16,24,48,19,2,0,48,96,112,224,112,224,48,96, + 0,0,0,0,0,0,15,0,48,192,96,96,96,96,112,96, + 112,96,0,96,1,224,30,96,112,96,96,96,224,96,224,97, + 224,225,225,99,113,126,62,60,16,25,50,19,2,0,7,0, + 24,192,16,64,16,64,24,192,7,0,0,0,0,0,15,128, + 48,224,96,112,96,112,120,112,120,112,0,112,1,240,30,112, + 112,112,96,112,224,112,224,113,224,241,225,113,113,126,62,60, + 22,17,51,26,2,0,15,135,192,48,236,112,96,120,48,112, + 120,56,120,112,24,56,112,28,0,112,28,7,255,252,56,112, + 0,112,112,0,224,112,0,224,112,4,224,248,8,224,184,8, + 225,56,16,113,28,48,62,7,192,12,24,48,16,2,249,15, + 128,24,96,48,48,112,48,96,112,224,112,224,112,224,0,224, + 0,224,0,224,0,224,0,96,16,112,16,48,32,24,96,15, + 128,2,0,6,0,1,128,0,192,0,192,16,192,15,128,13, + 25,50,17,2,1,48,0,56,0,28,0,12,0,6,0,3, + 0,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, + 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, + 16,48,16,24,96,7,128,13,25,50,17,2,1,0,112,0, + 112,0,224,0,192,1,128,3,0,0,0,0,0,15,128,24, + 224,48,96,112,112,96,48,224,56,224,56,255,248,224,0,224, + 0,224,0,224,8,112,16,112,16,48,16,24,96,7,128,13, + 25,50,17,2,0,3,0,3,0,7,128,5,128,8,64,16, + 32,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, + 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, + 16,48,32,24,96,7,128,13,24,48,17,2,0,24,96,56, + 112,56,112,24,96,0,0,0,0,0,0,15,128,24,224,48, + 96,112,48,96,48,224,56,224,56,255,248,224,0,224,0,224, + 0,224,8,112,16,112,16,48,32,24,96,7,128,9,25,50, + 11,0,0,192,0,224,0,112,0,56,0,8,0,4,0,0, + 0,0,0,62,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,63,128,8,25,25,10,2,0,3,7,7,12,24, + 48,0,0,248,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,254,9,25,50,11,1,0,24,0,28,0,60,0, + 54,0,99,0,128,128,0,0,0,0,124,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,127,0,9,24,48,11, + 1,0,97,128,227,128,227,128,97,128,0,0,0,0,0,0, + 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 127,128,14,26,52,18,2,0,28,16,14,48,15,192,7,128, + 7,128,13,192,48,224,0,224,0,112,7,240,24,120,48,56, + 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,112,24,112,56,48,48,24,96,7,128,17,24,72,21, + 2,0,7,4,0,15,204,0,9,248,0,8,112,0,0,0, + 0,0,0,0,0,0,0,248,248,0,57,28,0,58,14,0, + 60,14,0,60,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,254,63,128,14,25,50,18,2,1, + 56,0,56,0,28,0,12,0,6,0,3,0,0,0,0,0, + 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, + 7,128,14,25,50,18,2,1,0,48,0,112,0,224,0,192, + 1,128,1,0,0,0,0,0,7,128,24,96,48,48,112,56, + 112,24,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 112,24,112,56,48,48,24,96,7,128,14,25,50,18,2,0, + 3,0,3,0,7,128,4,128,8,64,16,32,0,0,0,0, + 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, + 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, + 7,128,14,24,48,18,2,0,30,16,31,240,33,224,0,0, + 0,0,0,0,0,0,7,128,24,96,48,48,112,56,112,24, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,24, + 112,56,48,48,24,96,7,128,14,24,48,18,2,0,24,48, + 56,112,56,112,24,48,0,0,0,0,0,0,7,128,24,96, + 48,48,112,56,112,24,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,112,24,112,56,48,48,24,96,7,128,30,23, + 92,34,2,254,0,3,0,0,0,7,128,0,0,7,128,0, + 0,7,128,0,0,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,252,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,7,128,0,0,7,128,0,0,7,128,0,0,3,0,0, + 14,17,34,18,2,0,7,132,24,104,48,56,112,56,112,56, + 224,92,224,156,225,156,227,28,226,28,228,28,232,28,120,24, + 112,56,48,48,88,96,135,192,17,25,75,20,1,1,28,0, + 0,28,0,0,14,0,0,3,0,0,1,0,0,0,128,0, + 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, + 56,46,0,28,78,0,15,143,128,17,25,75,20,1,1,0, + 28,0,0,60,0,0,48,0,0,96,0,0,192,0,0,128, + 0,0,0,0,0,0,0,248,62,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,30,0,56,30, + 0,56,46,0,28,78,0,15,143,128,17,25,75,20,1,0, + 0,128,0,1,192,0,1,192,0,3,96,0,4,48,0,8, + 8,0,0,0,0,0,0,0,248,62,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,30,0,56, + 30,0,56,46,0,28,78,0,15,143,128,17,24,72,20,1, + 0,12,48,0,28,56,0,28,56,0,12,48,0,0,0,0, + 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, + 56,46,0,28,78,0,15,143,128,18,33,99,19,1,249,0, + 12,0,0,28,0,0,24,0,0,48,0,0,96,0,0,64, + 0,0,0,0,0,0,0,255,31,192,28,6,0,28,4,0, + 12,4,0,14,4,0,14,4,0,6,8,0,7,8,0,7, + 8,0,3,16,0,3,144,0,3,144,0,1,224,0,1,224, + 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, + 0,128,0,112,128,0,113,128,0,113,0,0,114,0,0,60, + 0,0,16,34,68,19,1,247,12,0,60,0,92,0,28,0, + 28,0,28,0,28,0,28,0,28,60,28,126,28,143,29,7, + 30,7,30,7,30,7,28,6,28,14,28,14,28,12,28,24, + 28,16,28,32,28,64,29,128,31,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,224,0,17,32,96,19, + 1,248,6,12,0,7,28,0,7,28,0,6,12,0,0,0, + 0,0,0,0,0,0,0,255,31,128,28,6,0,28,4,0, + 14,4,0,14,4,0,14,8,0,7,8,0,7,8,0,7, + 16,0,3,144,0,3,144,0,3,160,0,1,224,0,1,224, + 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, + 0,128,0,112,128,0,121,0,0,121,0,0,114,0,0,60, + 0,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 25 + Calculated Max Values w=30 h=34 x= 4 y=10 dx=34 dy= 0 ascent=27 len=124 + Font Bounding box w=94 h=46 x=-29 y=-11 + Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 + Pure Font ascent =25 descent= 0 + X Font ascent =25 descent= 0 + Max Font ascent =27 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr26n[932] U8G_SECTION(".progmem.u8g_font_osr26n") = { + 0,94,46,227,245,25,0,0,0,0,42,57,0,27,249,25, + 0,13,15,30,18,3,10,7,0,7,0,7,0,195,24,226, + 56,114,112,10,128,7,0,15,128,122,240,242,120,226,56,7, + 0,7,0,7,0,30,31,124,34,2,250,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,255,255,255,252,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,5,11,11,10,2,250,112,248,248, + 120,8,8,8,16,16,32,64,9,2,4,13,2,8,255,128, + 255,128,4,5,5,10,3,0,96,240,240,240,96,12,34,68, + 16,2,249,0,16,0,48,0,48,0,32,0,96,0,96,0, + 64,0,192,0,192,0,128,0,128,1,128,1,0,1,0,3, + 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, + 0,24,0,24,0,16,0,48,0,48,0,32,0,96,0,96, + 0,64,0,192,0,192,0,17,25,75,21,2,0,3,224,0, + 14,56,0,28,28,0,24,12,0,56,14,0,112,7,0,112, + 7,0,112,7,0,240,7,128,240,7,128,240,7,128,240,7, + 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, + 112,7,0,112,7,0,112,7,0,56,14,0,56,14,0,24, + 12,0,12,24,0,7,112,0,12,25,50,21,4,0,1,0, + 3,0,3,0,15,0,255,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,240, + 15,25,50,21,3,0,15,192,48,112,96,56,64,60,192,30, + 192,30,224,30,248,30,248,30,120,28,0,60,0,56,0,112, + 0,224,1,192,3,0,14,0,28,4,56,4,48,4,96,4, + 96,12,255,252,255,252,255,252,15,25,50,21,3,0,15,192, + 48,112,32,56,96,28,112,28,120,28,120,28,48,28,0,28, + 0,56,0,112,31,192,24,112,0,56,0,60,0,30,0,30, + 112,30,248,30,248,30,248,30,192,60,192,56,96,112,63,224, + 17,25,75,21,2,0,0,16,0,0,48,0,0,112,0,0, + 112,0,0,240,0,1,240,0,1,112,0,3,112,0,6,112, + 0,6,112,0,12,112,0,8,112,0,24,112,0,48,112,0, + 32,112,0,96,112,0,192,112,0,255,255,128,0,112,0,0, + 112,0,0,112,0,0,112,0,0,112,0,0,112,0,7,255, + 128,15,26,52,21,3,0,32,0,48,56,63,240,63,192,47, + 0,32,0,32,0,32,0,32,0,39,192,56,112,48,56,32, + 60,32,28,0,30,0,30,0,30,0,30,120,30,248,30,248, + 28,240,60,224,60,96,56,112,112,63,192,15,25,50,21,3, + 0,3,224,6,24,12,12,24,28,56,60,48,60,112,16,112, + 0,112,0,243,224,246,56,252,28,248,28,248,14,240,14,240, + 14,240,14,240,14,112,14,112,14,112,12,56,28,56,24,24, + 56,14,224,14,25,50,21,3,0,255,252,255,252,255,252,192, + 12,128,8,128,8,128,8,128,16,0,16,0,32,0,96,0, + 64,0,128,1,128,1,128,3,0,3,0,7,0,7,0,15, + 128,15,128,15,128,15,128,15,128,7,128,17,25,75,21,2, + 0,7,240,0,28,28,0,48,14,0,112,6,0,224,3,0, + 224,3,0,224,3,0,240,3,0,240,6,0,124,6,0,127, + 140,0,31,240,0,7,252,0,25,254,0,48,63,0,96,15, + 128,224,7,128,224,3,128,224,3,128,224,3,128,224,3,0, + 96,7,0,112,6,0,56,12,0,15,248,0,15,25,50,21, + 3,0,7,192,24,96,48,48,112,56,112,28,224,28,224,28, + 224,30,224,30,224,30,224,30,112,62,112,62,56,94,15,158, + 0,30,0,28,0,28,56,28,120,28,120,56,112,56,96,112, + 48,224,31,192}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 26, '1' Height: 25 + Calculated Max Values w=36 h=34 x= 4 y=20 dx=38 dy= 0 ascent=28 len=130 + Font Bounding box w=94 h=46 x=-29 y=-11 + Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 + Pure Font ascent =26 descent=-8 + X Font ascent =27 descent=-8 + Max Font ascent =28 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr26r[6049] U8G_SECTION(".progmem.u8g_font_osr26r") = { + 0,94,46,227,245,26,7,96,17,82,32,127,248,28,248,27, + 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, + 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, + 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, + 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, + 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, + 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, + 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, + 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, + 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, + 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, + 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, + 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, + 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, + 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, + 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, + 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, + 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, + 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, + 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, + 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, + 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, + 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, + 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, + 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, + 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, + 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, + 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, + 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, + 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, + 0,195,24,226,56,114,112,10,128,7,0,15,128,122,240,242, + 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, + 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, + 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, + 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, + 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, + 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, + 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, + 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, + 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, + 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, + 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, + 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, + 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, + 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, + 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, + 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, + 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, + 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, + 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, + 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, + 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, + 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, + 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, + 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, + 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, + 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, + 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, + 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, + 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, + 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, + 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, + 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, + 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, + 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, + 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, + 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, + 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, + 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, + 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, + 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, + 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, + 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, + 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, + 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, + 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, + 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, + 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, + 0,112,240,248,120,8,8,8,16,16,32,64,28,29,116,34, + 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, + 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, + 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, + 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, + 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, + 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, + 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, + 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, + 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, + 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, + 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, + 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, + 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, + 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, + 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, + 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, + 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, + 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, + 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, + 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, + 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, + 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, + 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, + 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, + 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, + 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, + 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, + 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, + 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, + 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, + 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, + 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, + 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, + 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, + 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, + 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, + 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, + 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, + 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, + 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, + 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, + 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, + 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, + 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, + 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, + 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, + 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, + 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, + 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, + 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, + 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, + 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, + 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, + 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, + 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, + 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, + 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, + 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, + 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, + 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, + 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, + 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, + 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, + 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, + 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, + 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, + 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, + 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, + 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, + 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, + 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, + 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, + 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, + 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, + 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, + 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, + 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, + 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, + 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, + 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, + 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, + 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, + 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, + 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, + 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, + 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, + 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, + 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, + 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, + 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, + 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, + 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, + 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, + 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, + 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, + 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, + 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, + 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, + 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, + 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, + 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, + 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, + 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, + 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, + 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, + 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, + 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, + 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, + 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, + 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, + 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, + 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, + 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, + 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, + 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, + 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, + 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, + 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, + 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, + 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, + 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, + 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, + 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, + 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, + 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, + 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, + 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, + 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, + 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, + 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, + 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, + 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, + 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, + 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, + 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, + 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, + 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, + 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, + 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, + 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, + 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, + 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, + 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, + 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, + 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, + 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, + 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, + 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, + 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, + 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, + 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, + 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, + 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, + 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, + 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, + 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, + 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, + 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, + 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, + 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, + 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, + 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, + 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, + 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, + 28,7,28,7,28,7,28,7,28,7,28,7,30,6,30,14, + 19,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, + 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, + 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, + 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, + 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, + 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, + 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, + 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, + 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, + 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, + 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, + 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, + 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, + 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, + 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, + 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, + 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, + 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, + 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, + 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, + 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, + 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, + 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, + 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, + 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, + 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, + 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, + 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, + 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, + 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, + 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, + 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, + 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, + 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, + 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, + 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, + 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, + 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, + 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, + 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, + 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, + 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, + 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, + 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, + 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, + 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, + 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, + 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, + 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, + 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, + 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, + 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, + 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, + 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, + 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, + 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, + 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, + 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, + 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, + 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, + 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, + 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, + 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, + 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, + 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, + 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, + 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, + 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, + 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, + 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, + 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, + 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, + 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, + 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, + 255}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 29, '1' Height: 28 + Calculated Max Values w=41 h=39 x= 8 y=23 dx=44 dy= 0 ascent=39 len=174 + Font Bounding box w=107 h=51 x=-33 y=-12 + Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 + Pure Font ascent =29 descent=-9 + X Font ascent =30 descent=-9 + Max Font ascent =39 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr29[16232] U8G_SECTION(".progmem.u8g_font_osr29") = { + 0,107,51,223,244,29,9,148,21,166,32,255,247,39,245,30, + 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, + 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, + 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, + 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, + 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, + 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, + 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, + 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, + 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, + 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, + 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, + 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, + 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, + 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, + 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, + 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, + 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, + 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, + 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, + 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, + 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, + 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, + 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, + 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, + 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, + 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, + 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, + 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, + 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, + 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, + 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, + 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, + 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, + 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, + 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, + 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, + 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, + 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, + 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, + 30,249,62,29,112,3,128,3,128,29,112,249,62,241,30,227, + 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, + 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, + 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, + 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, + 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, + 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, + 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, + 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, + 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, + 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, + 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, + 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, + 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, + 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, + 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, + 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, + 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, + 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, + 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, + 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, + 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, + 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, + 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, + 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, + 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, + 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, + 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, + 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, + 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, + 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, + 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, + 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, + 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, + 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, + 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, + 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, + 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, + 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, + 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, + 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, + 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, + 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, + 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, + 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, + 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, + 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, + 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, + 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, + 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, + 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, + 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, + 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, + 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, + 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, + 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, + 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, + 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, + 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, + 0,0,0,112,248,248,248,112,5,26,26,11,3,249,112,248, + 248,248,112,0,0,0,0,0,0,0,0,0,112,240,248,120, + 8,8,8,16,16,32,96,64,32,34,136,39,3,250,0,0, + 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, + 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, + 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, + 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, + 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, + 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, + 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, + 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, + 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, + 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, + 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, + 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, + 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, + 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, + 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, + 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, + 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, + 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, + 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, + 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, + 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, + 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, + 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, + 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, + 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, + 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, + 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, + 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, + 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, + 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, + 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, + 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, + 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, + 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, + 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, + 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, + 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, + 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, + 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, + 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, + 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, + 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, + 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, + 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, + 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, + 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, + 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, + 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, + 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, + 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, + 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, + 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, + 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, + 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, + 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, + 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, + 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, + 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, + 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, + 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, + 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, + 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, + 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, + 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, + 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, + 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, + 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, + 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, + 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, + 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, + 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, + 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, + 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, + 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, + 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, + 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, + 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, + 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, + 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, + 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, + 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, + 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, + 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, + 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, + 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, + 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, + 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, + 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, + 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, + 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, + 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, + 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, + 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, + 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, + 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, + 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, + 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, + 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, + 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, + 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, + 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, + 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, + 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, + 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, + 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, + 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, + 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, + 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, + 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, + 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, + 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, + 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, + 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, + 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, + 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, + 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, + 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, + 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, + 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, + 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, + 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, + 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, + 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, + 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, + 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, + 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, + 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, + 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, + 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, + 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, + 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, + 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, + 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, + 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, + 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, + 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, + 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, + 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, + 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, + 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, + 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, + 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, + 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, + 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, + 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, + 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, + 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, + 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, + 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, + 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, + 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, + 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, + 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, + 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, + 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, + 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, + 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, + 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, + 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, + 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, + 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, + 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, + 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, + 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, + 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, + 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, + 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, + 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, + 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, + 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, + 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, + 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, + 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, + 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, + 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, + 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, + 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, + 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, + 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, + 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, + 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, + 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, + 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, + 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, + 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, + 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, + 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, + 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, + 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, + 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, + 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, + 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, + 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, + 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, + 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, + 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, + 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, + 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, + 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, + 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, + 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, + 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, + 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, + 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, + 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, + 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, + 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, + 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, + 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, + 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, + 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, + 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, + 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, + 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, + 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, + 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, + 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, + 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, + 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, + 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, + 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, + 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, + 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, + 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, + 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, + 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, + 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, + 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, + 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, + 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, + 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, + 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, + 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, + 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, + 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, + 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, + 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, + 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, + 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, + 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, + 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, + 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, + 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, + 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, + 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, + 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, + 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, + 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, + 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, + 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, + 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, + 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, + 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, + 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, + 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, + 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, + 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, + 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, + 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, + 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, + 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, + 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, + 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, + 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, + 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, + 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, + 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, + 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, + 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, + 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, + 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, + 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, + 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, + 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, + 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, + 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, + 252,96,1,248,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,11,0,0,5,28,28,11,3, + 247,112,248,248,248,112,0,32,32,32,32,32,32,112,112,112, + 112,112,112,112,112,248,248,248,248,248,248,248,112,14,28,56, + 24,5,252,0,128,0,128,0,128,0,128,0,128,7,224,12, + 152,24,136,56,140,112,156,112,188,240,188,240,152,240,128,240, + 128,240,128,240,128,240,132,112,132,112,132,56,132,24,136,14, + 144,3,224,0,128,0,128,0,128,0,128,23,28,84,30,3, + 0,0,3,240,0,6,24,0,28,12,0,24,14,0,48,62, + 0,112,62,0,112,62,0,112,24,0,112,0,0,240,0,0, + 240,0,0,240,0,31,240,0,32,255,128,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,224,0, + 0,224,0,62,224,2,67,192,2,128,224,4,129,127,60,194, + 63,248,60,15,240,20,20,60,24,2,4,64,0,32,225,248, + 112,119,254,224,62,7,192,24,1,128,48,0,192,48,0,192, + 96,0,96,96,0,96,96,0,96,96,0,96,96,0,96,96, + 0,96,48,0,192,48,0,192,24,1,128,62,7,192,119,254, + 224,225,248,112,64,0,32,22,28,84,24,1,0,255,131,252, + 62,0,112,30,0,96,14,0,64,15,0,64,15,0,128,7, + 128,128,7,129,0,3,193,0,3,194,0,1,226,0,1,228, + 0,0,252,0,0,248,0,0,120,0,31,255,192,0,120,0, + 0,120,0,31,255,192,0,120,0,0,120,0,0,120,0,0, + 120,0,0,120,0,0,120,0,0,120,0,0,120,0,7,255, + 128,2,37,37,12,5,249,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,0,0,0,0,0,0,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,15,36,72,26, + 4,248,7,192,12,32,24,48,48,120,48,120,48,112,56,0, + 56,0,28,0,30,0,15,0,31,192,35,224,97,240,64,248, + 192,60,192,30,192,14,224,6,240,6,120,6,60,4,31,12, + 15,152,7,224,3,224,0,224,0,112,0,112,0,56,56,56, + 60,56,56,48,48,48,24,96,7,128,12,4,8,18,3,22, + 96,96,240,240,240,240,96,96,30,29,116,34,2,1,0,127, + 248,0,1,192,14,0,3,0,3,0,4,0,0,128,8,0, + 0,64,16,7,196,32,32,24,108,16,32,48,60,16,64,112, + 28,8,64,224,12,8,192,224,12,8,129,224,4,4,129,224, + 0,4,129,224,0,4,129,224,0,4,129,224,0,4,129,224, + 0,4,129,224,4,4,192,224,4,8,64,224,8,8,64,112, + 8,8,32,112,24,16,48,24,48,48,16,15,192,32,8,0, + 0,64,4,0,0,128,3,0,3,0,1,192,14,0,0,127, + 248,0,11,14,28,16,3,14,60,0,102,0,67,0,99,0, + 99,0,7,0,27,0,99,0,195,0,195,32,231,32,121,192, + 0,0,127,192,10,16,32,19,4,1,24,64,48,192,32,128, + 97,128,97,0,195,0,195,0,195,0,195,0,195,0,195,0, + 97,128,97,128,48,128,16,64,8,0,20,8,24,24,2,7, + 255,255,240,255,255,240,0,0,48,0,0,48,0,0,48,0, + 0,48,0,0,48,0,0,48,10,2,4,14,2,9,255,192, + 255,192,30,29,116,34,2,1,0,127,248,0,1,192,14,0, + 3,0,3,0,4,0,0,128,8,0,0,64,19,255,192,32, + 32,112,240,48,32,112,120,16,64,112,120,8,64,112,120,8, + 192,112,120,8,128,112,112,4,128,112,224,4,128,127,128,4, + 128,112,224,4,128,112,112,4,128,112,112,4,128,112,120,4, + 128,112,120,8,64,112,120,136,64,112,120,136,32,112,56,144, + 32,112,57,16,19,252,30,32,8,0,0,64,4,0,0,128, + 3,0,3,0,1,192,14,0,0,127,248,0,11,2,4,19, + 4,23,255,224,255,224,11,10,20,23,6,18,31,0,96,128, + 64,64,128,32,128,32,128,32,128,32,64,64,96,128,31,0, + 35,28,140,39,2,254,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, + 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,255,192,255,255,255, + 255,192,11,17,34,18,4,11,31,0,99,192,129,192,128,224, + 192,224,224,224,112,224,1,192,1,128,3,0,12,0,24,0, + 32,32,64,32,64,96,255,224,255,224,11,17,34,18,5,11, + 31,0,97,192,192,192,224,224,240,224,0,224,0,192,97,128, + 126,0,1,128,0,192,0,224,224,224,240,224,224,192,129,192, + 127,0,7,7,7,18,8,21,6,14,28,56,48,96,128,21, + 30,90,25,3,245,96,6,0,224,15,0,240,15,0,240,15, + 0,240,15,0,224,15,0,224,15,0,224,15,0,224,15,0, + 224,15,0,224,6,0,64,6,0,64,6,0,64,6,0,96, + 12,8,96,14,24,88,59,248,79,241,248,67,224,240,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,224,0,0, + 224,0,0,240,0,0,240,0,0,112,0,0,112,0,0,17, + 35,105,23,3,250,15,255,128,63,140,0,127,140,0,127,140, + 0,255,140,0,255,140,0,255,140,0,255,140,0,255,140,0, + 127,140,0,127,140,0,63,140,0,7,140,0,1,140,0,1, + 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, + 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, + 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, + 140,0,1,140,0,1,140,0,1,140,0,1,140,0,5,5, + 5,11,3,10,112,248,248,248,112,8,8,8,18,5,248,48, + 32,60,6,7,7,15,252,9,17,34,19,5,11,4,0,12, + 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,10, + 14,28,16,3,14,30,0,51,0,97,128,192,192,192,192,192, + 192,192,192,192,192,193,192,97,128,35,0,30,0,0,0,255, + 192,10,16,32,20,5,1,134,0,195,0,65,0,97,128,32, + 192,48,192,48,192,48,192,48,192,48,192,48,192,97,128,97, + 128,67,0,130,0,4,0,27,28,112,35,5,0,4,0,12, + 0,12,0,8,0,28,0,24,0,252,0,16,0,28,0,32, + 0,28,0,96,0,28,0,64,0,28,0,192,0,28,0,128, + 0,28,1,128,0,28,3,0,0,28,2,0,0,28,6,7, + 0,28,4,15,0,28,12,15,0,28,24,23,0,255,144,23, + 0,0,48,39,0,0,32,71,0,0,96,71,0,0,192,135, + 0,0,129,7,0,1,129,255,224,1,0,7,0,3,0,7, + 0,6,0,7,0,6,0,7,0,12,0,63,224,27,28,112, + 35,5,0,4,0,4,0,12,0,12,0,28,0,8,0,252, + 0,16,0,28,0,48,0,28,0,32,0,28,0,96,0,28, + 0,64,0,28,0,128,0,28,1,128,0,28,1,0,0,28, + 3,31,0,28,6,99,192,28,4,129,192,28,12,128,224,28, + 8,192,224,255,152,224,224,0,48,240,224,0,32,1,192,0, + 96,1,128,0,64,3,0,0,192,12,0,1,128,24,0,1, + 0,32,32,3,0,64,32,2,0,64,96,6,0,255,224,12, + 0,255,224,28,28,112,36,5,0,31,0,6,0,97,192,4, + 0,192,224,8,0,224,224,24,0,240,224,16,0,0,192,48, + 0,1,128,96,0,126,0,64,0,97,128,192,0,0,192,128, + 0,0,225,128,0,96,227,3,128,240,226,3,128,224,230,7, + 128,129,196,7,128,67,136,11,128,62,24,19,128,0,16,19, + 128,0,48,35,128,0,96,99,128,0,64,67,128,0,192,131, + 128,0,128,255,240,1,128,3,128,3,0,3,128,2,0,3, + 128,6,0,3,128,4,0,31,240,15,28,56,19,1,247,3, + 128,7,192,7,192,7,192,3,128,0,0,3,128,4,64,8, + 32,8,32,8,96,0,96,0,192,1,128,7,0,14,0,28, + 0,56,0,120,0,240,60,240,62,240,62,240,6,240,6,112, + 6,120,12,28,24,7,224,29,38,152,32,2,0,0,224,0, + 0,0,240,0,0,0,112,0,0,0,56,0,0,0,12,0, + 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, + 0,0,15,128,0,0,15,128,0,0,15,128,0,0,31,192, + 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, + 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,240, + 0,0,192,120,0,0,128,120,0,1,128,120,0,1,255,252, + 0,1,0,60,0,3,0,28,0,3,0,30,0,6,0,30, + 0,6,0,15,0,6,0,15,0,14,0,15,0,30,0,15, + 128,255,224,255,248,29,38,152,32,2,0,0,0,48,0,0, + 0,112,0,0,0,240,0,0,0,224,0,0,1,128,0,0, + 3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0, + 15,128,0,0,15,128,0,0,15,128,0,0,31,192,0,0, + 19,192,0,0,51,192,0,0,49,224,0,0,33,224,0,0, + 97,224,0,0,96,240,0,0,64,240,0,0,192,240,0,0, + 192,120,0,0,128,120,0,1,128,120,0,1,255,252,0,3, + 0,60,0,3,0,30,0,3,0,30,0,6,0,30,0,6, + 0,15,0,6,0,15,0,14,0,15,0,31,0,31,192,255, + 224,255,248,29,38,152,32,2,0,0,6,0,0,0,7,0, + 0,0,15,128,0,0,29,128,0,0,56,192,0,0,96,48, + 0,0,128,8,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,6,0,0,0,7,0,0,0,7,0,0,0,15,128, + 0,0,15,128,0,0,15,128,0,0,31,192,0,0,19,192, + 0,0,51,192,0,0,49,224,0,0,33,224,0,0,97,224, + 0,0,96,240,0,0,64,240,0,0,192,240,0,0,192,120, + 0,0,128,120,0,1,128,120,0,1,255,252,0,1,0,60, + 0,3,0,28,0,3,0,30,0,6,0,30,0,6,0,15, + 0,6,0,15,0,14,0,15,0,30,0,15,128,255,224,255, + 248,29,37,148,32,2,0,0,60,8,0,0,127,24,0,0, + 207,240,0,0,129,240,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0, + 7,0,0,0,7,0,0,0,15,128,0,0,15,128,0,0, + 15,128,0,0,31,192,0,0,19,192,0,0,51,192,0,0, + 49,224,0,0,33,224,0,0,97,224,0,0,96,240,0,0, + 64,240,0,0,192,240,0,0,192,120,0,0,128,120,0,1, + 128,120,0,1,255,252,0,3,0,60,0,3,0,30,0,3, + 0,30,0,6,0,30,0,6,0,15,0,6,0,15,0,14, + 0,15,0,31,0,31,192,255,224,255,248,29,37,148,32,2, + 0,0,96,48,0,0,240,120,0,0,240,120,0,0,96,48, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, + 0,0,15,128,0,0,15,128,0,0,31,128,0,0,31,192, + 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, + 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,112, + 0,0,192,120,0,0,128,120,0,1,128,56,0,1,255,252, + 0,1,0,28,0,3,0,28,0,3,0,30,0,6,0,30, + 0,6,0,15,0,6,0,15,0,14,0,15,0,31,0,15, + 128,255,224,255,248,29,39,156,32,2,0,0,15,0,0,0, + 16,128,0,0,32,64,0,0,32,64,0,0,32,64,0,0, + 32,64,0,0,16,128,0,0,15,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0, + 7,0,0,0,15,128,0,0,15,128,0,0,31,128,0,0, + 31,192,0,0,19,192,0,0,51,192,0,0,51,224,0,0, + 33,224,0,0,97,224,0,0,97,240,0,0,64,240,0,0, + 192,240,0,0,192,248,0,0,128,120,0,1,128,120,0,1, + 255,252,0,1,0,60,0,3,0,60,0,2,0,62,0,6, + 0,30,0,6,0,31,0,6,0,31,0,14,0,15,0,30, + 0,15,128,255,224,255,248,37,29,145,41,1,0,0,3,255, + 255,248,0,0,124,0,248,0,0,124,0,56,0,0,124,0, + 56,0,0,252,0,24,0,1,188,0,24,0,1,188,0,8, + 0,3,60,0,8,0,3,60,4,8,0,6,60,4,0,0, + 6,60,4,0,0,12,60,4,0,0,12,60,12,0,0,24, + 60,28,0,0,24,63,252,0,0,48,60,28,0,0,48,60, + 12,0,0,96,60,4,0,0,96,60,4,8,0,255,252,4, + 8,0,128,60,4,8,1,128,60,0,8,1,0,60,0,24, + 3,0,60,0,24,2,0,60,0,24,6,0,60,0,56,14, + 0,60,0,120,31,0,60,1,248,255,225,255,255,248,22,38, + 114,28,3,248,1,255,12,7,1,140,14,0,252,28,0,124, + 24,0,60,56,0,60,56,0,28,112,0,28,112,0,12,112, + 0,12,240,0,8,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,240,0,0,112,0,4, + 112,0,4,120,0,12,56,0,8,56,0,8,28,0,16,12, + 0,16,14,0,32,3,0,192,1,247,128,0,56,0,0,32, + 0,0,56,0,0,14,0,0,7,0,0,7,0,0,7,0, + 1,14,0,0,252,0,23,38,114,29,3,0,1,128,0,1, + 192,0,1,224,0,0,224,0,0,48,0,0,24,0,0,12, + 0,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, + 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, + 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, + 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, + 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, + 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,38, + 114,29,3,0,0,0,192,0,1,224,0,3,192,0,3,128, + 0,6,0,0,12,0,0,8,0,0,0,0,0,0,0,255, + 255,254,15,0,62,15,0,14,15,0,14,15,0,6,15,0, + 6,15,0,2,15,0,2,15,1,2,15,1,0,15,1,0, + 15,1,0,15,3,0,15,7,0,15,255,0,15,7,0,15, + 3,0,15,1,0,15,1,2,15,1,2,15,1,2,15,0, + 2,15,0,6,15,0,6,15,0,6,15,0,14,15,0,30, + 15,0,126,255,255,254,23,38,114,29,3,0,0,8,0,0, + 28,0,0,62,0,0,55,0,0,99,128,1,128,192,2,0, + 32,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, + 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, + 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, + 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, + 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, + 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,37, + 111,29,3,0,1,128,192,3,193,224,3,193,224,1,128,192, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,15, + 0,62,15,0,14,15,0,14,15,0,6,15,0,6,15,0, + 2,15,0,2,15,1,2,15,1,0,15,1,0,15,3,0, + 15,3,0,15,7,0,15,255,0,15,7,0,15,3,0,15, + 3,0,15,1,2,15,1,2,15,1,2,15,0,2,15,0, + 6,15,0,6,15,0,6,15,0,14,15,0,30,15,0,126, + 255,255,254,12,38,76,17,3,0,192,0,224,0,112,0,56, + 0,24,0,12,0,2,0,0,0,0,0,255,240,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,255,240,12,38,76,17,3,0,0,48,0,112,0, + 224,1,192,3,128,2,0,4,0,0,0,0,0,255,240,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,255,240,12,38,76,17,3,0,6,0,14, + 0,15,0,27,128,48,192,96,96,128,16,0,0,0,0,255, + 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,255,240,12,37,74,15,2,0,96, + 96,240,240,240,240,96,96,0,0,0,0,0,0,0,0,255, + 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, + 0,15,0,15,0,15,0,255,240,27,29,116,32,3,0,255, + 255,192,0,15,0,112,0,15,0,28,0,15,0,14,0,15, + 0,7,0,15,0,7,128,15,0,3,128,15,0,3,192,15, + 0,3,192,15,0,1,192,15,0,1,224,15,0,1,224,15, + 0,1,224,255,240,1,224,15,0,1,224,15,0,1,224,15, + 0,1,224,15,0,1,224,15,0,1,224,15,0,3,192,15, + 0,3,192,15,0,3,192,15,0,3,128,15,0,7,0,15, + 0,7,0,15,0,14,0,15,0,28,0,15,0,112,0,255, + 255,192,0,28,37,148,32,3,0,0,60,8,0,0,127,152, + 0,0,71,240,0,0,65,240,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,63,240,15,128,7, + 128,15,128,3,0,15,192,3,0,15,224,3,0,13,224,3, + 0,13,240,3,0,12,248,3,0,12,120,3,0,12,124,3, + 0,12,60,3,0,12,30,3,0,12,31,3,0,12,15,3, + 0,12,7,131,0,12,7,131,0,12,3,195,0,12,3,227, + 0,12,1,227,0,12,0,243,0,12,0,251,0,12,0,123, + 0,12,0,63,0,12,0,63,0,12,0,31,0,12,0,31, + 0,12,0,15,0,30,0,7,0,255,192,7,0,24,38,114, + 29,3,1,3,128,0,3,192,0,1,192,0,0,224,0,0, + 112,0,0,48,0,0,8,0,0,0,0,0,0,0,0,255, + 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, + 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, + 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, + 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, + 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, + 0,192,0,255,0,24,38,114,29,3,1,0,1,192,0,3, + 192,0,3,128,0,7,0,0,14,0,0,12,0,0,16,0, + 0,0,0,0,0,0,0,255,0,3,0,192,6,0,96,12, + 0,48,28,0,56,56,0,28,56,0,28,120,0,30,112,0, + 14,112,0,14,240,0,15,240,0,15,240,0,15,240,0,15, + 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,112, + 0,14,112,0,14,120,0,30,56,0,28,56,0,28,28,0, + 56,12,0,48,6,0,96,3,0,192,0,255,0,24,38,114, + 29,3,0,0,24,0,0,24,0,0,60,0,0,126,0,0, + 195,0,1,129,128,6,0,96,0,0,0,0,0,0,0,255, + 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, + 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, + 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, + 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, + 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, + 0,192,0,255,0,24,37,111,29,3,0,1,240,32,3,252, + 64,2,63,192,2,7,128,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,3,0,192,6,0,96,12,0,48,28, + 0,56,56,0,28,56,0,28,120,0,30,112,0,14,112,0, + 14,240,0,15,240,0,15,240,0,15,240,0,15,240,0,15, + 240,0,15,240,0,15,240,0,15,240,0,15,112,0,14,112, + 0,14,120,0,30,56,0,28,56,0,28,28,0,56,12,0, + 48,6,0,96,3,0,192,0,255,0,24,37,111,29,3,0, + 1,129,128,3,195,192,3,195,192,1,129,128,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,3,0,192,6,0, + 96,12,0,48,28,0,56,56,0,28,56,0,28,120,0,30, + 112,0,14,112,0,14,240,0,15,240,0,15,240,0,15,240, + 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, + 15,112,0,14,112,0,14,120,0,30,56,0,28,56,0,28, + 28,0,56,12,0,48,6,0,96,3,0,192,0,255,0,25, + 25,100,39,7,254,192,0,1,128,224,0,3,0,112,0,6, + 0,56,0,12,0,28,0,24,0,14,0,48,0,7,0,96, + 0,3,128,192,0,1,193,128,0,0,227,0,0,0,118,0, + 0,0,60,0,0,0,28,0,0,0,62,0,0,0,103,0, + 0,0,195,128,0,1,129,192,0,3,0,224,0,6,0,112, + 0,12,0,56,0,24,0,28,0,48,0,14,0,96,0,7, + 0,192,0,3,128,128,0,1,0,24,29,87,29,3,1,0, + 255,131,3,0,230,6,0,124,12,0,60,28,0,56,56,0, + 60,56,0,124,120,0,254,112,0,206,112,1,142,240,3,15, + 240,6,15,240,14,15,240,12,15,240,24,15,240,48,15,240, + 96,15,240,224,15,240,192,15,113,128,14,115,0,14,126,0, + 30,62,0,28,60,0,28,28,0,56,60,0,48,62,0,96, + 103,0,192,193,255,0,29,38,152,34,3,1,0,112,0,0, + 0,112,0,0,0,56,0,0,0,28,0,0,0,14,0,0, + 0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 255,240,31,248,15,0,3,192,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,7,0,1,0, + 7,0,3,0,3,128,2,0,1,192,6,0,0,224,24,0, + 0,63,240,0,29,38,152,34,3,1,0,0,56,0,0,0, + 120,0,0,0,240,0,0,0,224,0,0,1,128,0,0,3, + 0,0,0,2,0,0,0,0,0,0,0,0,0,0,255,240, + 31,248,15,0,3,192,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,7,0,1,0,7,0, + 3,0,3,128,2,0,1,192,6,0,0,224,24,0,0,63, + 240,0,29,38,152,34,3,0,0,3,0,0,0,7,0,0, + 0,7,128,0,0,13,192,0,0,24,96,0,0,96,48,0, + 0,192,8,0,0,0,0,0,0,0,0,0,255,240,31,248, + 15,0,3,192,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, + 15,0,1,128,15,0,1,128,7,0,3,0,7,0,3,0, + 3,128,6,0,1,192,14,0,0,224,24,0,0,63,240,0, + 29,37,148,34,3,0,0,48,48,0,0,120,120,0,0,120, + 120,0,0,48,48,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,240,31,248,15,0,3,192,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,7,0,1,0,7,0,3,0,3,128,2,0,1,192, + 6,0,0,224,24,0,0,63,240,0,27,38,152,30,2,0, + 0,0,48,0,0,0,112,0,0,0,224,0,0,0,192,0, + 0,1,128,0,0,3,0,0,0,2,0,0,0,0,0,0, + 0,0,0,0,255,248,127,224,15,128,31,0,15,128,14,0, + 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, + 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, + 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,1,255,248,0,23,29,87,28,3,0,255,248, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,255,128, + 15,0,224,15,0,120,15,0,60,15,0,60,15,0,30,15, + 0,30,15,0,30,15,0,30,15,0,30,15,0,60,15,0, + 60,15,0,120,15,0,224,15,255,128,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,255,248,0,19,29,87,22,1,0,0,252,0,3,14, + 0,6,7,0,14,7,128,12,7,128,28,7,128,28,7,128, + 28,7,0,28,14,0,28,28,0,28,224,0,28,24,0,28, + 6,0,28,7,0,28,3,128,28,3,128,28,1,192,28,1, + 192,28,1,192,28,1,224,28,1,224,28,1,224,28,1,224, + 28,225,192,29,225,192,29,225,192,28,131,128,28,199,0,252, + 60,0,18,28,84,21,2,1,112,0,0,120,0,0,60,0, + 0,28,0,0,6,0,0,3,0,0,1,0,0,0,0,0, + 0,0,0,15,192,0,56,112,0,32,56,0,96,28,0,120, + 28,0,120,28,0,56,28,0,0,28,0,0,252,0,15,28, + 0,56,28,0,112,28,0,224,28,0,224,28,64,224,60,64, + 224,60,64,224,92,192,112,159,128,31,15,0,18,28,84,21, + 2,1,0,28,0,0,60,0,0,120,0,0,112,0,0,192, + 0,1,128,0,1,0,0,0,0,0,0,0,0,15,192,0, + 56,112,0,32,56,0,96,28,0,120,28,0,120,28,0,56, + 28,0,0,28,0,0,252,0,15,28,0,56,28,0,112,28, + 0,224,28,0,224,28,64,224,60,64,224,60,64,224,92,192, + 112,159,128,31,15,0,18,28,84,21,2,0,3,128,0,3, + 128,0,7,128,0,6,192,0,12,96,0,24,48,0,32,24, + 0,0,0,0,0,0,0,15,192,0,56,112,0,32,56,0, + 96,28,0,120,28,0,120,28,0,56,28,0,0,28,0,0, + 252,0,15,28,0,56,28,0,112,28,0,224,28,0,224,28, + 64,224,60,64,224,60,64,224,92,192,112,159,128,31,15,0, + 18,27,81,21,2,0,30,8,0,63,136,0,39,248,0,64, + 240,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192, + 0,56,112,0,32,56,0,96,28,0,120,28,0,120,28,0, + 56,28,0,0,28,0,0,252,0,15,28,0,56,28,0,112, + 28,0,224,28,0,224,28,64,224,60,64,224,60,64,224,92, + 192,112,159,128,31,15,0,18,27,81,21,2,0,56,48,0, + 120,120,0,120,120,0,56,48,0,0,0,0,0,0,0,0, + 0,0,0,0,0,15,192,0,24,112,0,32,56,0,96,28, + 0,112,28,0,120,28,0,56,28,0,0,28,0,0,252,0, + 15,28,0,56,28,0,112,28,0,224,28,0,224,28,64,224, + 60,64,224,60,64,224,92,192,112,159,128,31,15,0,18,28, + 84,21,2,0,7,128,0,8,64,0,16,32,0,16,32,0, + 16,32,0,8,64,0,7,128,0,0,0,0,0,0,0,15, + 192,0,56,112,0,32,56,0,96,28,0,112,28,0,120,28, + 0,56,28,0,0,28,0,0,252,0,15,28,0,56,28,0, + 112,28,0,224,28,0,224,28,64,224,60,64,224,92,64,224, + 156,192,112,159,128,31,15,0,25,19,76,29,2,0,15,193, + 240,0,56,115,28,0,32,30,14,0,96,30,7,0,120,28, + 7,0,120,28,7,0,56,28,7,128,0,28,7,128,3,255, + 255,128,28,28,0,0,112,28,0,0,112,28,0,0,224,28, + 1,128,224,28,1,0,224,62,1,0,224,46,1,0,224,70, + 2,0,112,131,4,0,31,0,248,0,15,27,54,18,2,248, + 7,224,28,16,56,8,48,12,112,28,112,60,240,60,240,24, + 240,0,240,0,240,0,240,0,240,6,112,4,112,4,48,12, + 56,8,28,48,7,224,1,0,2,0,1,192,0,96,0,112, + 0,112,8,240,7,192,15,28,56,19,2,1,56,0,60,0, + 28,0,14,0,7,0,3,0,0,128,0,0,0,0,7,192, + 12,112,56,56,48,28,112,28,112,28,240,30,240,30,255,254, + 240,0,240,0,240,0,240,2,112,4,112,4,56,4,56,8, + 28,16,7,224,15,28,56,19,2,1,0,28,0,60,0,56, + 0,112,0,224,0,192,1,0,0,0,0,0,7,192,12,112, + 56,56,48,28,112,28,112,28,240,30,240,30,255,254,240,0, + 240,0,240,0,240,2,112,4,112,4,56,4,56,8,28,16, + 7,224,15,28,56,19,2,0,1,128,3,128,3,192,7,192, + 6,96,8,48,16,8,0,0,0,0,7,192,12,112,56,56, + 48,28,112,28,112,28,240,30,240,30,255,254,240,0,240,0, + 240,0,240,6,112,4,112,4,56,4,56,8,28,16,7,224, + 15,27,54,19,2,0,24,24,60,60,60,60,24,24,0,0, + 0,0,0,0,0,0,7,192,12,112,56,56,48,28,112,28, + 112,28,240,14,240,14,255,254,240,0,240,0,240,0,240,2, + 112,4,112,4,56,4,56,8,28,16,7,224,10,28,56,11, + 0,0,192,0,224,0,224,0,112,0,24,0,12,0,4,0, + 0,0,0,0,126,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,127,192,10,28,56,11,1,0, + 0,192,1,192,3,128,7,0,6,0,12,0,16,0,0,0, + 0,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,255,128,11,28,56,11,0,0,12,0, + 12,0,30,0,31,0,51,0,96,128,128,96,0,0,0,0, + 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,127,192,11,26,52,13,1,0,96,192,241,224, + 241,224,96,192,0,0,0,0,0,0,62,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,192, + 17,29,87,21,2,0,30,4,0,15,12,0,7,176,0,3, + 224,0,1,224,0,6,224,0,12,240,0,16,120,0,0,56, + 0,0,28,0,3,254,0,12,62,0,24,30,0,56,15,0, + 112,15,0,112,7,0,240,7,0,240,7,128,240,7,128,240, + 7,128,240,7,0,240,7,0,240,7,0,112,7,0,112,14, + 0,56,14,0,24,28,0,12,56,0,3,224,0,20,26,78, + 22,1,0,3,225,0,7,254,0,4,126,0,0,0,0,0, + 0,0,0,0,0,0,0,0,252,60,0,28,199,0,29,3, + 0,31,3,128,30,3,128,30,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,159, + 240,17,28,84,21,2,1,56,0,0,60,0,0,30,0,0, + 14,0,0,3,0,0,1,128,0,0,128,0,0,0,0,0, + 0,0,3,224,0,12,56,0,24,28,0,56,14,0,112,14, + 0,112,7,0,240,7,0,240,7,0,240,7,128,240,7,128, + 240,7,128,240,7,0,240,7,0,112,7,0,112,14,0,56, + 14,0,24,28,0,12,56,0,3,224,0,17,28,84,21,2, + 1,0,28,0,0,28,0,0,56,0,0,112,0,0,96,0, + 0,192,0,1,128,0,0,0,0,0,0,0,3,224,0,12, + 56,0,24,28,0,56,14,0,112,14,0,112,7,0,240,7, + 0,240,7,0,240,7,128,240,7,128,240,7,128,240,7,0, + 240,7,0,112,7,0,112,14,0,56,14,0,24,28,0,12, + 56,0,3,224,0,17,28,84,21,2,0,1,128,0,1,192, + 0,3,192,0,3,96,0,6,32,0,12,16,0,16,12,0, + 0,0,0,0,0,0,3,224,0,12,56,0,24,28,0,56, + 14,0,112,14,0,112,7,0,240,7,0,240,7,0,240,7, + 128,240,7,128,240,7,128,240,7,0,240,7,0,112,7,0, + 112,14,0,56,14,0,24,28,0,12,56,0,3,224,0,17, + 27,81,21,2,0,15,4,0,31,204,0,19,248,0,16,240, + 0,0,0,0,0,0,0,0,0,0,0,0,0,3,224,0, + 12,56,0,24,28,0,56,14,0,112,14,0,112,7,0,240, + 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, + 0,240,7,0,112,7,0,112,14,0,56,14,0,24,28,0, + 12,56,0,3,224,0,17,27,81,21,2,0,24,24,0,60, + 60,0,60,60,0,24,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,3,224,0,12,56,0,24,28,0,56,14,0, + 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, + 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, + 0,56,14,0,24,28,0,12,56,0,3,224,0,35,26,130, + 39,2,254,0,0,224,0,0,0,1,240,0,0,0,1,240, + 0,0,0,1,240,0,0,0,0,224,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,224,255,255,255,255,224,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0, + 0,0,1,240,0,0,0,1,240,0,0,0,1,240,0,0, + 0,0,224,0,0,17,19,57,21,2,0,3,225,0,12,59, + 0,24,30,0,56,14,0,112,14,0,112,31,0,240,55,0, + 240,103,0,240,199,128,240,135,128,241,7,128,242,7,0,244, + 7,0,124,7,0,120,14,0,56,14,0,120,28,0,76,56, + 0,131,224,0,20,28,84,22,1,1,14,0,0,15,0,0, + 7,0,0,3,128,0,1,192,0,0,64,0,0,32,0,0, + 0,0,0,0,0,252,31,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,7,128,28, + 7,128,28,15,128,12,11,128,14,51,128,3,195,240,20,28, + 84,22,1,1,0,7,0,0,15,0,0,30,0,0,24,0, + 0,48,0,0,96,0,0,64,0,0,0,0,0,0,0,252, + 31,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,7,128,28,7,128,28,15,128,12, + 11,128,14,51,128,3,195,240,20,28,84,22,1,0,0,96, + 0,0,224,0,0,240,0,1,176,0,3,24,0,2,4,0, + 4,2,0,0,0,0,0,0,0,252,31,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,7,128,28,7,128,28,15,128,12,11,128,14,51,128,3, + 195,240,20,27,81,22,1,0,6,6,0,15,15,0,15,15, + 0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 252,15,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, + 128,28,3,128,28,3,128,28,7,128,28,7,128,28,15,128, + 12,11,128,14,51,128,3,195,240,20,37,111,22,1,248,0, + 3,0,0,7,0,0,15,0,0,28,0,0,24,0,0,48, + 0,0,0,0,0,0,0,0,0,0,255,143,240,30,1,128, + 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, + 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, + 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, + 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, + 192,0,120,128,0,113,128,0,51,0,0,30,0,0,18,38, + 114,21,1,246,12,0,0,60,0,0,252,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 30,0,28,127,0,28,199,128,29,3,128,31,3,192,30,3, + 192,30,3,128,28,3,128,28,3,128,28,7,0,28,7,0, + 28,6,0,28,12,0,28,28,0,28,24,0,28,48,0,28, + 192,0,29,128,0,30,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 56,0,0,192,0,0,19,36,108,21,1,247,3,6,0,7, + 143,0,7,143,0,3,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,143,224,30,3,128,30,1,0,14,3,0, + 14,2,0,7,2,0,7,2,0,7,6,0,3,132,0,3, + 132,0,3,140,0,1,200,0,1,200,0,1,200,0,0,240, + 0,0,240,0,0,240,0,0,96,0,0,96,0,0,96,0, + 0,64,0,0,64,0,48,64,0,120,64,0,120,128,0,121, + 128,0,59,0,0,30,0,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 28 + Calculated Max Values w=35 h=38 x= 5 y=11 dx=39 dy= 0 ascent=30 len=170 + Font Bounding box w=107 h=51 x=-33 y=-12 + Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 + Pure Font ascent =28 descent= 0 + X Font ascent =28 descent= 0 + Max Font ascent =30 descent=-8 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr29n[1201] U8G_SECTION(".progmem.u8g_font_osr29n") = { + 0,107,51,223,244,28,0,0,0,0,42,57,0,30,248,28, + 0,15,17,34,21,3,11,3,128,3,192,3,128,3,128,225, + 142,241,30,249,62,29,112,3,128,3,128,29,112,249,62,241, + 30,227,142,3,128,3,192,3,128,35,34,170,39,2,250,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, + 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,255, + 255,255,255,224,255,255,255,255,224,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, + 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,5,12,12,11,3,249,112, + 240,248,248,24,8,8,16,16,32,32,64,10,2,4,14,2, + 9,255,192,255,192,5,5,5,11,3,0,112,248,248,248,112, + 14,38,76,18,2,248,0,12,0,12,0,12,0,8,0,24, + 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,64, + 0,192,0,192,0,128,1,128,1,128,1,0,3,0,3,0, + 2,0,6,0,6,0,4,0,12,0,12,0,8,0,24,0, + 24,0,16,0,48,0,48,0,32,0,96,0,96,0,64,0, + 192,0,20,28,84,24,2,0,1,248,0,7,12,0,12,7, + 0,28,3,128,24,1,128,56,1,192,56,1,192,112,0,224, + 112,0,224,112,0,224,240,0,240,240,0,240,240,0,240,240, + 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, + 240,112,0,224,112,0,224,112,0,224,56,1,192,56,1,192, + 24,1,128,12,3,0,6,6,0,3,252,0,14,28,56,24, + 5,0,1,128,1,128,3,128,7,128,255,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,255,252,17,28,84,24,3,0, + 7,224,0,24,60,0,32,30,0,64,15,0,192,15,0,192, + 7,128,192,7,128,240,7,128,252,7,128,252,7,128,124,7, + 128,24,15,0,0,14,0,0,28,0,0,56,0,0,112,0, + 0,224,0,1,192,0,3,0,0,6,0,0,12,0,128,24, + 0,128,48,0,128,48,1,128,112,1,128,127,255,128,127,255, + 128,127,255,128,17,28,84,24,3,0,15,224,0,48,56,0, + 96,28,0,96,14,0,240,15,0,248,15,0,248,15,0,120, + 15,0,0,15,0,0,15,0,0,14,0,0,28,0,28,56, + 0,31,224,0,0,60,0,0,30,0,0,15,0,0,7,0, + 0,7,128,0,7,128,120,7,128,248,7,128,248,7,128,248, + 7,0,192,15,0,192,14,0,96,28,0,31,240,0,19,28, + 84,24,2,0,0,12,0,0,12,0,0,28,0,0,60,0, + 0,60,0,0,124,0,0,252,0,0,252,0,1,188,0,3, + 60,0,3,60,0,6,60,0,12,60,0,12,60,0,24,60, + 0,48,60,0,32,60,0,96,60,0,192,60,0,255,255,224, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,7,255,224,17,29,87,24,4,0,0,2, + 0,120,12,0,127,248,0,127,240,0,111,192,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, + 60,0,112,30,0,96,14,0,96,15,0,96,7,0,0,7, + 128,0,7,128,0,7,128,16,7,128,120,7,128,252,7,128, + 252,7,128,248,15,0,224,15,0,224,14,0,96,28,0,48, + 56,0,31,240,0,17,28,84,24,3,0,1,248,0,3,12, + 0,12,6,0,28,7,0,24,15,0,56,31,0,48,31,0, + 112,14,0,112,0,0,112,0,0,240,0,0,241,240,0,246, + 28,0,252,14,0,248,7,0,248,7,0,240,7,128,240,7, + 128,240,7,128,240,7,128,112,7,128,112,7,128,112,7,0, + 48,7,0,56,7,0,24,14,0,12,28,0,7,248,0,16, + 28,56,24,4,0,255,255,255,255,255,255,192,3,128,2,128, + 2,128,6,128,4,0,12,0,8,0,24,0,48,0,32,0, + 96,0,192,0,192,1,128,3,128,3,128,7,128,7,128,7, + 128,15,192,15,192,15,192,15,192,15,192,7,192,20,28,84, + 24,2,0,3,248,0,14,14,0,56,7,0,112,3,128,112, + 1,192,240,1,192,240,1,192,240,1,192,240,1,192,248,1, + 128,126,3,128,127,131,0,63,252,0,15,252,0,7,255,0, + 24,127,192,48,15,224,112,3,224,224,1,240,224,0,240,224, + 0,240,224,0,224,224,0,224,224,0,224,112,1,192,48,1, + 128,28,7,0,15,252,0,17,28,84,24,3,0,7,224,0, + 12,56,0,56,12,0,56,14,0,112,14,0,112,7,0,240, + 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, + 128,112,15,128,112,15,128,56,27,128,28,51,128,7,199,128, + 0,7,128,0,7,0,0,7,0,56,7,0,124,7,0,124, + 14,0,120,14,0,112,12,0,112,24,0,48,48,0,31,224, + 0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 29, '1' Height: 28 + Calculated Max Values w=41 h=38 x= 5 y=22 dx=44 dy= 0 ascent=31 len=174 + Font Bounding box w=107 h=51 x=-33 y=-12 + Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 + Pure Font ascent =29 descent=-9 + X Font ascent =30 descent=-9 + Max Font ascent =31 descent=-9 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr29r[7573] U8G_SECTION(".progmem.u8g_font_osr29r") = { + 0,107,51,223,244,29,9,148,21,166,32,127,247,31,247,30, + 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, + 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, + 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, + 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, + 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, + 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, + 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, + 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, + 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, + 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, + 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, + 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, + 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, + 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, + 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, + 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, + 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, + 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, + 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, + 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, + 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, + 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, + 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, + 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, + 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, + 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, + 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, + 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, + 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, + 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, + 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, + 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, + 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, + 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, + 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, + 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, + 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, + 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, + 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, + 30,249,62,29,112,3,128,3,128,29,112,249,62,241,30,227, + 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, + 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, + 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, + 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, + 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, + 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, + 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, + 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, + 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, + 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, + 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, + 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, + 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, + 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, + 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, + 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, + 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, + 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, + 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, + 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, + 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, + 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, + 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, + 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, + 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, + 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, + 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, + 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, + 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, + 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, + 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, + 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, + 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, + 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, + 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, + 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, + 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, + 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, + 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, + 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, + 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, + 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, + 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, + 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, + 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, + 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, + 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, + 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, + 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, + 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, + 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, + 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, + 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, + 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, + 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, + 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, + 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, + 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, + 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, + 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, + 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, + 0,0,0,112,248,248,248,112,5,26,26,11,3,249,112,248, + 248,248,112,0,0,0,0,0,0,0,0,0,112,240,248,120, + 8,8,8,16,16,32,96,64,32,34,136,39,3,250,0,0, + 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, + 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, + 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, + 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, + 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, + 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, + 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, + 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, + 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, + 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, + 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, + 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, + 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, + 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, + 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, + 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, + 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, + 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, + 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, + 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, + 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, + 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, + 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, + 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, + 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, + 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, + 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, + 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, + 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, + 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, + 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, + 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, + 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, + 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, + 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, + 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, + 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, + 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, + 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, + 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, + 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, + 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, + 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, + 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, + 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, + 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, + 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, + 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, + 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, + 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, + 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, + 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, + 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, + 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, + 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, + 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, + 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, + 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, + 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, + 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, + 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, + 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, + 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, + 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, + 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, + 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, + 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, + 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, + 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, + 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, + 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, + 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, + 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, + 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, + 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, + 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, + 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, + 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, + 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, + 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, + 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, + 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, + 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, + 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, + 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, + 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, + 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, + 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, + 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, + 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, + 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, + 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, + 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, + 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, + 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, + 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, + 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, + 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, + 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, + 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, + 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, + 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, + 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, + 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, + 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, + 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, + 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, + 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, + 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, + 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, + 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, + 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, + 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, + 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, + 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, + 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, + 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, + 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, + 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, + 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, + 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, + 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, + 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, + 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, + 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, + 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, + 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, + 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, + 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, + 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, + 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, + 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, + 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, + 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, + 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, + 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, + 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, + 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, + 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, + 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, + 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, + 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, + 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, + 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, + 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, + 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, + 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, + 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, + 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, + 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, + 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, + 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, + 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, + 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, + 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, + 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, + 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, + 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, + 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, + 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, + 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, + 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, + 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, + 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, + 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, + 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, + 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, + 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, + 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, + 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, + 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, + 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, + 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, + 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, + 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, + 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, + 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, + 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, + 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, + 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, + 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, + 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, + 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, + 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, + 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, + 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, + 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, + 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, + 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, + 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, + 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, + 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, + 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, + 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, + 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, + 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, + 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, + 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, + 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, + 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, + 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, + 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, + 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, + 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, + 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, + 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, + 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, + 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, + 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, + 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, + 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, + 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, + 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, + 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, + 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, + 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, + 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, + 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, + 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, + 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, + 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, + 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, + 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, + 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, + 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, + 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, + 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, + 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, + 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, + 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, + 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, + 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, + 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, + 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, + 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, + 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, + 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, + 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, + 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, + 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, + 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, + 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, + 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, + 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, + 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, + 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, + 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, + 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, + 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, + 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, + 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, + 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, + 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, + 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, + 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, + 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, + 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, + 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, + 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, + 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, + 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, + 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, + 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, + 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, + 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, + 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, + 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, + 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, + 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, + 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, + 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, + 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, + 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, + 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, + 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, + 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, + 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, + 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, + 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, + 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, + 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, + 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, + 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, + 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, + 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, + 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, + 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, + 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, + 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, + 252,96,1,248,255}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 35, '1' Height: 34 + Calculated Max Values w=49 h=47 x=10 y=28 dx=52 dy= 0 ascent=47 len=252 + Font Bounding box w=128 h=62 x=-40 y=-15 + Calculated Min Values x=-2 y=-13 dx= 0 dy= 0 + Pure Font ascent =35 descent=-10 + X Font ascent =36 descent=-10 + Max Font ascent =47 descent=-13 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr35[22370] U8G_SECTION(".progmem.u8g_font_osr35") = { + 0,128,62,216,241,35,12,236,30,116,32,255,246,47,243,36, + 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, + 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, + 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, + 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, + 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, + 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, + 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, + 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, + 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, + 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, + 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, + 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, + 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, + 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, + 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, + 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, + 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, + 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, + 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, + 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, + 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, + 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, + 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, + 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, + 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, + 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, + 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, + 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, + 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, + 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, + 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, + 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, + 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, + 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, + 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, + 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, + 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, + 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, + 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, + 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, + 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, + 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, + 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, + 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, + 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, + 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, + 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, + 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, + 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, + 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, + 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, + 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, + 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, + 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, + 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, + 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, + 0,224,0,1,224,0,1,224,0,1,224,0,96,195,128,240, + 135,192,248,143,192,124,159,128,7,248,0,1,224,0,1,224, + 0,6,184,0,124,143,128,248,135,192,240,195,192,97,193,128, + 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, + 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, + 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, + 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, + 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, + 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, + 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, + 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, + 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, + 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, + 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, + 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, + 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, + 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, + 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, + 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, + 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, + 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, + 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, + 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, + 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, + 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, + 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, + 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, + 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, + 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, + 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, + 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, + 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, + 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, + 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, + 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, + 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, + 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, + 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, + 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, + 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, + 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, + 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, + 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, + 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, + 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, + 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, + 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, + 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, + 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, + 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, + 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, + 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, + 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, + 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, + 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, + 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, + 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, + 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, + 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, + 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, + 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, + 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, + 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, + 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, + 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, + 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, + 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, + 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, + 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, + 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, + 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, + 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, + 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, + 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, + 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, + 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, + 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, + 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, + 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, + 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, + 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, + 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, + 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, + 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, + 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, + 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, + 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, + 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, + 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, + 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, + 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, + 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, + 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, + 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, + 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, + 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, + 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, + 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, + 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, + 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, + 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, + 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, + 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, + 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, + 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, + 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, + 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, + 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, + 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, + 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, + 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, + 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, + 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, + 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, + 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, + 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, + 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, + 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, + 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, + 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, + 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, + 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, + 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, + 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, + 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, + 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, + 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, + 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, + 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, + 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, + 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, + 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, + 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, + 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, + 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, + 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, + 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, + 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, + 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, + 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, + 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, + 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, + 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, + 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, + 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, + 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, + 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, + 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, + 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, + 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, + 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, + 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, + 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, + 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, + 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, + 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, + 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, + 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, + 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, + 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, + 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, + 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, + 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, + 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, + 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, + 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, + 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, + 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, + 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, + 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, + 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, + 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, + 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, + 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, + 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, + 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, + 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, + 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, + 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, + 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, + 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, + 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, + 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, + 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, + 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, + 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, + 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, + 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, + 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, + 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, + 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, + 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, + 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, + 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, + 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, + 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, + 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, + 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, + 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, + 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, + 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, + 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, + 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, + 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, + 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, + 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, + 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, + 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, + 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, + 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, + 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, + 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, + 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, + 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, + 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, + 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, + 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, + 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, + 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, + 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, + 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, + 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, + 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, + 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, + 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, + 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, + 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, + 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, + 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, + 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, + 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, + 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, + 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, + 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, + 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, + 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, + 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, + 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, + 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, + 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, + 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, + 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, + 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, + 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, + 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, + 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, + 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, + 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, + 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, + 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, + 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, + 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, + 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, + 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, + 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, + 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, + 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, + 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, + 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, + 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, + 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, + 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, + 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, + 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, + 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, + 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, + 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, + 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, + 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, + 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, + 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, + 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, + 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, + 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, + 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, + 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, + 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, + 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, + 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, + 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, + 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, + 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, + 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, + 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, + 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, + 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, + 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, + 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, + 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, + 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, + 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, + 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, + 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, + 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, + 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, + 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, + 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, + 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, + 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, + 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, + 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, + 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, + 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, + 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, + 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, + 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, + 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, + 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, + 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, + 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, + 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, + 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, + 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, + 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, + 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, + 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, + 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, + 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, + 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, + 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, + 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, + 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, + 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, + 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, + 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, + 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, + 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, + 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, + 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, + 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, + 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, + 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, + 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, + 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, + 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, + 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, + 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, + 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, + 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, + 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, + 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, + 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, + 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, + 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, + 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, + 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, + 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, + 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, + 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, + 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, + 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, + 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, + 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, + 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, + 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, + 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, + 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, + 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, + 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, + 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, + 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, + 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, + 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, + 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, + 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, + 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, + 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, + 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, + 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, + 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, + 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, + 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, + 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, + 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, + 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, + 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, + 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, + 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, + 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, + 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, + 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, + 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, + 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, + 48,240,15,32,112,15,64,120,15,128,120,15,128,120,15,0, + 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, + 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, + 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, + 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, + 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, + 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, + 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, + 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, + 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, + 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, + 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, + 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, + 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, + 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, + 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, + 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, + 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, + 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, + 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, + 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, + 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, + 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, + 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, + 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, + 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, + 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, + 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, + 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, + 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, + 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, + 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, + 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, + 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, + 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, + 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, + 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, + 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, + 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, + 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, + 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, + 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, + 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, + 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, + 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, + 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, + 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, + 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, + 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, + 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, + 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, + 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, + 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, + 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, + 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, + 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, + 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, + 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, + 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, + 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, + 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, + 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, + 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, + 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, + 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, + 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, + 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, + 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, + 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, + 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, + 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, + 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, + 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, + 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, + 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, + 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, + 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, + 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, + 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, + 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, + 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, + 31,128,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,14,0,0,6,33,33,14,4,246,120, + 252,252,252,120,0,0,48,48,48,48,48,48,48,48,48,48, + 48,120,120,120,120,120,120,248,252,252,252,252,252,252,252,120, + 17,34,102,28,5,250,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,192,0,7,252,0,14,198,0,28,195, + 0,56,195,128,120,195,128,120,207,128,120,207,128,248,207,128, + 240,199,0,240,192,0,240,192,0,240,192,0,240,192,0,240, + 192,0,248,192,128,120,192,128,120,192,128,120,193,128,56,193, + 0,28,195,0,14,198,0,7,252,0,0,192,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,28,34,136,35, + 3,0,0,0,126,0,0,1,227,128,0,3,128,192,0,7, + 0,192,0,14,0,224,0,14,1,224,0,28,3,224,0,28, + 3,224,0,60,3,192,0,60,0,128,0,60,0,0,0,60, + 0,0,0,60,0,0,0,60,0,0,0,60,0,0,31,252, + 0,0,0,127,248,0,0,124,0,0,0,124,0,0,0,60, + 0,0,0,60,0,0,0,60,0,0,0,60,0,0,0,60, + 0,0,0,56,0,0,0,56,0,16,62,56,0,32,99,240, + 0,32,193,240,0,96,128,120,0,64,128,254,0,192,128,159, + 255,128,193,7,255,0,126,1,254,0,24,24,72,28,2,5, + 64,0,2,224,126,7,115,255,206,63,129,252,30,0,120,28, + 0,56,56,0,24,48,0,12,48,0,12,96,0,6,96,0, + 6,96,0,6,96,0,6,96,0,6,96,0,6,112,0,12, + 48,0,12,56,0,28,28,0,56,30,0,120,63,129,252,115, + 255,206,224,126,7,64,0,2,27,33,132,29,1,0,255,224, + 127,224,31,0,15,0,15,0,6,0,15,128,6,0,7,128, + 12,0,7,192,12,0,3,192,24,0,3,224,24,0,1,224, + 48,0,1,240,32,0,0,240,96,0,0,248,64,0,0,248, + 192,0,0,124,128,0,0,125,128,0,0,63,0,0,0,63, + 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, + 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, + 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, + 0,0,0,30,0,0,0,30,0,0,0,31,0,0,3,255, + 240,0,2,44,44,14,6,248,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0, + 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,18,43,129,31,5,247,1,240,0,6,24,0, + 12,12,0,24,30,0,56,62,0,56,62,0,56,62,0,56, + 8,0,60,0,0,30,0,0,31,0,0,15,128,0,7,192, + 0,15,224,0,25,240,0,48,252,0,96,126,0,64,63,0, + 192,15,128,192,7,128,192,3,192,224,1,192,240,0,192,120, + 0,192,124,0,192,62,0,128,31,1,128,15,131,0,7,198, + 0,3,248,0,1,240,0,0,248,0,0,124,0,0,60,0, + 0,30,0,0,14,0,30,14,0,62,14,0,62,14,0,60, + 12,0,24,28,0,12,56,0,7,224,0,14,5,10,22,4, + 27,112,56,248,124,248,124,248,124,112,56,35,36,180,40,3, + 0,0,7,252,0,0,0,60,7,128,0,0,224,0,192,0, + 1,128,0,48,0,3,0,0,24,0,4,0,0,12,0,8, + 0,0,6,0,24,1,240,131,0,48,7,28,129,0,32,30, + 7,128,128,96,28,3,128,128,64,56,1,128,64,64,120,1, + 128,64,192,120,0,128,64,128,120,0,128,96,128,248,0,0, + 32,128,240,0,0,32,128,240,0,0,32,128,240,0,0,32, + 128,240,0,0,32,128,240,0,0,32,128,240,0,0,32,128, + 248,0,128,96,64,120,0,128,64,64,120,0,128,64,96,56, + 1,128,192,32,60,1,0,128,48,30,3,1,128,16,15,14, + 3,0,24,3,248,2,0,12,0,0,6,0,6,0,0,12, + 0,3,128,0,56,0,0,192,0,96,0,0,120,3,192,0, + 0,31,254,0,0,13,17,34,19,3,17,62,0,99,0,193, + 128,225,128,225,128,3,128,13,128,49,128,113,128,225,128,225, + 136,225,136,247,152,120,240,0,0,0,0,255,240,13,19,38, + 23,5,1,4,0,12,24,24,48,48,32,112,96,96,96,96, + 192,224,192,224,192,224,192,224,192,224,192,224,192,96,192,112, + 96,48,96,56,48,24,16,12,0,23,10,30,29,3,8,255, + 255,254,255,255,254,0,0,6,0,0,6,0,0,6,0,0, + 6,0,0,6,0,0,6,0,0,6,0,0,6,12,3,6, + 18,3,11,255,240,255,240,255,240,35,36,180,40,3,0,0, + 7,252,0,0,0,60,7,128,0,0,224,0,192,0,1,128, + 0,48,0,3,0,0,24,0,4,0,0,12,0,8,0,0, + 6,0,25,255,248,3,0,48,60,30,1,0,32,60,15,0, + 128,96,60,7,128,128,64,60,7,128,64,64,60,7,128,64, + 192,60,7,128,64,128,60,7,128,96,128,60,15,0,32,128, + 60,30,0,32,128,63,240,0,32,128,60,28,0,32,128,60, + 14,0,32,128,60,7,0,32,128,60,7,0,32,128,60,7, + 128,96,64,60,7,128,64,64,60,7,132,64,64,60,7,132, + 192,32,60,7,136,128,48,60,3,201,128,17,255,129,241,0, + 24,0,0,2,0,12,0,0,6,0,6,0,0,12,0,3, + 0,0,24,0,0,192,0,96,0,0,112,1,192,0,0,31, + 254,0,0,13,2,4,21,4,28,255,248,255,248,14,13,26, + 29,8,21,15,192,56,96,112,48,96,24,192,8,192,12,192, + 12,192,12,192,12,96,24,96,24,56,112,15,192,41,34,204, + 45,2,254,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,255,255,255,255,255,128,255,255,255,255,255,128,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,255,255,255,255,128,255,255,255,255,255,128,14, + 21,42,22,4,13,15,192,49,240,96,120,192,124,192,60,224, + 60,248,60,120,60,48,120,0,112,0,224,1,192,3,128,6, + 0,12,0,48,4,32,4,96,12,127,248,255,248,255,248,14, + 21,42,22,5,13,15,192,56,224,96,112,96,56,112,56,120, + 56,48,56,0,112,0,224,63,128,56,224,0,120,0,56,0, + 60,112,60,248,60,240,60,192,56,192,120,96,240,31,192,8, + 9,9,22,10,25,7,15,15,30,60,48,96,192,128,25,36, + 144,29,3,243,112,1,192,0,240,3,192,0,240,3,224,0, + 240,3,224,0,240,3,224,0,240,3,224,0,240,3,224,0, + 240,3,224,0,240,3,224,0,240,3,224,0,224,3,224,0, + 224,1,192,0,224,1,192,0,96,1,192,0,96,1,192,0, + 96,1,192,0,96,1,128,0,96,3,129,128,112,7,193,128, + 88,15,127,128,79,254,63,128,67,252,31,0,64,0,0,0, + 192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0, + 192,0,0,0,224,0,0,0,224,0,0,0,240,0,0,0, + 240,0,0,0,240,0,0,0,248,0,0,0,120,0,0,0, + 120,0,0,0,20,42,126,26,3,249,7,255,240,31,193,128, + 63,193,128,127,193,128,127,193,128,255,193,128,255,193,128,255, + 193,128,255,193,128,255,193,128,255,193,128,127,193,128,127,193, + 128,63,193,128,15,193,128,0,193,128,0,193,128,0,193,128, + 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, + 193,128,0,193,128,0,193,128,0,193,128,0,193,128,0,193, + 128,0,193,128,0,193,128,0,193,128,0,193,128,0,193,128, + 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, + 193,128,0,193,128,0,193,128,6,6,6,14,4,12,120,252, + 252,252,252,120,10,10,20,21,5,246,8,0,8,0,24,0, + 15,0,3,128,1,192,1,192,1,192,195,128,63,0,11,20, + 40,21,5,14,2,0,6,0,14,0,254,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,14,0,14,0,14,0,255,224,12,17,34,18, + 3,17,15,0,57,192,112,192,96,224,224,96,224,112,224,112, + 224,112,224,112,224,112,96,96,112,224,49,192,31,0,0,0, + 0,0,255,240,13,19,38,23,5,1,1,0,193,128,96,192, + 32,96,48,112,48,48,24,48,24,56,24,56,24,56,24,56, + 24,56,24,56,24,48,48,112,48,96,96,224,64,192,1,128, + 33,35,175,42,5,255,2,0,0,96,0,6,0,0,64,0, + 14,0,0,192,0,254,0,1,128,0,14,0,1,0,0,14, + 0,3,0,0,14,0,2,0,0,14,0,6,0,0,14,0, + 12,0,0,14,0,8,0,0,14,0,24,0,0,14,0,16, + 0,0,14,0,48,0,0,14,0,96,0,0,14,0,96,56, + 0,14,0,192,120,0,14,0,128,120,0,14,1,128,248,0, + 14,3,0,184,0,255,227,1,56,0,0,6,1,56,0,0, + 4,2,56,0,0,12,2,56,0,0,8,4,56,0,0,24, + 12,56,0,0,48,8,56,0,0,32,24,56,0,0,96,31, + 255,128,0,64,0,56,0,0,192,0,56,0,1,128,0,56, + 0,1,128,0,56,0,3,0,0,56,0,2,0,1,255,128, + 6,0,0,0,0,33,35,175,42,5,255,2,0,0,96,0, + 6,0,0,64,0,6,0,0,192,0,14,0,1,128,0,254, + 0,1,128,0,14,0,3,0,0,14,0,2,0,0,14,0, + 6,0,0,14,0,4,0,0,14,0,12,0,0,14,0,24, + 0,0,14,0,16,0,0,14,0,48,0,0,14,0,33,248, + 0,14,0,102,62,0,14,0,204,15,0,14,0,152,15,128, + 14,1,152,7,128,14,1,24,7,128,255,227,31,7,128,0, + 6,31,7,128,0,4,15,7,0,0,12,0,14,0,0,8, + 0,28,0,0,24,0,56,0,0,48,0,112,0,0,48,0, + 192,0,0,96,1,128,0,0,64,2,0,128,0,192,4,0, + 128,1,128,12,1,128,1,128,15,255,0,3,0,15,255,0, + 2,0,31,255,0,6,0,0,0,0,33,35,175,42,5,255, + 15,192,0,48,0,56,224,0,96,0,96,112,0,96,0,96, + 56,0,192,0,112,56,0,128,0,120,56,1,128,0,48,56, + 3,0,0,0,112,3,0,0,0,224,6,0,0,63,128,4, + 0,0,56,224,12,0,0,0,120,24,0,0,0,56,24,0, + 0,0,60,48,0,0,112,60,32,28,0,248,60,96,28,0, + 240,60,192,60,0,192,120,192,92,0,96,241,128,92,0,63, + 193,0,156,0,0,3,1,156,0,0,6,1,28,0,0,6, + 2,28,0,0,12,6,28,0,0,8,4,28,0,0,24,8, + 28,0,0,48,24,28,0,0,48,31,255,128,0,96,0,28, + 0,0,64,0,28,0,0,192,0,28,0,1,128,0,28,0, + 1,128,0,28,0,3,0,1,255,128,2,0,0,0,0,18, + 33,99,24,2,246,1,224,0,3,240,0,3,240,0,3,240, + 0,1,224,0,0,0,0,0,0,0,1,224,0,2,48,0, + 4,24,0,4,24,0,4,24,0,4,24,0,0,48,0,0, + 112,0,0,224,0,1,192,0,7,128,0,15,0,0,30,0, + 0,60,0,0,124,0,0,120,15,0,248,31,128,240,31,192, + 240,15,192,240,0,192,240,0,192,120,0,192,120,1,128,60, + 3,0,15,14,0,3,248,0,34,46,230,37,2,0,0,56, + 0,0,0,0,60,0,0,0,0,60,0,0,0,0,30,0, + 0,0,0,15,0,0,0,0,3,128,0,0,0,1,128,0, + 0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,192,0,0,0,0,192,0,0,0, + 0,224,0,0,0,1,224,0,0,0,1,224,0,0,0,3, + 240,0,0,0,3,240,0,0,0,3,240,0,0,0,6,248, + 0,0,0,6,248,0,0,0,6,248,0,0,0,12,124,0, + 0,0,12,124,0,0,0,12,124,0,0,0,24,62,0,0, + 0,24,62,0,0,0,24,30,0,0,0,48,31,0,0,0, + 48,31,0,0,0,48,15,0,0,0,96,15,128,0,0,96, + 15,128,0,0,96,7,128,0,0,255,255,192,0,0,255,255, + 192,0,0,192,3,192,0,1,128,3,224,0,1,128,3,224, + 0,3,128,1,224,0,3,0,1,240,0,3,0,1,240,0, + 7,0,0,240,0,7,0,0,248,0,31,128,1,252,0,255, + 248,31,255,192,34,46,230,37,2,0,0,0,7,0,0,0, + 0,15,0,0,0,0,15,0,0,0,0,30,0,0,0,0, + 60,0,0,0,0,48,0,0,0,0,96,0,0,0,0,192, + 0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,192,0,0,0,0,192,0,0,0,0,224,0,0, + 0,1,224,0,0,0,1,224,0,0,0,3,240,0,0,0, + 3,240,0,0,0,3,240,0,0,0,6,248,0,0,0,6, + 248,0,0,0,6,248,0,0,0,12,124,0,0,0,12,124, + 0,0,0,12,124,0,0,0,24,62,0,0,0,24,62,0, + 0,0,24,30,0,0,0,48,31,0,0,0,48,31,0,0, + 0,48,15,0,0,0,96,15,128,0,0,96,15,128,0,0, + 224,7,128,0,0,255,255,192,0,0,255,255,192,0,1,192, + 3,192,0,1,128,3,224,0,1,128,3,224,0,3,128,1, + 224,0,3,0,1,240,0,3,0,1,240,0,7,0,0,240, + 0,15,128,0,248,0,255,248,31,255,192,255,248,31,255,192, + 34,45,225,37,2,0,0,0,192,0,0,0,1,224,0,0, + 0,3,240,0,0,0,7,56,0,0,0,14,28,0,0,0, + 28,14,0,0,0,48,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,192, + 0,0,0,0,224,0,0,0,1,224,0,0,0,1,224,0, + 0,0,3,240,0,0,0,3,240,0,0,0,3,240,0,0, + 0,6,248,0,0,0,6,248,0,0,0,6,248,0,0,0, + 12,124,0,0,0,12,124,0,0,0,12,124,0,0,0,24, + 62,0,0,0,24,62,0,0,0,24,30,0,0,0,48,31, + 0,0,0,48,31,0,0,0,48,15,0,0,0,96,15,128, + 0,0,96,15,128,0,0,96,7,128,0,0,255,255,192,0, + 0,255,255,192,0,0,192,3,192,0,1,128,3,224,0,1, + 128,3,224,0,3,128,1,224,0,3,0,1,240,0,3,0, + 1,240,0,7,0,0,240,0,7,0,0,248,0,31,128,1, + 252,0,255,248,31,255,192,34,45,225,37,2,0,0,15,0, + 128,0,0,31,225,128,0,0,63,255,0,0,0,33,255,0, + 0,0,32,62,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,192,0,0,0,0,192,0,0,0,1,224,0,0,0,1, + 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, + 0,0,0,3,240,0,0,0,6,248,0,0,0,6,248,0, + 0,0,6,248,0,0,0,12,124,0,0,0,12,124,0,0, + 0,12,124,0,0,0,24,62,0,0,0,24,62,0,0,0, + 24,30,0,0,0,48,31,0,0,0,48,31,0,0,0,112, + 15,0,0,0,96,15,128,0,0,96,15,128,0,0,224,7, + 128,0,0,255,255,192,0,0,255,255,192,0,1,192,3,192, + 0,1,128,3,224,0,1,128,3,224,0,3,128,1,224,0, + 3,0,1,240,0,3,0,1,240,0,7,0,0,240,0,15, + 128,0,248,0,255,248,31,255,192,255,248,31,255,192,34,44, + 220,37,2,0,0,28,7,0,0,0,62,15,128,0,0,62, + 15,128,0,0,62,15,128,0,0,28,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,64,0,0,0,0,192,0,0,0,0,224,0,0, + 0,0,224,0,0,0,1,224,0,0,0,1,240,0,0,0, + 3,240,0,0,0,3,240,0,0,0,3,248,0,0,0,7, + 248,0,0,0,6,120,0,0,0,6,124,0,0,0,14,60, + 0,0,0,12,60,0,0,0,12,62,0,0,0,28,30,0, + 0,0,24,30,0,0,0,24,31,0,0,0,48,15,0,0, + 0,48,15,0,0,0,112,15,128,0,0,96,7,128,0,0, + 96,7,128,0,0,255,255,192,0,0,255,255,192,0,0,192, + 3,192,0,1,192,3,224,0,1,192,1,224,0,1,128,1, + 224,0,3,128,1,240,0,3,128,0,240,0,7,128,0,240, + 0,7,128,0,248,0,31,192,1,252,0,255,248,31,255,192, + 34,47,235,37,2,0,0,1,224,0,0,0,6,24,0,0, + 0,4,8,0,0,0,8,4,0,0,0,8,4,0,0,0, + 8,4,0,0,0,8,4,0,0,0,4,8,0,0,0,6, + 24,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, + 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, + 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, + 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, + 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, + 0,0,48,15,0,0,0,96,15,128,0,0,96,7,128,0, + 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,1, + 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, + 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, + 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, + 192,44,35,210,48,1,0,0,0,127,255,255,240,0,0,15, + 224,3,240,0,0,15,192,0,240,0,0,15,192,0,112,0, + 0,15,192,0,112,0,0,27,192,0,48,0,0,27,192,0, + 48,0,0,51,192,0,48,0,0,51,192,0,16,0,0,99, + 192,0,16,0,0,99,192,16,16,0,0,195,192,16,16,0, + 1,195,192,16,0,0,1,131,192,48,0,0,3,131,192,48, + 0,0,3,3,192,48,0,0,7,3,192,112,0,0,6,3, + 255,240,0,0,14,3,192,240,0,0,12,3,192,48,0,0, + 24,3,192,48,0,0,24,3,192,16,0,0,48,3,192,16, + 16,0,63,255,192,16,16,0,96,3,192,16,16,0,96,3, + 192,0,16,0,192,3,192,0,16,0,192,3,192,0,48,1, + 128,3,192,0,48,1,128,3,192,0,112,3,128,3,192,0, + 112,7,128,3,192,0,240,15,128,3,192,1,240,255,248,127, + 255,255,240,255,248,127,255,255,240,26,47,188,32,3,245,0, + 63,0,128,0,225,225,128,3,128,113,128,7,0,63,128,14, + 0,31,128,30,0,15,128,28,0,7,128,60,0,7,128,60, + 0,3,128,124,0,3,128,120,0,1,128,120,0,1,128,120, + 0,0,128,248,0,0,128,248,0,0,0,248,0,0,0,248, + 0,0,0,248,0,0,0,248,0,0,0,248,0,0,0,248, + 0,0,0,248,0,0,0,248,0,0,0,120,0,0,192,120, + 0,0,192,120,0,0,192,124,0,0,192,60,0,0,128,60, + 0,1,128,28,0,1,128,30,0,3,0,14,0,3,0,7, + 0,6,0,3,128,12,0,1,192,56,0,0,127,224,0,0, + 8,0,0,0,8,0,0,0,28,0,0,0,15,128,0,0, + 3,192,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 129,224,0,0,199,192,0,0,63,0,0,28,46,184,34,3, + 0,0,224,0,0,0,240,0,0,0,240,0,0,0,120,0, + 0,0,60,0,0,0,14,0,0,0,6,0,0,0,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 240,255,255,255,240,7,128,1,240,7,128,0,240,7,128,0, + 112,7,128,0,112,7,128,0,48,7,128,0,48,7,128,0, + 48,7,128,0,16,7,128,32,16,7,128,32,16,7,128,32, + 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,224, + 0,7,255,224,0,7,129,224,0,7,128,96,0,7,128,96, + 0,7,128,96,0,7,128,32,16,7,128,32,16,7,128,32, + 16,7,128,0,16,7,128,0,48,7,128,0,48,7,128,0, + 48,7,128,0,112,7,128,0,112,7,128,0,240,7,128,1, + 240,255,255,255,240,255,255,255,240,28,46,184,34,3,0,0, + 0,28,0,0,0,60,0,0,0,60,0,0,0,120,0,0, + 0,240,0,0,0,192,0,0,1,128,0,0,3,0,0,0, + 2,0,0,0,0,0,0,0,0,0,0,255,255,255,240,255, + 255,255,240,7,128,1,240,7,128,0,240,7,128,0,112,7, + 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, + 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, + 128,96,0,7,128,96,0,7,128,96,0,7,128,224,0,7, + 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, + 128,96,0,7,128,32,16,7,128,32,16,7,128,32,16,7, + 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, + 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, + 255,255,240,255,255,255,240,28,45,180,34,3,0,0,3,0, + 0,0,7,128,0,0,15,192,0,0,12,224,0,0,24,112, + 0,0,112,24,0,0,192,12,0,0,0,2,0,0,0,0, + 0,0,0,0,0,255,255,255,240,255,255,255,240,7,128,1, + 240,7,128,0,240,7,128,0,112,7,128,0,112,7,128,0, + 48,7,128,0,48,7,128,0,48,7,128,0,16,7,128,32, + 16,7,128,32,16,7,128,32,0,7,128,96,0,7,128,96, + 0,7,128,96,0,7,128,224,0,7,255,224,0,7,129,224, + 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,32, + 16,7,128,32,16,7,128,32,16,7,128,0,16,7,128,0, + 48,7,128,0,48,7,128,0,48,7,128,0,112,7,128,0, + 112,7,128,0,240,7,128,1,240,255,255,255,240,255,255,255, + 240,28,44,176,34,3,0,0,112,28,0,0,248,62,0,0, + 248,62,0,0,248,62,0,0,112,28,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,255,255,240,7, + 192,7,240,7,128,1,240,7,128,0,240,7,128,0,112,7, + 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, + 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, + 128,32,0,7,128,96,0,7,128,96,0,7,128,224,0,7, + 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, + 128,32,0,7,128,32,16,7,128,32,16,7,128,32,16,7, + 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, + 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, + 255,255,240,255,255,255,240,14,46,92,19,3,0,224,0,240, + 0,240,0,120,0,60,0,12,0,6,0,3,0,1,0,0, + 0,0,0,255,252,255,252,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,15,128,255,252,14,46,92,19,3,0,0, + 28,0,60,0,60,0,120,0,240,0,192,1,128,3,0,0, + 0,0,0,0,0,255,252,255,252,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,192,255,252,14,45,90,19,3, + 0,3,0,7,128,7,192,14,192,24,96,112,56,192,12,0, + 0,0,0,0,0,255,252,7,192,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,255,252,255,252,15,44,88,20,3, + 0,112,28,248,62,248,62,248,62,112,28,0,0,0,0,0, + 0,0,0,127,254,7,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,7,192,127,254,32,35,140,38,4,0,255, + 255,248,0,15,128,15,0,7,128,3,128,7,128,1,192,7, + 128,0,224,7,128,0,240,7,128,0,120,7,128,0,124,7, + 128,0,60,7,128,0,62,7,128,0,62,7,128,0,30,7, + 128,0,30,7,128,0,31,7,128,0,31,7,128,0,31,255, + 254,0,31,7,128,0,31,7,128,0,31,7,128,0,31,7, + 128,0,31,7,128,0,31,7,128,0,30,7,128,0,62,7, + 128,0,62,7,128,0,60,7,128,0,60,7,128,0,120,7, + 128,0,120,7,128,0,240,7,128,0,224,7,128,1,192,7, + 128,3,128,15,128,30,0,255,255,248,0,33,46,230,38,3, + 255,0,7,1,128,0,0,31,225,128,0,0,31,255,0,0, + 0,16,255,0,0,0,48,62,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,192,7,255,128,255,192,7,255,128,7,224,0, + 120,0,7,240,0,48,0,7,240,0,48,0,7,248,0,48, + 0,6,248,0,48,0,6,252,0,48,0,6,126,0,48,0, + 6,62,0,48,0,6,63,0,48,0,6,31,0,48,0,6, + 15,128,48,0,6,15,192,48,0,6,7,192,48,0,6,7, + 224,48,0,6,3,224,48,0,6,1,240,48,0,6,1,248, + 48,0,6,0,248,48,0,6,0,252,48,0,6,0,124,48, + 0,6,0,62,48,0,6,0,63,48,0,6,0,31,48,0, + 6,0,15,176,0,6,0,15,176,0,6,0,7,240,0,6, + 0,7,240,0,6,0,3,240,0,6,0,1,240,0,6,0, + 1,240,0,15,0,0,240,0,31,128,0,240,0,255,240,0, + 112,0,0,0,0,48,0,28,46,184,33,3,1,1,192,0, + 0,1,224,0,0,1,240,0,0,0,112,0,0,0,56,0, + 0,0,28,0,0,0,12,0,0,0,6,0,0,0,0,0, + 0,0,0,0,0,0,31,128,0,0,255,240,0,1,192,56, + 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, + 128,30,0,7,128,60,0,3,192,60,0,3,192,124,0,3, + 224,124,0,3,224,120,0,1,224,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,120,0,1,224,120,0,1,224,120,0,3,224,124,0,3, + 192,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, + 0,14,0,7,0,7,0,14,0,3,128,28,0,0,192,48, + 0,0,127,224,0,28,46,184,33,3,1,0,0,56,0,0, + 0,120,0,0,0,248,0,0,0,224,0,0,1,192,0,0, + 3,128,0,0,3,0,0,0,6,0,0,0,0,0,0,0, + 0,0,0,0,31,128,0,0,255,240,0,1,192,56,0,3, + 128,28,0,7,0,14,0,14,0,7,0,30,0,7,128,30, + 0,7,128,60,0,3,192,60,0,3,192,124,0,3,224,124, + 0,3,224,120,0,1,224,248,0,1,240,248,0,1,240,248, + 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, + 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,120, + 0,1,224,120,0,1,224,120,0,3,224,124,0,3,192,60, + 0,3,192,60,0,3,192,30,0,7,128,14,0,7,0,14, + 0,7,0,7,0,14,0,3,128,28,0,0,192,48,0,0, + 127,224,0,28,46,184,33,3,0,0,6,0,0,0,15,0, + 0,0,15,0,0,0,31,128,0,0,57,192,0,0,112,224, + 0,0,192,48,0,3,128,28,0,0,0,0,0,0,0,0, + 0,0,31,128,0,0,255,240,0,1,192,56,0,3,128,28, + 0,7,0,14,0,14,0,7,0,30,0,7,128,30,0,7, + 128,60,0,3,192,60,0,3,192,124,0,3,224,124,0,3, + 224,120,0,1,224,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, + 224,120,0,1,224,120,0,3,224,124,0,3,192,60,0,3, + 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,7, + 0,7,0,14,0,3,128,28,0,0,192,48,0,0,127,224, + 0,28,45,180,33,3,0,0,120,12,0,0,255,8,0,1, + 255,248,0,1,143,248,0,1,1,224,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0, + 255,240,0,1,192,56,0,3,128,28,0,7,0,14,0,14, + 0,7,0,30,0,7,128,30,0,7,128,60,0,3,192,60, + 0,3,192,124,0,3,224,124,0,3,224,120,0,1,224,248, + 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, + 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, + 0,1,240,248,0,1,240,120,0,1,224,120,0,1,224,120, + 0,3,224,124,0,3,192,60,0,3,192,60,0,3,192,30, + 0,7,128,14,0,7,0,14,0,7,0,7,0,14,0,3, + 128,28,0,0,192,48,0,0,127,224,0,28,45,180,33,3, + 0,0,224,56,0,1,240,124,0,1,240,124,0,1,240,124, + 0,0,224,56,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,31,128,0,0,240,240,0,1,192,56, + 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, + 128,28,0,3,128,60,0,3,192,60,0,3,192,124,0,3, + 224,120,0,1,224,120,0,1,224,248,0,1,224,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,120,0,1,224,120,0,1,224,124,0,3,224,124,0,3, + 224,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, + 0,14,0,15,0,7,0,14,0,3,128,28,0,0,224,112, + 0,0,127,224,0,30,30,120,46,8,254,192,0,0,12,224, + 0,0,28,112,0,0,56,56,0,0,112,28,0,0,224,14, + 0,1,192,7,0,3,128,3,128,7,0,1,192,14,0,0, + 224,28,0,0,112,56,0,0,56,112,0,0,28,224,0,0, + 15,192,0,0,7,128,0,0,7,128,0,0,15,192,0,0, + 28,224,0,0,56,112,0,0,112,56,0,0,224,28,0,1, + 192,14,0,3,128,7,0,7,0,3,128,14,0,1,192,28, + 0,0,224,56,0,0,112,112,0,0,56,224,0,0,28,192, + 0,0,12,28,36,144,33,3,0,0,31,128,32,0,240,240, + 96,1,192,56,224,3,128,30,192,7,0,15,128,14,0,7, + 128,30,0,7,128,28,0,7,128,60,0,15,192,60,0,31, + 192,124,0,59,224,120,0,49,224,120,0,97,224,248,0,225, + 240,248,1,193,240,248,1,129,240,248,3,1,240,248,7,1, + 240,248,6,1,240,248,12,1,240,248,28,1,240,248,56,1, + 240,248,48,1,240,120,96,1,224,120,224,1,224,121,192,3, + 224,125,128,3,192,63,0,3,192,63,0,3,192,30,0,7, + 128,30,0,7,0,30,0,15,0,63,0,14,0,51,128,28, + 0,97,192,112,0,192,127,224,0,34,46,230,39,3,1,0, + 28,0,0,0,0,28,0,0,0,0,30,0,0,0,0,15, + 0,0,0,0,7,0,0,0,0,1,128,0,0,0,0,192, + 0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0, + 0,255,252,3,255,192,255,252,3,255,192,7,192,0,126,0, + 7,128,0,60,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,3,192,0, + 24,0,3,192,0,48,0,1,192,0,48,0,1,224,0,96, + 0,0,224,0,96,0,0,112,0,192,0,0,60,3,128,0, + 0,15,254,0,0,34,46,230,39,3,1,0,0,7,0,0, + 0,0,15,0,0,0,0,30,0,0,0,0,28,0,0,0, + 0,56,0,0,0,0,112,0,0,0,0,96,0,0,0,0, + 128,0,0,0,0,0,0,0,0,0,0,0,0,255,252,3, + 255,192,255,252,3,255,192,7,192,0,126,0,7,128,0,60, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,3,192,0,24,0,3,192, + 0,48,0,1,192,0,48,0,1,224,0,96,0,0,224,0, + 96,0,0,112,0,192,0,0,60,3,128,0,0,15,254,0, + 0,34,46,230,39,3,0,0,0,192,0,0,0,0,224,0, + 0,0,1,224,0,0,0,3,240,0,0,0,3,56,0,0, + 0,6,28,0,0,0,28,6,0,0,0,48,3,128,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,252, + 3,255,192,7,192,0,126,0,7,128,0,60,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,3,192,0,24,0,3,192,0,48,0,3, + 192,0,48,0,1,224,0,96,0,0,240,0,224,0,0,120, + 1,192,0,0,62,7,128,0,0,15,254,0,0,34,45,225, + 39,3,0,0,28,7,0,0,0,62,15,128,0,0,62,15, + 128,0,0,62,15,128,0,0,28,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,252,3,255,192,7,192,0,126,0,7, + 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, + 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, + 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, + 15,254,0,0,32,46,184,35,2,0,0,0,3,0,0,0, + 7,128,0,0,15,0,0,0,30,0,0,0,60,0,0,0, + 56,0,0,0,96,0,0,0,192,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,254,15,255,255,254,15,255,7,224, + 0,240,7,224,0,96,3,224,0,96,3,240,0,64,1,240, + 0,192,0,248,0,128,0,252,1,128,0,124,1,0,0,62, + 3,0,0,62,2,0,0,31,6,0,0,31,12,0,0,15, + 136,0,0,7,152,0,0,7,208,0,0,3,240,0,0,3, + 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, + 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, + 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, + 224,0,0,1,224,0,0,1,224,0,0,1,240,0,0,127, + 255,192,28,35,140,33,3,0,255,254,0,0,7,192,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,255,240,0,7,192,30,0,7,128,7,128,7,128,7,192, + 7,128,3,224,7,128,3,224,7,128,1,240,7,128,1,240, + 7,128,1,240,7,128,1,240,7,128,1,240,7,128,1,240, + 7,128,3,224,7,128,3,224,7,128,7,192,7,128,7,128, + 7,128,30,0,7,255,248,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,192,0,0, + 255,254,0,0,22,35,105,26,1,0,0,63,128,0,243,224, + 1,192,240,3,128,240,7,128,248,7,0,120,15,0,120,15, + 0,120,15,0,248,15,0,240,15,0,224,15,1,192,15,3, + 0,15,60,0,15,6,0,15,1,128,15,0,192,15,0,224, + 15,0,112,15,0,120,15,0,120,15,0,60,15,0,60,15, + 0,60,15,0,60,15,0,60,15,0,60,15,0,60,15,56, + 60,15,120,60,15,120,60,15,112,120,15,96,112,15,48,224, + 255,31,192,21,33,99,24,2,1,56,0,0,60,0,0,30, + 0,0,14,0,0,7,0,0,3,128,0,1,128,0,0,192, + 0,0,0,0,0,0,0,0,0,0,7,248,0,24,30,0, + 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, + 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, + 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, + 240,23,136,248,23,152,120,39,240,63,195,240,21,33,99,24, + 2,1,0,7,0,0,15,128,0,15,0,0,30,0,0,60, + 0,0,48,0,0,96,0,0,192,0,0,0,0,0,0,0, + 0,0,0,7,248,0,24,30,0,16,15,0,48,7,0,56, + 7,128,60,7,128,62,7,128,28,7,128,0,7,128,0,31, + 128,3,247,128,31,7,128,60,7,128,120,7,128,248,7,128, + 240,7,128,240,15,136,240,15,136,240,23,136,248,23,152,120, + 39,240,63,195,240,21,33,99,24,2,0,0,192,0,0,224, + 0,1,224,0,1,240,0,3,48,0,6,24,0,12,12,0, + 24,2,0,0,0,0,0,0,0,0,0,0,7,248,0,24, + 30,0,16,15,0,48,7,0,56,7,128,60,7,128,62,7, + 128,28,7,128,0,7,128,0,31,128,3,247,128,31,7,128, + 60,7,128,120,7,128,248,7,128,240,7,128,240,15,136,240, + 15,136,240,23,136,248,23,152,120,39,240,63,195,240,21,32, + 96,24,2,0,15,129,0,31,227,0,31,255,0,16,254,0, + 32,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,7,248,0,24,30,0,16,15,0,48,7,0,56,7, + 128,60,7,128,62,7,128,28,7,128,0,7,128,0,31,128, + 3,247,128,31,7,128,60,7,128,120,7,128,248,7,128,240, + 7,128,240,15,136,240,15,136,240,23,136,248,23,152,120,39, + 240,63,195,240,21,32,96,24,2,0,28,14,0,62,31,0, + 62,31,0,62,31,0,28,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,7,248,0,24,30,0,16,15, + 0,48,7,0,56,7,128,60,7,128,62,7,128,28,7,128, + 0,7,128,0,31,128,3,247,128,31,7,128,60,7,128,120, + 7,128,248,7,128,240,7,128,240,15,136,240,15,136,240,23, + 136,248,23,152,120,39,240,63,195,240,21,34,102,24,2,0, + 1,224,0,2,24,0,4,8,0,8,4,0,8,4,0,8, + 4,0,4,12,0,6,24,0,1,240,0,0,0,0,0,0, + 0,0,0,0,7,248,0,24,30,0,16,15,0,48,7,0, + 56,7,128,60,7,128,60,7,128,28,7,128,0,7,128,0, + 31,128,3,247,128,31,7,128,60,7,128,120,7,128,248,7, + 128,240,7,128,240,15,136,240,15,136,240,31,136,248,23,152, + 120,39,240,63,195,240,30,22,88,34,2,1,7,248,63,128, + 24,30,97,224,16,15,224,224,48,7,192,112,56,7,192,120, + 60,7,128,120,62,7,128,120,30,7,128,60,0,7,128,60, + 0,15,128,60,1,247,255,252,15,7,128,0,60,7,128,0, + 120,7,128,0,248,7,128,0,240,7,128,8,240,15,128,8, + 240,11,192,8,240,27,192,16,248,17,224,48,120,32,240,96, + 63,192,127,192,17,32,96,21,2,247,7,252,0,14,6,0, + 28,3,0,56,3,0,56,3,128,120,15,128,120,15,128,240, + 15,128,240,7,0,240,0,0,240,0,0,240,0,0,240,0, + 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,0, + 56,1,0,28,2,0,14,6,0,7,248,0,0,128,0,0, + 128,0,1,128,0,0,240,0,0,56,0,0,28,0,0,28, + 0,0,28,0,12,56,0,3,240,0,18,33,99,22,2,1, + 60,0,0,60,0,0,30,0,0,15,0,0,7,0,0,3, + 128,0,0,192,0,0,64,0,0,0,0,0,0,0,0,0, + 0,7,248,0,14,28,0,28,14,0,56,15,0,56,7,128, + 120,7,128,120,7,128,240,7,192,240,7,192,240,7,192,255, + 255,192,240,0,0,240,0,0,240,0,0,240,0,128,120,0, + 128,120,0,128,120,1,128,56,1,0,28,3,0,14,6,0, + 7,252,0,18,33,99,22,2,1,0,7,0,0,15,0,0, + 15,0,0,30,0,0,60,0,0,48,0,0,96,0,0,192, + 0,0,0,0,0,0,0,0,0,0,7,248,0,14,28,0, + 28,14,0,56,15,0,56,7,128,120,7,128,120,7,128,240, + 7,192,240,7,192,240,7,192,255,255,192,240,0,0,240,0, + 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,128, + 56,1,0,28,3,0,14,6,0,7,252,0,18,33,99,22, + 2,0,0,192,0,0,224,0,1,224,0,1,240,0,3,184, + 0,7,24,0,4,12,0,24,2,0,0,0,0,0,0,0, + 0,0,0,7,248,0,14,28,0,28,14,0,56,15,0,56, + 7,128,120,7,128,120,7,128,240,7,192,240,7,192,240,7, + 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,128, + 120,0,128,120,0,128,120,1,128,56,1,0,28,3,0,14, + 6,0,7,252,0,18,32,96,22,2,0,28,7,0,62,15, + 128,62,15,128,62,15,128,28,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,7,248,0,14,12,0,28, + 14,0,60,7,0,56,7,128,120,3,128,120,3,128,240,3, + 192,240,3,192,240,3,192,255,255,192,240,0,0,240,0,0, + 240,0,0,240,0,64,120,0,128,120,0,128,120,0,128,56, + 1,128,28,1,0,14,6,0,7,252,0,12,33,66,14,0, + 1,224,0,240,0,240,0,120,0,60,0,12,0,6,0,3, + 0,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,63,240,11,33,66,13,2,1,0,224,1,224,1,224,3, + 192,7,128,6,0,12,0,24,0,0,0,0,0,0,0,254, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,255,192,13,33,66,14,0, + 0,7,0,7,0,7,128,15,128,29,192,24,96,48,48,192, + 24,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,63,240,13,32,64,15,1,0,112,112,248,248,248,248,248, + 248,112,112,0,0,0,0,0,0,0,0,0,0,63,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,63,240,19,35,105,24,2,0,31, + 0,0,15,131,128,7,198,0,3,252,0,1,240,0,0,240, + 0,1,248,0,7,124,0,12,60,0,24,30,0,0,31,0, + 0,15,0,0,7,128,3,255,128,14,15,192,28,7,192,60, + 3,192,56,3,224,120,3,224,120,1,224,248,1,224,240,1, + 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, + 240,1,224,120,1,192,120,3,192,56,3,192,60,3,128,28, + 7,0,14,14,0,3,252,0,23,32,96,27,2,0,1,224, + 64,3,248,192,7,255,192,6,63,128,4,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,254,31,128,30, + 97,224,30,192,224,30,128,240,31,0,240,31,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,255,199,254,19,33, + 99,24,2,1,28,0,0,30,0,0,30,0,0,15,0,0, + 7,128,0,1,128,0,0,192,0,0,96,0,0,0,0,0, + 0,0,0,0,0,3,252,0,14,14,0,28,7,0,60,3, + 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, + 0,14,14,0,3,252,0,19,33,99,24,2,1,0,7,0, + 0,7,128,0,15,0,0,30,0,0,28,0,0,56,0,0, + 96,0,0,64,0,0,0,0,0,0,0,0,0,0,3,252, + 0,14,14,0,28,7,0,60,3,128,56,3,192,120,3,192, + 120,1,224,248,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,3, + 192,56,3,192,60,3,128,28,7,0,14,14,0,3,252,0, + 19,33,99,24,2,0,0,96,0,0,224,0,0,240,0,1, + 240,0,1,184,0,3,24,0,6,4,0,8,3,0,0,0, + 0,0,0,0,0,0,0,3,252,0,14,14,0,28,7,0, + 60,3,128,56,3,192,120,3,192,120,1,224,248,1,224,240, + 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,120,1,224,120,3,192,56,3,192,60,3,128, + 28,7,0,14,14,0,3,252,0,19,32,96,24,2,0,7, + 129,0,15,225,0,31,255,0,24,254,0,16,28,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,3,252,0, + 14,14,0,28,7,0,60,3,128,56,3,192,120,3,192,120, + 1,224,248,1,224,240,1,224,240,1,224,240,1,224,240,1, + 224,240,1,224,240,1,224,240,1,224,120,1,224,120,3,192, + 56,3,192,60,3,128,28,7,0,14,14,0,3,252,0,19, + 32,96,24,2,0,14,7,0,31,15,128,31,15,128,31,15, + 128,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,3,252,0,14,14,0,28,7,0,60,3,128,56, + 3,192,120,3,192,120,1,224,248,1,224,240,1,224,240,1, + 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, + 120,1,224,120,3,192,56,3,192,60,3,128,28,7,0,14, + 14,0,3,252,0,41,31,186,45,2,253,0,0,30,0,0, + 0,0,0,63,0,0,0,0,0,63,0,0,0,0,0,63, + 0,0,0,0,0,63,0,0,0,0,0,30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,255,128,255,255,255,255,255,128,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,30,0,0,0,0,0,63,0,0,0,0,0,63, + 0,0,0,0,0,63,0,0,0,0,0,63,0,0,0,0, + 0,30,0,0,0,19,22,66,24,2,1,3,252,96,14,14, + 64,28,7,192,60,3,128,56,3,192,120,7,192,120,13,224, + 248,9,224,240,25,224,240,49,224,240,97,224,240,193,224,240, + 129,224,241,129,224,243,1,224,126,1,224,124,3,192,56,3, + 192,60,3,128,60,7,0,110,14,0,195,252,0,23,33,99, + 27,2,1,14,0,0,15,0,0,7,128,0,3,192,0,1, + 192,0,0,224,0,0,48,0,0,16,0,0,0,0,0,0, + 0,0,0,0,254,7,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,1,240,30,1,240,30,1,240,30,2,240,14,6,240, + 15,12,240,3,240,254,23,33,99,27,2,1,0,1,192,0, + 3,192,0,3,192,0,7,128,0,14,0,0,12,0,0,24, + 0,0,48,0,0,0,0,0,0,0,0,0,0,254,7,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,1,240,30,1,240, + 30,1,240,30,2,240,14,6,240,15,12,240,3,240,254,23, + 33,99,27,2,0,0,48,0,0,56,0,0,120,0,0,124, + 0,0,204,0,1,134,0,3,3,0,6,0,128,0,0,0, + 0,0,0,0,0,0,254,7,240,30,0,240,30,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,1,240,30,1,240,30,1,240,30,2,240,14, + 6,240,15,12,240,3,240,254,23,32,96,27,2,0,7,3, + 128,15,135,192,15,135,192,15,135,192,7,3,128,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,254,7,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,1,240,30,1,240,30, + 1,240,30,2,240,14,6,240,15,12,240,3,240,254,24,45, + 135,26,1,246,0,0,240,0,0,240,0,1,224,0,1,192, + 0,3,128,0,7,0,0,6,0,0,12,0,0,24,0,0, + 0,0,0,0,0,0,0,0,255,225,255,31,0,120,15,0, + 48,15,0,48,7,0,32,7,128,96,7,128,96,3,192,64, + 3,192,192,3,192,192,1,224,128,1,225,128,0,225,128,0, + 241,128,0,241,0,0,115,0,0,123,0,0,122,0,0,62, + 0,0,62,0,0,60,0,0,28,0,0,28,0,0,24,0, + 0,24,0,0,24,0,24,48,0,60,48,0,60,48,0,60, + 96,0,56,96,0,31,192,0,15,0,0,20,46,138,25,2, + 243,30,0,0,126,0,0,254,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,15,192,30,63,224,30,97,240,30,192,240,30,128, + 240,31,128,240,31,0,240,31,0,240,30,0,240,30,0,240, + 30,1,224,30,1,224,30,1,192,30,3,128,30,3,128,30, + 7,0,30,6,0,30,12,0,30,24,0,30,48,0,30,192, + 0,31,128,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,60,0,0,240,0,0,128,0,0,24,43,129,26,1, + 245,1,192,224,3,225,240,3,225,240,3,225,240,1,192,224, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 225,255,31,128,120,15,0,48,15,0,48,7,128,32,7,128, + 96,7,128,96,3,192,64,3,192,64,3,192,192,1,224,128, + 1,224,128,0,225,128,0,241,128,0,241,0,0,115,0,0, + 123,0,0,122,0,0,62,0,0,62,0,0,60,0,0,28, + 0,0,28,0,0,24,0,0,24,0,0,24,0,24,48,0, + 60,48,0,60,48,0,60,96,0,56,96,0,31,192,0,15, + 0,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 0, '1' Height: 34 + Calculated Max Values w=41 h=46 x= 6 y=14 dx=45 dy= 0 ascent=36 len=246 + Font Bounding box w=128 h=62 x=-40 y=-15 + Calculated Min Values x= 0 y=-10 dx= 0 dy= 0 + Pure Font ascent =34 descent= 0 + X Font ascent =34 descent= 0 + Max Font ascent =36 descent=-10 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr35n[1560] U8G_SECTION(".progmem.u8g_font_osr35n") = { + 0,128,62,216,241,34,0,0,0,0,42,57,0,36,246,34, + 0,18,20,60,25,4,14,0,224,0,1,224,0,1,224,0, + 1,224,0,96,195,128,240,135,192,248,143,192,124,159,128,7, + 248,0,1,224,0,1,224,0,6,184,0,124,143,128,248,135, + 192,240,195,192,97,193,128,1,224,0,1,224,0,1,224,0, + 0,224,0,41,41,246,45,2,248,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,255,255,255,255,255, + 128,255,255,255,255,255,128,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, + 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, + 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, + 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,7, + 15,15,14,4,247,120,252,252,254,126,6,6,6,4,12,8, + 24,48,96,64,12,3,6,18,3,11,255,240,255,240,255,240, + 6,5,5,14,4,1,120,252,252,252,120,16,46,92,22,3, + 246,0,3,0,3,0,3,0,6,0,6,0,6,0,12,0, + 12,0,12,0,24,0,24,0,24,0,48,0,48,0,48,0, + 48,0,96,0,96,0,96,0,192,0,192,0,192,1,128,1, + 128,1,128,3,0,3,0,3,0,6,0,6,0,6,0,12, + 0,12,0,12,0,24,0,24,0,24,0,48,0,48,0,48, + 0,96,0,96,0,96,0,96,0,192,0,192,0,23,34,102, + 28,2,0,0,124,0,1,199,0,7,1,128,6,0,192,14, + 0,224,28,0,112,60,0,120,60,0,120,56,0,56,120,0, + 60,120,0,60,120,0,60,248,0,62,248,0,62,248,0,62, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,120,0,60,120,0,60,120,0,60,120,0, + 60,60,0,120,60,0,120,28,0,112,28,0,112,14,0,224, + 7,1,192,3,131,128,0,254,0,17,34,102,28,6,0,0, + 64,0,0,64,0,0,192,0,0,192,0,1,192,0,7,192, + 0,255,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,255, + 255,128,255,255,128,21,34,102,28,4,0,3,252,0,14,31, + 0,16,7,192,32,3,224,96,1,240,64,1,240,192,0,240, + 192,0,248,224,0,248,252,0,248,254,0,248,126,0,248,126, + 0,240,62,1,240,0,1,224,0,3,192,0,3,128,0,7, + 0,0,14,0,0,28,0,0,112,0,0,224,0,1,192,0, + 3,0,0,6,0,16,12,0,16,24,0,16,16,0,16,48, + 0,48,48,0,112,127,255,240,127,255,240,127,255,240,127,255, + 240,21,34,102,28,4,0,3,248,0,14,31,0,24,7,128, + 48,3,192,112,3,192,120,1,224,124,1,224,126,1,224,126, + 1,224,60,1,224,0,1,224,0,3,192,0,3,192,0,7, + 128,0,14,0,15,248,0,31,143,0,14,3,128,0,3,224, + 0,1,224,0,1,240,0,0,248,0,0,248,0,0,248,60, + 0,248,126,0,248,254,0,248,254,0,248,252,1,240,224,1, + 240,224,3,224,96,3,192,48,15,0,15,254,0,23,34,102, + 28,3,0,0,1,128,0,1,128,0,3,128,0,7,128,0, + 7,128,0,15,128,0,31,128,0,31,128,0,55,128,0,119, + 128,0,231,128,0,199,128,1,199,128,3,135,128,3,7,128, + 6,7,128,14,7,128,12,7,128,24,7,128,56,7,128,48, + 7,128,96,7,128,224,7,128,255,255,254,0,7,128,0,7, + 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,3,255,254,3,255,254,21,35,105,28,4,0,48, + 0,64,60,3,192,63,255,128,63,255,0,63,252,0,55,240, + 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,0, + 48,0,0,48,0,0,51,254,0,60,7,128,56,3,192,48, + 1,224,48,1,240,48,1,240,0,0,240,0,0,248,0,0, + 248,0,0,248,0,0,248,60,0,248,126,0,248,254,0,248, + 254,0,240,252,1,240,248,1,224,240,1,224,112,3,192,112, + 7,128,60,31,0,15,252,0,21,34,102,28,4,0,0,126, + 0,1,193,128,3,128,192,7,0,64,14,0,224,28,1,224, + 28,3,224,56,3,224,56,3,192,120,0,0,120,0,0,120, + 0,0,120,0,0,240,126,0,241,255,128,243,131,192,247,1, + 224,254,1,240,252,0,240,252,0,240,248,0,248,248,0,120, + 248,0,120,248,0,120,120,0,120,120,0,120,120,0,248,120, + 0,240,56,0,240,60,0,224,28,1,224,14,3,192,7,7, + 128,1,254,0,19,34,102,28,5,0,255,255,224,255,255,224, + 255,255,224,255,255,224,224,0,224,192,0,64,128,0,64,128, + 0,192,128,0,128,128,1,128,0,1,128,0,3,0,0,2, + 0,0,6,0,0,12,0,0,24,0,0,24,0,0,48,0, + 0,112,0,0,112,0,0,224,0,0,224,0,1,224,0,1, + 224,0,3,224,0,3,224,0,3,224,0,7,240,0,7,240, + 0,7,240,0,7,240,0,7,240,0,3,240,0,3,224,0, + 23,34,102,28,3,0,1,254,0,7,135,128,30,1,192,56, + 0,224,120,0,112,112,0,112,240,0,56,240,0,56,240,0, + 56,240,0,56,248,0,56,252,0,112,126,0,112,127,192,224, + 63,241,192,31,255,0,7,255,128,7,255,224,12,63,248,56, + 7,252,112,1,252,112,0,126,224,0,62,224,0,62,224,0, + 62,224,0,30,224,0,30,224,0,28,96,0,60,112,0,56, + 48,0,120,24,0,240,14,1,192,3,255,0,21,34,102,28, + 4,0,1,248,0,7,142,0,14,3,0,28,1,128,56,1, + 192,120,1,224,120,0,224,120,0,240,240,0,240,240,0,240, + 240,0,240,240,0,248,240,0,248,248,0,248,120,1,248,120, + 1,248,120,3,248,60,7,120,30,14,120,15,252,120,3,240, + 120,0,0,240,0,0,240,0,0,240,0,0,240,60,0,224, + 124,0,224,124,1,192,124,1,192,120,3,128,112,3,0,56, + 6,0,28,28,0,15,248,0}; +/* + Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 + Copyright: Copyright (C) 2006-2008 Alexey Kryukov + Capital A Height: 35, '1' Height: 34 + Calculated Max Values w=49 h=46 x= 6 y=26 dx=52 dy= 0 ascent=37 len=252 + Font Bounding box w=128 h=62 x=-40 y=-15 + Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 + Pure Font ascent =35 descent=-10 + X Font ascent =36 descent=-10 + Max Font ascent =37 descent=-11 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_osr35r[10371] U8G_SECTION(".progmem.u8g_font_osr35r") = { + 0,128,62,216,241,35,12,236,30,116,32,127,246,37,245,36, + 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, + 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, + 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, + 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, + 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, + 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, + 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, + 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, + 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, + 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, + 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, + 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, + 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, + 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, + 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, + 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, + 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, + 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, + 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, + 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, + 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, + 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, + 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, + 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, + 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, + 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, + 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, + 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, + 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, + 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, + 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, + 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, + 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, + 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, + 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, + 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, + 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, + 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, + 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, + 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, + 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, + 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, + 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, + 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, + 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, + 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, + 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, + 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, + 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, + 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, + 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, + 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, + 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, + 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, + 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, + 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, + 0,224,0,1,224,0,1,224,0,1,224,0,96,195,128,240, + 135,192,248,143,192,124,159,128,7,248,0,1,224,0,1,224, + 0,6,184,0,124,143,128,248,135,192,240,195,192,97,193,128, + 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, + 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, + 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, + 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, + 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, + 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, + 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, + 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, + 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, + 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, + 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, + 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, + 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, + 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, + 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, + 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, + 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, + 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, + 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, + 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, + 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, + 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, + 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, + 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, + 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, + 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, + 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, + 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, + 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, + 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, + 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, + 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, + 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, + 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, + 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, + 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, + 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, + 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, + 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, + 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, + 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, + 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, + 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, + 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, + 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, + 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, + 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, + 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, + 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, + 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, + 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, + 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, + 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, + 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, + 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, + 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, + 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, + 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, + 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, + 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, + 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, + 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, + 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, + 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, + 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, + 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, + 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, + 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, + 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, + 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, + 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, + 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, + 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, + 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, + 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, + 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, + 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, + 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, + 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, + 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, + 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, + 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, + 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, + 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, + 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, + 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, + 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, + 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, + 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, + 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, + 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, + 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, + 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, + 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, + 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, + 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, + 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, + 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, + 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, + 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, + 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, + 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, + 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, + 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, + 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, + 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, + 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, + 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, + 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, + 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, + 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, + 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, + 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, + 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, + 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, + 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, + 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, + 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, + 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, + 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, + 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, + 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, + 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, + 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, + 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, + 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, + 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, + 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, + 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, + 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, + 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, + 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, + 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, + 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, + 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, + 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, + 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, + 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, + 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, + 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, + 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, + 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, + 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, + 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, + 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, + 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, + 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, + 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, + 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, + 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, + 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, + 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, + 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, + 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, + 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, + 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, + 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, + 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, + 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, + 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, + 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, + 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, + 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, + 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, + 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, + 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, + 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, + 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, + 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, + 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, + 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, + 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, + 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, + 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, + 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, + 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, + 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, + 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, + 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, + 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, + 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, + 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, + 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, + 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, + 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, + 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, + 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, + 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, + 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, + 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, + 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, + 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, + 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, + 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, + 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, + 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, + 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, + 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, + 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, + 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, + 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, + 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, + 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, + 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, + 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, + 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, + 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, + 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, + 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, + 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, + 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, + 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, + 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, + 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, + 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, + 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, + 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, + 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, + 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, + 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, + 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, + 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, + 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, + 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, + 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, + 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, + 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, + 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, + 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, + 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, + 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, + 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, + 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, + 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, + 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, + 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, + 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, + 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, + 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, + 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, + 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, + 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, + 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, + 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, + 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, + 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, + 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, + 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, + 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, + 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, + 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, + 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, + 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, + 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, + 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, + 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, + 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, + 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, + 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, + 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, + 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, + 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, + 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, + 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, + 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, + 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, + 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, + 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, + 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, + 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, + 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, + 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, + 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, + 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, + 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, + 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, + 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, + 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, + 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, + 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, + 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, + 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, + 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, + 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, + 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, + 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, + 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, + 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, + 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, + 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, + 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, + 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, + 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, + 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, + 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, + 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, + 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, + 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, + 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, + 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, + 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, + 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, + 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, + 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, + 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, + 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, + 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, + 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, + 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, + 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, + 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, + 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, + 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, + 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, + 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, + 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, + 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, + 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, + 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, + 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, + 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, + 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, + 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, + 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, + 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, + 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, + 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, + 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, + 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, + 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, + 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, + 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, + 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, + 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, + 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, + 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, + 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, + 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, + 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, + 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, + 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, + 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, + 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, + 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, + 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, + 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, + 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, + 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, + 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, + 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, + 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, + 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, + 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, + 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, + 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, + 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, + 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, + 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, + 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, + 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, + 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, + 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, + 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, + 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, + 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, + 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, + 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, + 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, + 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, + 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, + 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, + 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, + 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, + 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, + 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, + 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, + 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, + 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, + 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, + 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, + 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, + 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, + 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, + 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, + 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, + 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, + 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, + 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, + 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, + 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, + 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, + 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, + 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, + 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, + 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, + 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, + 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, + 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, + 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, + 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, + 48,240,15,32,112,15,64,120,15,128,120,15,128,120,15,0, + 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, + 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, + 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, + 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, + 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, + 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, + 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, + 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, + 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, + 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, + 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, + 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, + 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, + 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, + 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, + 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, + 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, + 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, + 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, + 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, + 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, + 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, + 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, + 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, + 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, + 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, + 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, + 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, + 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, + 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, + 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, + 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, + 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, + 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, + 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, + 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, + 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, + 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, + 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, + 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, + 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, + 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, + 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, + 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, + 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, + 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, + 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, + 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, + 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, + 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, + 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, + 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, + 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, + 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, + 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, + 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, + 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, + 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, + 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, + 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, + 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, + 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, + 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, + 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, + 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, + 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, + 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, + 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, + 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, + 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, + 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, + 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, + 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, + 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, + 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, + 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, + 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, + 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, + 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, + 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, + 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, + 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, + 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, + 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, + 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, + 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, + 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, + 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, + 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, + 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, + 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, + 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, + 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, + 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, + 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, + 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, + 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, + 31,128,255}; +/* + Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 + Capital A Height: 4, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 4 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 4 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_p01type[1163] U8G_SECTION(".progmem.u8g_font_p01type") = { + 0,5,6,0,254,4,1,81,2,129,32,255,254,4,254,5, + 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, + 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, + 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, + 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, + 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, + 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, + 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, + 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, + 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, + 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, + 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, + 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, + 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, + 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, + 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, + 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, + 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, + 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, + 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, + 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, + 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, + 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, + 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, + 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, + 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, + 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, + 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, + 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, + 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, + 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, + 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, + 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, + 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, + 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, + 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, + 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, + 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, + 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, + 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, + 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, + 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, + 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, + 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, + 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, + 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, + 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, + 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, + 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, + 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, + 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, + 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, + 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, + 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, + 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, + 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, + 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, + 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, + 192,4,2,2,5,0,1,80,160,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,1,5,5,2,0, + 255,128,0,128,128,128,255,255,255,255,1,5,5,3,1,255, + 128,128,0,128,128,255,255,255,255,5,5,5,6,0,255,40, + 80,160,80,40,3,2,2,4,0,0,224,32,3,1,1,4, + 0,1,224,255,255,255,3,5,5,4,0,255,64,224,64,0, + 224,255,255,255,255,255,1,1,1,2,0,1,128,255,255,255, + 5,5,5,6,0,255,160,80,40,80,160,255,255,255,4,5, + 5,5,0,255,32,0,96,128,112,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 3,3,3,4,0,0,160,64,160,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,3,5,5,4,0,255,64,0, + 224,0,64,255,255,255,255,255,255,255,255}; +/* + Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 4 h= 5 x= 0 y= 1 dx= 5 dy= 0 ascent= 4 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 4 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_p01typen[177] U8G_SECTION(".progmem.u8g_font_p01typen") = { + 0,5,6,0,254,5,0,0,0,0,42,57,0,4,255,5, + 0,3,3,3,4,0,0,160,64,160,3,3,3,4,0,0, + 64,224,64,2,2,2,3,0,255,64,128,3,1,1,4,0, + 1,224,1,1,1,2,0,0,128,4,4,4,5,0,255,16, + 32,64,128,3,5,5,4,0,255,96,160,160,160,192,1,5, + 5,2,0,255,128,128,128,128,128,3,5,5,4,0,255,192, + 32,224,128,96,3,5,5,4,0,255,192,32,192,32,192,3, + 5,5,4,0,255,160,160,224,32,32,3,5,5,4,0,255, + 96,128,224,32,192,3,5,5,4,0,255,96,128,224,160,192, + 3,5,5,4,0,255,224,32,32,64,64,3,5,5,4,0, + 255,96,160,224,160,192,3,5,5,4,0,255,96,160,224,32, + 192}; +/* + Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 + Copyright: Copyright Patrick Lauke 2012 + Capital A Height: 4, '1' Height: 5 + Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 + Font Bounding box w= 5 h= 6 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 4 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 4 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_p01typer[938] U8G_SECTION(".progmem.u8g_font_p01typer") = { + 0,5,6,0,254,4,1,81,2,129,32,127,254,4,254,5, + 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, + 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, + 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, + 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, + 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, + 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, + 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, + 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, + 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, + 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, + 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, + 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, + 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, + 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, + 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, + 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, + 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, + 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, + 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, + 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, + 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, + 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, + 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, + 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, + 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, + 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, + 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, + 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, + 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, + 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, + 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, + 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, + 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, + 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, + 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, + 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, + 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, + 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, + 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, + 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, + 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, + 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, + 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, + 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, + 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, + 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, + 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, + 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, + 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, + 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, + 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, + 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, + 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, + 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, + 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, + 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, + 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, + 192,4,2,2,5,0,1,80,160,255}; +/* + Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: Copyright rdonaghy 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 6 h= 8 x=-1 y=-2 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 6 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[1140] U8G_SECTION(".progmem.u8g_font_pixelle_micro") = { + 0,6,8,255,254,5,1,97,2,188,32,255,254,6,254,6, + 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, + 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, + 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, + 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, + 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, + 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, + 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, + 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, + 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, + 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, + 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, + 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, + 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, + 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, + 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, + 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, + 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, + 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, + 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, + 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, + 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, + 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, + 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, + 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, + 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, + 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, + 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, + 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, + 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, + 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, + 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, + 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, + 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, + 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, + 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, + 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, + 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, + 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, + 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, + 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, + 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, + 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, + 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, + 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, + 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, + 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, + 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, + 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, + 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, + 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, + 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, + 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, + 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, + 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, + 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, + 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, + 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, + 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, + 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, + 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, + 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, + 1,80,160,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255}; +/* + Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: Copyright rdonaghy 2008 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 3 h= 6 x= 0 y= 1 dx= 4 dy= 0 ascent= 6 len= 6 + Font Bounding box w= 6 h= 8 x=-1 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 6 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[180] U8G_SECTION(".progmem.u8g_font_pixelle_micron") = { + 0,6,8,255,254,5,0,0,0,0,42,57,0,6,255,5, + 0,3,4,4,4,0,0,64,224,64,160,3,3,3,4,0, + 0,64,224,64,1,2,2,2,0,255,128,128,3,1,1,4, + 0,1,224,1,1,1,2,0,0,128,3,6,6,4,0,0, + 32,32,64,64,128,128,3,5,5,4,0,0,64,160,224,160, + 64,3,5,5,4,0,0,192,64,64,64,224,3,5,5,4, + 0,0,64,160,32,64,224,3,5,5,4,0,0,192,32,64, + 32,192,3,5,5,4,0,0,160,160,224,32,32,3,5,5, + 4,0,0,224,128,224,32,192,3,5,5,4,0,0,64,160, + 192,160,64,3,5,5,4,0,0,224,32,64,64,128,3,5, + 5,4,0,0,64,160,64,160,64,3,5,5,4,0,0,64, + 160,96,160,64}; +/* + Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 + Copyright: Copyright rdonaghy 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 6 h= 8 x=-1 y=-2 + Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 6 descent=-2 + Max Font ascent = 6 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[1012] U8G_SECTION(".progmem.u8g_font_pixelle_micror") = { + 0,6,8,255,254,5,1,97,2,188,32,127,254,6,254,6, + 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, + 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, + 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, + 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, + 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, + 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, + 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, + 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, + 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, + 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, + 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, + 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, + 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, + 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, + 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, + 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, + 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, + 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, + 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, + 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, + 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, + 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, + 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, + 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, + 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, + 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, + 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, + 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, + 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, + 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, + 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, + 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, + 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, + 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, + 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, + 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, + 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, + 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, + 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, + 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, + 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, + 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, + 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, + 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, + 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, + 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, + 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, + 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, + 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, + 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, + 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, + 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, + 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, + 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, + 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, + 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, + 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, + 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, + 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, + 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, + 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, + 1,80,160,255}; +/* + Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 + Copyright: Copyright BMoser 2008 + Capital A Height: 6, '1' Height: 5 + Calculated Max Values w= 7 h= 8 x= 0 y= 6 dx= 8 dy= 0 ascent=10 len= 8 + Font Bounding box w=10 h=10 x=-1 y= 0 + Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 + Pure Font ascent = 6 descent= 1 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[1376] U8G_SECTION(".progmem.u8g_font_robot_de_niro") = { + 0,10,10,255,0,6,1,97,2,193,32,255,1,10,0,9, + 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, + 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, + 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, + 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, + 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, + 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, + 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, + 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, + 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, + 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, + 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, + 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, + 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, + 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, + 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, + 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, + 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, + 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, + 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, + 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, + 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, + 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, + 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, + 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, + 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, + 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, + 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, + 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, + 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, + 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, + 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, + 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, + 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, + 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, + 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, + 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, + 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, + 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, + 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, + 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, + 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, + 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, + 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, + 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, + 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, + 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, + 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, + 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, + 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, + 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, + 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, + 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, + 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, + 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, + 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, + 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, + 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, + 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, + 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, + 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, + 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, + 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, + 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, + 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,4,7,7,5,0,2,96,144,64,224,64,128, + 240,255,255,255,4,7,7,5,0,2,96,128,96,144,96,16, + 96,255,7,8,8,8,0,2,124,130,154,170,162,154,130,124, + 255,255,255,255,7,8,8,8,0,2,124,130,186,170,178,170, + 130,124,255,255,255,255,255,255,255,6,5,5,7,0,3,108, + 232,104,40,40,255,255,255,255,255,255,255,255,255,255,255,255, + 255,4,8,8,4,255,2,80,0,48,80,112,80,80,128,255, + 255,3,7,7,4,0,1,96,128,128,160,96,64,32,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,3,7,7,4, + 0,3,160,0,96,160,160,160,64,4,4,4,5,0,4,144, + 96,96,144,255,255,255,255,4,7,7,5,0,3,80,0,160, + 160,160,160,80,255,255,4,7,7,4,255,1,32,80,96,80, + 96,64,128,255,255,255,255,4,6,6,5,0,3,80,0,96, + 160,160,80,255,255,255,4,6,6,5,0,3,96,0,96,160, + 208,96,4,6,6,5,0,3,96,0,96,160,208,96,4,7, + 7,5,0,3,64,160,0,96,160,208,96,255,255,255,255,255, + 255,255,255,255,255,255,3,6,6,4,0,3,160,0,96,160, + 160,192,5,5,5,6,0,3,32,0,248,0,32,255,255,255, + 255,4,6,6,5,0,3,80,0,160,160,160,80,255,255,255 + }; +/* + Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 + Copyright: Copyright BMoser 2008 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 4 h= 5 x= 0 y= 6 dx= 5 dy= 0 ascent= 9 len= 5 + Font Bounding box w=10 h=10 x=-1 y= 0 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 9 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[178] U8G_SECTION(".progmem.u8g_font_robot_de_niron") = { + 0,10,10,255,0,5,0,0,0,0,42,57,0,9,0,5, + 0,3,3,3,4,0,6,160,64,160,3,3,3,4,0,4, + 64,224,64,2,2,2,3,0,2,64,128,3,1,1,4,0, + 5,224,1,1,1,2,0,3,128,3,5,5,4,0,3,32, + 32,64,128,128,3,5,5,4,0,3,64,160,160,160,64,3, + 5,5,4,0,3,192,64,64,64,224,3,5,5,4,0,3, + 192,32,96,128,224,3,5,5,4,0,3,192,32,224,32,224, + 3,5,5,4,0,3,160,160,224,32,32,3,5,5,4,0, + 3,96,128,224,32,224,3,5,5,4,0,3,96,128,224,160, + 64,4,5,5,5,0,3,224,32,112,32,32,3,5,5,4, + 0,3,96,160,224,160,192,3,5,5,4,0,3,96,160,224, + 32,192}; +/* + Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 + Copyright: Copyright BMoser 2008 + Capital A Height: 6, '1' Height: 5 + Calculated Max Values w= 6 h= 7 x= 0 y= 6 dx= 7 dy= 0 ascent=10 len= 7 + Font Bounding box w=10 h=10 x=-1 y= 0 + Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 + Pure Font ascent = 6 descent= 1 + X Font ascent = 9 descent= 0 + Max Font ascent =10 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[1041] U8G_SECTION(".progmem.u8g_font_robot_de_niror") = { + 0,10,10,255,0,6,1,97,2,193,32,127,1,10,0,9, + 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, + 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, + 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, + 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, + 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, + 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, + 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, + 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, + 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, + 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, + 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, + 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, + 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, + 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, + 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, + 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, + 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, + 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, + 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, + 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, + 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, + 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, + 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, + 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, + 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, + 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, + 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, + 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, + 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, + 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, + 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, + 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, + 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, + 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, + 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, + 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, + 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, + 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, + 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, + 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, + 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, + 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, + 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, + 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, + 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, + 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, + 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, + 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, + 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, + 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, + 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, + 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, + 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, + 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, + 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, + 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, + 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, + 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, + 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, + 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, + 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, + 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, + 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, + 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, + 255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w=10 h=15 x= 3 y= 9 dx=11 dy= 0 ascent=11 len=15 + Font Bounding box w=11 h=15 x=-1 y=-4 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent =11 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb08[2612] U8G_SECTION(".progmem.u8g_font_symb08") = { + 0,11,15,255,252,7,1,152,3,60,32,255,254,11,252,7, + 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, + 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, + 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, + 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, + 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, + 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, + 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, + 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, + 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, + 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, + 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, + 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, + 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, + 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, + 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, + 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, + 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, + 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, + 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, + 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, + 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, + 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, + 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, + 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, + 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, + 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, + 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, + 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, + 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, + 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, + 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, + 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, + 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, + 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, + 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, + 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, + 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, + 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, + 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, + 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, + 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, + 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, + 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, + 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, + 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, + 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, + 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, + 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, + 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, + 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, + 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, + 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, + 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, + 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, + 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, + 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, + 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, + 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, + 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, + 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, + 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, + 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, + 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, + 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, + 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, + 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, + 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, + 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, + 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, + 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, + 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, + 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, + 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, + 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, + 64,128,5,2,2,6,0,2,104,176,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,6,7,7,7, + 0,0,140,212,112,32,32,32,112,3,3,3,3,0,5,32, + 64,128,5,7,7,6,0,0,8,48,192,48,8,0,248,4, + 7,7,3,255,0,16,16,32,32,64,64,128,7,3,3,7, + 0,1,108,146,108,5,9,9,5,0,254,24,32,112,32,32, + 32,32,32,192,5,5,5,7,1,0,112,112,248,248,32,5, + 5,5,7,1,0,32,112,248,112,32,5,5,5,7,1,0, + 216,248,248,112,32,5,5,5,7,1,0,32,112,248,248,32, + 10,5,10,10,0,0,33,0,64,128,255,192,64,128,33,0, + 10,5,10,10,0,0,32,0,64,0,255,192,64,0,32,0, + 5,14,14,6,0,252,32,112,168,32,32,32,32,32,32,32, + 32,32,32,32,10,5,10,10,0,0,1,0,0,128,255,192, + 0,128,1,0,5,13,13,6,0,254,32,32,32,32,32,32, + 32,32,32,32,168,112,32,3,4,4,4,0,3,64,160,160, + 64,5,7,7,6,0,0,32,32,248,32,32,0,248,5,3, + 3,4,0,5,40,80,160,5,7,7,6,0,0,128,96,24, + 96,128,0,248,5,5,5,6,0,0,136,80,32,80,136,6, + 3,3,7,0,1,108,144,108,4,8,8,5,0,0,96,144, + 16,16,112,144,144,96,4,3,3,5,0,1,96,240,96,5, + 5,5,6,0,0,32,0,248,0,32,5,5,5,6,0,0, + 16,248,32,248,64,5,5,5,6,0,1,248,0,248,0,248, + 5,5,5,6,0,0,104,176,0,104,176,7,1,1,9,1, + 0,146,1,15,15,6,2,252,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,10,1,2,10,0,2,255,192,6, + 6,6,7,0,0,4,4,4,68,252,64,7,7,7,8,0, + 0,204,102,52,92,76,38,98,6,9,9,7,0,255,124,132, + 200,24,12,4,68,232,48,8,8,8,8,0,0,108,146,146, + 92,20,18,82,163,7,8,8,9,1,254,16,36,74,82,106, + 108,160,96,7,7,7,8,0,0,56,68,170,146,170,68,56, + 7,7,7,8,0,0,56,68,146,186,146,68,56,7,9,9, + 8,0,255,2,60,76,138,146,162,100,120,128,7,5,5,8, + 0,0,56,68,130,130,130,7,5,5,8,0,0,130,130,130, + 68,56,7,5,5,7,0,0,248,4,2,4,248,7,7,7, + 7,0,254,248,4,2,4,248,0,254,7,7,7,7,0,255, + 4,62,72,136,80,62,32,7,5,5,7,0,0,62,64,128, + 64,62,7,7,7,7,0,254,62,64,128,64,62,0,254,5, + 5,5,7,1,0,120,128,248,128,120,5,7,7,7,1,255, + 16,120,144,248,160,120,64,7,7,7,8,0,0,2,4,8, + 16,32,64,254,6,7,7,7,0,0,252,132,132,72,72,48, + 48,7,8,8,8,0,255,56,68,250,170,178,174,68,56,7, + 8,8,8,0,255,56,68,154,170,162,154,68,56,10,5,10, + 10,0,2,253,0,170,128,42,128,42,128,122,192,8,9,9, + 9,0,255,255,66,66,66,66,66,66,66,231,6,10,10,6, + 0,0,4,4,8,8,72,208,80,80,32,32,1,1,1,3, + 1,2,128,6,3,3,7,0,0,252,4,4,5,5,5,6, + 0,0,32,80,80,136,136,5,5,5,6,0,0,136,136,80, + 80,32,10,5,10,11,0,0,33,0,127,128,128,64,127,128, + 33,0,9,5,10,10,0,0,32,0,127,128,128,0,127,128, + 32,0,5,10,10,6,0,0,32,112,216,80,80,80,80,80, + 80,80,9,5,10,10,0,0,2,0,255,0,0,128,255,0, + 2,0,5,10,10,6,0,0,80,80,80,80,80,80,80,216, + 80,32,7,7,7,7,0,0,16,40,68,198,68,40,16,3, + 9,9,3,0,254,32,32,64,64,128,64,64,32,32,7,8, + 8,8,0,255,56,68,186,170,178,170,68,56,7,8,8,8, + 0,255,56,68,154,162,162,154,68,56,8,5,5,9,0,2, + 250,85,85,85,85,6,9,9,7,0,255,252,132,64,32,16, + 32,64,132,252,3,14,14,4,1,252,32,64,64,128,128,128, + 128,128,128,128,128,128,128,128,1,15,15,4,1,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,3,15,15, + 4,1,252,128,128,128,128,128,128,128,128,128,128,128,128,64, + 64,32,3,14,14,4,1,252,224,128,128,128,128,128,128,128, + 128,128,128,128,128,128,1,15,15,4,1,252,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,3,13,13,4,1, + 254,128,128,128,128,128,128,128,128,128,128,128,128,224,3,14, + 14,5,2,252,96,128,128,128,128,128,128,128,128,128,128,128, + 128,128,3,15,15,5,0,252,32,32,32,32,32,64,128,64, + 32,32,32,32,32,32,32,3,13,13,5,2,254,128,128,128, + 128,128,128,128,128,128,128,128,128,96,1,15,15,5,2,252, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,255, + 3,9,9,3,0,254,128,128,64,64,32,64,64,128,128,3, + 12,12,3,0,254,32,64,64,64,64,64,64,64,64,64,64, + 128,4,14,14,7,3,252,48,80,128,128,128,128,128,128,128, + 128,128,128,128,128,1,15,15,7,0,252,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,4,13,13,7,0,254, + 16,16,16,16,16,16,16,16,16,16,16,160,192,3,14,14, + 4,0,252,128,64,64,32,32,32,32,32,32,32,32,32,32, + 32,1,15,15,4,2,252,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,3,15,15,4,0,252,32,32,32,32, + 32,32,32,32,32,32,32,32,64,64,128,3,14,14,4,0, + 252,224,32,32,32,32,32,32,32,32,32,32,32,32,32,1, + 15,15,4,2,252,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,3,13,13,4,0,254,32,32,32,32,32,32, + 32,32,32,32,32,32,224,3,14,14,5,0,252,192,32,32, + 32,32,32,32,32,32,32,32,32,32,32,3,15,15,5,2, + 252,128,128,128,128,128,64,32,64,128,128,128,128,128,128,128, + 3,13,13,5,0,254,32,32,32,32,32,32,32,32,32,32, + 32,32,192,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 9 h=10 x= 1 y= 9 dx=10 dy= 0 ascent=10 len=14 + Font Bounding box w=11 h=15 x=-1 y=-4 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent =10 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb08r[1211] U8G_SECTION(".progmem.u8g_font_symb08r") = { + 0,11,15,255,252,7,1,152,3,60,32,127,254,10,253,7, + 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, + 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, + 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, + 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, + 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, + 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, + 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, + 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, + 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, + 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, + 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, + 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, + 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, + 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, + 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, + 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, + 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, + 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, + 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, + 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, + 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, + 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, + 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, + 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, + 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, + 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, + 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, + 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, + 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, + 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, + 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, + 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, + 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, + 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, + 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, + 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, + 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, + 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, + 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, + 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, + 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, + 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, + 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, + 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, + 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, + 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, + 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, + 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, + 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, + 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, + 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, + 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, + 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, + 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, + 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, + 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, + 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, + 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, + 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, + 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, + 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, + 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, + 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, + 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, + 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, + 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, + 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, + 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, + 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, + 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, + 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, + 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, + 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, + 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, + 64,128,5,2,2,6,0,2,104,176,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=15 h=15 x= 7 y=11 dx=15 dy= 0 ascent=12 len=24 + Font Bounding box w=16 h=15 x=-1 y=-3 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb10[3433] U8G_SECTION(".progmem.u8g_font_symb10") = { + 0,16,15,255,253,10,2,6,4,121,32,255,253,12,253,10, + 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, + 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, + 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, + 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, + 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, + 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, + 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, + 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, + 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, + 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, + 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, + 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, + 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, + 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, + 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, + 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, + 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, + 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, + 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, + 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, + 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, + 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, + 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, + 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, + 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, + 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, + 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, + 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, + 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, + 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, + 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, + 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, + 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, + 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, + 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, + 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, + 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, + 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, + 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, + 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, + 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, + 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, + 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, + 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, + 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, + 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, + 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, + 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, + 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, + 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, + 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, + 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, + 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, + 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, + 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, + 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, + 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, + 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, + 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, + 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, + 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, + 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, + 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, + 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, + 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, + 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, + 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, + 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, + 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, + 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, + 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, + 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, + 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, + 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, + 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, + 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, + 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, + 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, + 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, + 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, + 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, + 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, + 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, + 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, + 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, + 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, + 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, + 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, + 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, + 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, + 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, + 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, + 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, + 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, + 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, + 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, + 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, + 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, + 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, + 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,8,10,10,9,0,0,198,105,43,16,16,16,16,16, + 16,56,4,3,3,4,0,7,48,96,128,7,9,9,8,0, + 0,2,12,48,192,48,12,2,0,254,5,10,10,4,255,0, + 8,8,16,16,32,32,64,64,128,128,9,4,8,10,0,2, + 119,0,152,128,140,128,119,0,7,13,13,7,0,253,6,10, + 8,8,60,16,16,16,32,32,32,160,192,9,7,14,11,1, + 0,28,0,28,0,28,0,235,128,255,128,235,128,8,0,7, + 7,7,11,2,0,16,56,124,254,124,56,16,7,7,7,11, + 2,0,108,254,254,254,124,56,16,9,7,14,11,1,0,8, + 0,28,0,62,0,127,0,255,128,107,0,8,0,13,7,14, + 15,1,0,16,64,32,32,64,16,255,248,64,16,32,32,16, + 64,14,7,14,14,0,0,16,0,32,0,64,0,255,252,64, + 0,32,0,16,0,7,15,15,9,1,253,16,56,84,146,16, + 16,16,16,16,16,16,16,16,16,16,14,7,14,14,0,0, + 0,32,0,16,0,8,255,252,0,8,0,16,0,32,7,15, + 15,9,1,253,16,16,16,16,16,16,16,16,16,16,16,146, + 84,56,16,4,4,4,6,1,6,96,144,144,96,7,9,9, + 8,0,0,16,16,16,254,16,16,16,0,254,7,3,3,6, + 0,7,54,108,144,7,9,9,8,0,0,128,96,24,6,24, + 96,128,0,254,7,7,7,8,0,0,130,68,40,16,40,68, + 130,8,4,4,10,0,2,119,136,136,119,6,11,11,7,0, + 0,112,136,4,4,4,116,204,132,132,200,112,5,5,5,7, + 1,1,112,248,248,248,112,7,7,7,8,0,0,16,16,0, + 254,0,16,16,7,7,7,8,0,0,4,8,254,16,254,32, + 64,7,5,5,8,0,1,254,0,254,0,254,7,5,5,8, + 0,2,114,156,0,114,156,11,2,4,15,2,0,132,32,132, + 32,1,15,15,9,4,253,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,15,1,2,15,0,3,255,254,8,9, + 9,10,0,0,1,1,1,1,1,1,65,255,64,8,10,10, + 12,2,0,136,206,102,36,116,156,140,70,99,225,8,12,12, + 10,1,255,63,97,66,70,36,6,3,1,97,241,26,12,10, + 11,22,12,1,0,115,0,157,128,137,128,139,0,206,0,106, + 0,41,0,9,0,9,0,105,0,176,192,9,12,24,12,1, + 253,16,0,35,0,69,128,72,128,144,128,212,128,105,0,107, + 0,182,0,144,0,144,0,96,0,9,9,18,11,1,0,28, + 0,99,0,99,0,148,128,136,128,148,128,99,0,99,0,28, + 0,9,9,18,11,1,0,28,0,99,0,73,0,136,128,190, + 128,136,128,73,0,99,0,28,0,11,11,22,12,0,0,31, + 32,96,192,64,192,129,32,130,32,132,32,136,32,144,32,96, + 64,96,192,159,0,10,7,14,10,0,0,30,0,97,128,64, + 128,128,64,128,64,128,64,128,64,10,7,14,10,0,0,128, + 64,128,64,128,64,128,64,64,128,97,128,30,0,9,7,14, + 10,0,0,254,0,1,0,0,128,0,128,0,128,1,0,254, + 0,9,9,18,10,1,254,254,0,1,0,0,128,0,128,0, + 128,1,0,254,0,0,0,255,128,9,9,18,10,0,255,1, + 0,63,128,66,0,130,0,132,0,132,0,72,0,63,128,16, + 0,9,7,14,10,1,0,63,128,64,0,128,0,128,0,128, + 0,64,0,63,128,9,9,18,10,0,254,63,128,64,0,128, + 0,128,0,128,0,64,0,63,128,0,0,255,128,7,7,7, + 10,1,0,62,64,128,254,128,64,62,7,9,9,10,0,255, + 4,62,72,144,254,144,96,62,64,11,10,20,11,0,0,0, + 64,0,128,1,0,2,0,4,0,8,0,16,0,32,0,64, + 0,255,224,9,11,22,10,0,0,255,128,128,128,65,0,65, + 0,34,0,34,0,34,0,20,0,20,0,8,0,8,0,10, + 10,20,12,1,0,30,0,33,0,124,128,146,64,146,64,156, + 64,146,64,121,128,33,0,30,0,10,10,20,12,1,0,30, + 0,33,0,78,128,146,64,144,64,144,64,146,64,76,128,33, + 0,30,0,11,6,12,11,0,4,250,128,170,128,38,192,37, + 64,37,64,118,224,10,12,24,12,1,255,255,192,64,128,64, + 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,64, + 128,225,192,8,12,12,8,0,0,1,1,1,2,2,98,164, + 36,20,20,8,8,1,2,2,4,1,3,128,128,9,5,10, + 10,0,0,255,128,0,128,0,128,0,128,0,128,8,7,7, + 9,0,0,24,24,36,36,66,66,129,8,7,7,9,0,0, + 129,66,66,36,36,24,24,13,7,14,15,1,0,16,64,32, + 32,127,240,192,24,127,240,32,32,16,64,13,7,14,14,0, + 0,16,0,32,0,127,248,192,0,127,248,32,0,16,0,7, + 12,12,9,1,0,16,56,108,170,40,40,40,40,40,40,40, + 40,13,7,14,14,1,0,0,64,0,32,255,240,0,24,255, + 240,0,32,0,64,7,12,12,9,1,0,40,40,40,40,40, + 40,40,40,170,108,56,16,7,11,11,7,0,0,16,40,40, + 68,68,130,68,68,40,40,16,4,15,15,5,0,253,16,32, + 32,64,64,64,128,128,128,64,64,64,32,32,16,10,10,20, + 12,1,0,30,0,33,0,92,128,146,64,146,64,156,64,146, + 64,82,128,33,0,30,0,10,10,20,12,1,0,30,0,33, + 0,76,128,146,64,144,64,144,64,146,64,76,128,33,0,30, + 0,10,6,12,11,0,4,250,128,34,128,38,192,37,64,37, + 64,36,64,9,12,24,10,0,255,255,0,129,0,64,0,32, + 0,16,0,8,0,8,0,16,0,32,0,64,0,128,128,255, + 128,4,15,15,6,1,253,16,32,64,64,128,128,128,128,128, + 128,128,128,128,128,128,1,15,15,6,1,253,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, + 253,128,128,128,128,128,128,128,128,128,128,128,64,64,32,16, + 4,15,15,6,1,253,240,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,1,15,15,6,1,253,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,4,15,15,6,1,253, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,240,4, + 15,15,7,3,253,48,64,128,128,128,128,128,128,128,128,128, + 128,128,128,128,3,15,15,7,1,253,32,32,32,32,32,32, + 64,128,64,32,32,32,32,32,32,4,15,15,7,3,253,128, + 128,128,128,128,128,128,128,128,128,128,128,128,64,48,1,15, + 15,7,3,253,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,255,4,15,15,5,1,253,128,64,64,32,32,32, + 16,16,16,32,32,32,64,64,128,5,13,13,4,0,255,24, + 40,32,32,32,32,32,32,32,32,32,160,192,5,15,15,10, + 5,253,56,88,64,128,128,128,128,128,128,128,128,128,128,128, + 128,1,15,15,10,5,253,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,5,15,15,10,1,253,8,8,8,8, + 8,8,8,8,8,8,8,8,16,208,224,4,15,15,6,1, + 253,128,64,32,32,16,16,16,16,16,16,16,16,16,16,16, + 1,15,15,6,4,253,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,4,15,15,6,1,253,16,16,16,16,16, + 16,16,16,16,16,16,32,32,64,128,4,15,15,6,1,253, + 240,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1, + 15,15,6,4,253,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,4,15,15,6,1,253,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,240,4,15,15,7,0,253,192, + 32,16,16,16,16,16,16,16,16,16,16,16,16,16,3,15, + 15,7,3,253,128,128,128,128,128,128,64,32,64,128,128,128, + 128,128,128,4,15,15,7,0,253,16,16,16,16,16,16,16, + 16,16,16,16,16,16,32,192,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=11 h=15 x= 7 y=11 dx=13 dy= 0 ascent=12 len=20 + Font Bounding box w=16 h=15 x=-1 y=-3 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =12 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb10r[1633] U8G_SECTION(".progmem.u8g_font_symb10r") = { + 0,16,15,255,253,10,2,6,4,121,32,127,253,12,253,10, + 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, + 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, + 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, + 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, + 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, + 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, + 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, + 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, + 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, + 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, + 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, + 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, + 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, + 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, + 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, + 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, + 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, + 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, + 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, + 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, + 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, + 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, + 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, + 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, + 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, + 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, + 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, + 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, + 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, + 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, + 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, + 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, + 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, + 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, + 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, + 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, + 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, + 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, + 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, + 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, + 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, + 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, + 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, + 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, + 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, + 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, + 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, + 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, + 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, + 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, + 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, + 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, + 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, + 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, + 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, + 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, + 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, + 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, + 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, + 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, + 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, + 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, + 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, + 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, + 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, + 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, + 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, + 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, + 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, + 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, + 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, + 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, + 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, + 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, + 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, + 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, + 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, + 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, + 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, + 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, + 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, + 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, + 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, + 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, + 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, + 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, + 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, + 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, + 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, + 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, + 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, + 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, + 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, + 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, + 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, + 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, + 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, + 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, + 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, + 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, + 255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=16 h=17 x= 7 y=12 dx=17 dy= 0 ascent=13 len=30 + Font Bounding box w=20 h=17 x=-3 y=-4 + Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb12[4136] U8G_SECTION(".progmem.u8g_font_symb12") = { + 0,20,17,253,252,11,2,70,5,85,32,255,252,13,252,12, + 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, + 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, + 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, + 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, + 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, + 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, + 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, + 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, + 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, + 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, + 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, + 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, + 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, + 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, + 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, + 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, + 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, + 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, + 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, + 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, + 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, + 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, + 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, + 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, + 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, + 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, + 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, + 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, + 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, + 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, + 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, + 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, + 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, + 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, + 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, + 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, + 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, + 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, + 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, + 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, + 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, + 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, + 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, + 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, + 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, + 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, + 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, + 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, + 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, + 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, + 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, + 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, + 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, + 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, + 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, + 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, + 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, + 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, + 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, + 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, + 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, + 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, + 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, + 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, + 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, + 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, + 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, + 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, + 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, + 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, + 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, + 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, + 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, + 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, + 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, + 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, + 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, + 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, + 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, + 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, + 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, + 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, + 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, + 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, + 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, + 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, + 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, + 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, + 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, + 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, + 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, + 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, + 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, + 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, + 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, + 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, + 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, + 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, + 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, + 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, + 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, + 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, + 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, + 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, + 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, + 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, + 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, + 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, + 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, + 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, + 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, + 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, + 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, + 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, + 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, + 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, + 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,10,11,22,10,255,0,225,128,18,192,10,192,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,30,0,3,4, + 4,4,1,8,96,96,192,128,8,11,11,9,0,0,1,6, + 24,96,128,96,24,6,1,0,255,8,11,11,3,253,0,1, + 2,2,4,8,16,16,32,64,64,128,11,5,10,12,0,2, + 113,192,138,32,132,32,138,32,113,192,7,15,15,8,0,253, + 6,10,8,8,8,126,16,16,16,16,32,32,32,160,192,9, + 10,20,12,1,255,28,0,62,0,62,0,28,0,107,0,255, + 128,255,128,107,0,8,0,28,0,7,9,9,12,2,0,16, + 56,124,124,254,124,124,56,16,8,9,9,12,2,0,102,255, + 255,255,126,60,60,24,24,9,10,20,12,2,255,8,0,28, + 0,28,0,62,0,127,0,127,0,255,128,107,0,8,0,28, + 0,15,9,18,17,0,0,8,32,16,16,32,8,64,4,255, + 254,64,4,32,8,16,16,8,32,16,9,18,16,0,0,8, + 0,16,0,32,0,64,0,255,255,64,0,32,0,16,0,8, + 0,9,15,30,10,0,254,8,0,28,0,42,0,73,0,136, + 128,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,15,9,18,16,0,0,0,32,0,16,0, + 8,0,4,255,254,0,4,0,8,0,16,0,32,9,15,30, + 10,0,254,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,8,0,8,0,136,128,73,0,42,0,28,0,8, + 0,5,5,5,6,0,6,112,136,136,136,112,9,11,22,9, + 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, + 8,0,8,0,0,0,255,128,6,4,4,7,1,8,108,108, + 216,144,8,11,11,9,0,0,128,96,24,6,1,6,24,96, + 128,0,255,9,9,18,9,0,0,128,128,65,0,34,0,20, + 0,8,0,20,0,34,0,65,0,128,128,10,5,10,11,0, + 2,113,192,138,0,132,0,138,0,113,192,7,14,14,8,0, + 255,120,196,4,2,2,2,58,102,194,194,130,196,68,56,6, + 6,6,8,1,2,120,252,252,252,252,120,8,7,7,9,0, + 1,24,24,0,255,0,24,24,9,10,20,9,0,255,2,0, + 2,0,4,0,255,128,8,0,8,0,255,128,16,0,32,0, + 32,0,8,7,7,9,0,1,255,0,0,255,0,0,255,8, + 5,5,9,0,2,113,142,0,113,142,13,3,6,16,1,0, + 66,16,231,56,66,16,1,17,17,10,4,252,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,16,1,2, + 16,0,4,255,255,9,11,22,10,0,255,0,128,0,128,0, + 128,0,128,0,128,0,128,32,128,96,128,255,128,96,0,32, + 0,9,11,22,13,2,0,68,0,231,0,103,0,50,0,26, + 0,60,0,108,0,102,0,99,0,51,128,113,0,9,14,28, + 11,0,255,30,0,63,128,67,128,65,0,66,0,34,0,19, + 0,1,0,1,128,0,128,0,128,112,128,191,0,28,0,12, + 13,26,13,0,0,113,128,138,192,140,96,196,64,100,128,37, + 0,7,128,5,128,12,192,12,192,8,208,104,96,48,64,12, + 13,26,16,2,252,12,0,17,224,34,48,36,16,72,48,114, + 32,102,96,100,192,115,0,144,0,144,0,144,0,96,0,11, + 11,22,12,1,0,14,0,49,128,64,64,81,64,138,32,132, + 32,138,32,81,64,64,64,49,128,14,0,11,11,22,12,1, + 0,14,0,49,128,68,64,68,64,132,32,191,160,132,32,68, + 64,68,64,49,128,14,0,12,12,24,13,1,0,15,16,48, + 224,64,96,64,160,129,16,130,16,132,16,136,16,80,32,96, + 32,112,192,159,0,11,9,18,12,1,0,14,0,49,128,64, + 64,64,64,128,32,128,32,128,32,128,32,128,32,11,9,18, + 12,1,0,128,32,128,32,128,32,128,32,128,32,64,64,64, + 64,49,128,14,0,10,8,16,11,0,0,255,0,0,128,0, + 64,0,64,0,64,0,64,0,128,255,0,10,10,20,11,0, + 253,255,0,0,128,0,64,0,64,0,64,0,64,0,128,255, + 0,0,0,255,192,11,10,20,11,0,255,0,128,63,224,65, + 0,129,0,130,0,130,0,132,0,68,0,63,224,8,0,10, + 8,16,11,0,0,63,192,64,0,128,0,128,0,128,0,128, + 0,64,0,63,192,10,10,20,11,0,254,63,192,64,0,128, + 0,128,0,128,0,128,0,64,0,63,192,0,0,255,192,7, + 7,7,11,0,0,62,64,128,254,128,64,62,7,9,9,11, + 0,255,4,62,72,136,254,144,80,62,32,11,11,22,12,1, + 0,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16, + 0,32,0,64,0,255,192,10,11,22,11,1,1,255,192,192, + 128,96,128,97,0,49,0,50,0,50,0,28,0,28,0,8, + 0,8,0,11,11,22,13,1,0,14,0,49,128,94,64,73, + 64,137,32,142,32,138,32,73,64,93,192,49,128,14,0,11, + 11,22,13,1,0,14,0,49,128,70,64,73,64,145,32,144, + 32,144,32,73,64,70,64,49,128,14,0,13,6,12,14,0, + 5,255,24,171,16,34,176,34,176,34,80,119,88,12,15,30, + 13,1,254,255,240,96,96,96,96,96,96,96,96,96,96,96, + 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,240, + 240,7,16,16,9,1,253,2,2,2,2,2,4,68,196,36, + 36,20,20,20,8,8,8,2,2,2,4,1,3,192,192,11, + 5,10,12,0,0,255,224,0,32,0,32,0,32,0,32,9, + 8,16,10,0,0,8,0,8,0,20,0,34,0,34,0,65, + 0,128,128,128,128,9,8,16,10,0,0,128,128,128,128,65, + 0,34,0,34,0,20,0,8,0,8,0,16,9,18,17,0, + 0,8,16,16,8,63,252,64,2,128,1,64,2,63,252,16, + 8,8,16,15,9,18,16,0,0,8,0,16,0,63,254,64, + 0,128,0,64,0,63,254,16,0,8,0,9,15,30,10,0, + 254,8,0,20,0,34,0,99,0,162,128,34,0,34,0,34, + 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,15, + 9,18,16,0,0,0,32,0,16,255,248,0,4,0,2,0, + 4,255,248,0,16,0,32,9,15,30,10,0,254,34,0,34, + 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, + 0,162,128,99,0,34,0,20,0,8,0,7,12,12,8,0, + 0,16,40,40,68,68,130,130,68,68,40,40,16,4,15,15, + 5,0,254,16,16,32,32,64,64,128,128,128,64,64,32,32, + 16,16,11,11,22,13,1,0,14,0,49,128,94,64,81,64, + 145,32,158,32,145,32,81,64,81,64,49,128,14,0,11,11, + 22,13,1,0,14,0,49,128,70,64,73,64,144,32,144,32, + 144,32,73,64,70,64,49,128,14,0,11,6,12,13,0,5, + 252,32,38,96,38,96,37,160,37,160,36,32,11,15,30,11, + 0,254,255,192,112,64,56,64,24,0,12,0,14,0,7,0, + 3,0,2,0,4,0,8,0,16,32,32,64,127,192,255,128, + 6,17,17,6,1,252,4,8,16,32,32,64,64,64,64,128, + 128,128,128,128,128,128,128,1,17,17,6,1,252,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,6,17, + 17,6,1,252,128,128,128,128,128,128,128,128,64,64,64,64, + 32,32,16,8,4,5,17,17,6,0,252,248,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,1,17,17,6, + 0,252,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,5,17,17,6,0,252,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,248,4,17,17,8,3,252, + 48,64,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,4,17,17,8,0,252,16,16,16,16,16,16,16,32,192, + 32,16,16,16,16,16,16,16,4,17,17,8,3,252,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,64,48,1, + 17,17,8,3,252,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,255,4,15,15,5,0,254,128,128,64, + 64,32,32,16,16,16,32,32,64,64,128,128,5,17,17,5, + 0,252,24,40,32,32,32,32,32,32,32,32,32,32,32,32, + 32,160,192,6,17,17,11,5,252,24,44,72,64,128,128,128, + 128,128,128,128,128,128,128,128,128,128,1,17,17,11,5,252, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,6,17,17,11,0,252,4,4,4,4,4,4,4,4,4, + 4,4,4,4,8,72,208,96,6,17,17,7,1,252,128,64, + 32,16,16,8,8,8,8,4,4,4,4,4,4,4,4,1, + 17,17,6,5,252,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,6,17,17,6,0,252,4,4,4,4, + 4,4,4,4,8,8,8,8,16,16,32,64,128,5,17,17, + 6,1,252,248,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,1,17,17,6,5,252,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,5,17,17,6,1, + 252,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,248,4,17,17,8,0,252,192,32,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,4,17,17,8,3,252,128, + 128,128,128,128,128,128,64,48,64,128,128,128,128,128,128,128, + 4,17,17,8,0,252,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,32,192,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 12 + Calculated Max Values w=13 h=17 x= 7 y=12 dx=14 dy= 0 ascent=13 len=26 + Font Bounding box w=20 h=17 x=-3 y=-4 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb12r[1985] U8G_SECTION(".progmem.u8g_font_symb12r") = { + 0,20,17,253,252,11,2,70,5,85,32,127,252,13,252,12, + 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, + 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, + 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, + 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, + 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, + 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, + 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, + 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, + 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, + 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, + 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, + 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, + 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, + 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, + 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, + 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, + 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, + 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, + 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, + 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, + 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, + 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, + 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, + 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, + 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, + 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, + 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, + 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, + 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, + 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, + 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, + 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, + 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, + 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, + 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, + 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, + 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, + 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, + 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, + 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, + 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, + 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, + 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, + 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, + 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, + 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, + 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, + 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, + 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, + 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, + 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, + 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, + 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, + 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, + 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, + 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, + 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, + 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, + 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, + 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, + 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, + 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, + 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, + 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, + 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, + 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, + 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, + 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, + 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, + 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, + 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, + 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, + 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, + 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, + 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, + 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, + 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, + 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, + 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, + 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, + 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, + 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, + 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, + 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, + 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, + 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, + 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, + 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, + 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, + 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, + 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, + 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, + 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, + 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, + 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, + 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, + 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, + 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, + 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, + 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, + 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, + 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, + 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, + 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, + 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, + 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, + 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, + 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, + 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, + 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, + 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, + 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, + 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, + 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, + 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, + 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, + 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, + 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, + 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, + 255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=19 h=19 x= 9 y=13 dx=19 dy= 0 ascent=14 len=34 + Font Bounding box w=20 h=19 x=-1 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =14 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb14[4665] U8G_SECTION(".progmem.u8g_font_symb14") = { + 0,20,19,255,251,13,2,127,6,16,32,255,252,14,251,13, + 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, + 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, + 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, + 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, + 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, + 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, + 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, + 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, + 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, + 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, + 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, + 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, + 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, + 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, + 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, + 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, + 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, + 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, + 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, + 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, + 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, + 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, + 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, + 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, + 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, + 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, + 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, + 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, + 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, + 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, + 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, + 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, + 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, + 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, + 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, + 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, + 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, + 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, + 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, + 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, + 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, + 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, + 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, + 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, + 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, + 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, + 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, + 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, + 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, + 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, + 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, + 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, + 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, + 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, + 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, + 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, + 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, + 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, + 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, + 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, + 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, + 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, + 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, + 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, + 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, + 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, + 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, + 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, + 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, + 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, + 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, + 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, + 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, + 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, + 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, + 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, + 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, + 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, + 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, + 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, + 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, + 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, + 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, + 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, + 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, + 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, + 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, + 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, + 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, + 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, + 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, + 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, + 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, + 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, + 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, + 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, + 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, + 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, + 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, + 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, + 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, + 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, + 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, + 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, + 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, + 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, + 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, + 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, + 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, + 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, + 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, + 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, + 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, + 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, + 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, + 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, + 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, + 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, + 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, + 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, + 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, + 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, + 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, + 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, + 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, + 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, + 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, + 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, + 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, + 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, + 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, + 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, + 4,115,255,206,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,11,13,26,12,0,0,225,192,115,32, + 58,96,28,96,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,30,0,4,5,5,5,1,9,48,112,96,192, + 128,9,12,24,10,0,0,3,128,15,0,60,0,240,0,192, + 0,240,0,60,0,15,0,3,128,0,0,255,128,255,128,8, + 13,13,5,255,0,3,6,6,12,12,24,24,48,48,96,96, + 192,192,12,5,10,13,0,3,121,224,207,48,134,16,207,48, + 121,224,9,17,34,9,0,252,3,128,5,128,12,0,12,0, + 12,0,127,0,24,0,24,0,24,0,24,0,24,0,24,0, + 24,0,24,0,24,0,208,0,224,0,10,9,18,14,2,0, + 12,0,30,0,30,0,30,0,109,128,255,192,255,192,109,128, + 12,0,9,9,18,13,2,0,8,0,28,0,62,0,127,0, + 255,128,127,0,62,0,28,0,8,0,9,9,18,13,2,0, + 99,0,247,128,255,128,255,128,127,0,127,0,62,0,28,0, + 8,0,10,9,18,14,2,0,12,0,30,0,63,0,127,128, + 255,192,255,192,109,128,12,0,12,0,17,8,24,19,1,1, + 24,12,0,48,6,0,96,3,0,255,255,128,255,255,128,96, + 3,0,48,6,0,24,12,0,18,8,24,18,0,1,24,0, + 0,48,0,0,96,0,0,255,255,192,255,255,192,96,0,0, + 48,0,0,24,0,0,8,19,19,10,1,251,24,60,126,219, + 153,24,24,24,24,24,24,24,24,24,24,24,24,24,24,18, + 8,24,18,0,1,0,6,0,0,3,0,0,1,128,255,255, + 192,255,255,192,0,1,128,0,3,0,0,6,0,8,19,19, + 10,1,251,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,153,219,126,60,24,5,6,6,7,1,7,112,248,216,216, + 248,112,8,11,11,10,1,0,24,24,24,255,255,24,24,24, + 0,255,255,8,5,5,8,0,9,51,119,102,204,136,9,12, + 24,10,0,0,224,0,120,0,30,0,7,128,1,128,7,128, + 30,0,120,0,224,0,0,0,255,128,255,128,10,9,18,10, + 0,0,225,192,115,128,51,0,30,0,12,0,30,0,51,0, + 115,128,225,192,11,5,10,12,0,3,121,224,207,0,134,0, + 207,0,121,224,7,14,14,9,1,0,120,204,134,6,6,6, + 62,102,198,198,198,196,236,120,5,6,6,9,2,2,112,248, + 248,248,248,112,8,8,8,10,1,1,24,24,0,255,255,0, + 24,24,8,9,9,10,1,0,12,12,255,255,24,255,255,48, + 48,8,8,8,10,1,1,255,255,0,255,255,0,255,255,8, + 7,7,10,1,2,115,255,206,0,115,255,206,14,2,4,18, + 2,0,195,12,195,12,2,19,19,10,4,251,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,19, + 2,6,19,0,4,255,255,224,255,255,224,9,12,24,12,1, + 0,1,128,1,128,1,128,1,128,1,128,1,128,33,128,97, + 128,255,128,255,128,96,0,32,0,11,13,26,13,1,0,194, + 0,227,192,113,224,56,224,57,128,125,0,207,0,199,0,227, + 0,115,128,49,192,112,192,240,64,10,15,30,13,1,255,31, + 192,63,192,96,128,65,0,66,0,34,0,19,0,3,128,1, + 192,0,192,0,192,112,192,248,128,31,0,14,0,13,14,28, + 15,1,0,121,192,254,224,142,112,134,48,198,96,118,128,54, + 64,38,96,6,96,6,96,6,96,6,96,108,120,184,48,12, + 15,30,14,1,252,12,0,24,0,49,224,103,48,204,48,216, + 48,214,48,246,96,100,224,119,192,179,128,152,0,152,0,216, + 0,112,0,12,13,26,14,1,0,31,128,57,192,96,96,217, + 176,221,176,143,16,134,16,143,16,219,176,217,176,96,96,57, + 192,31,128,12,13,26,14,1,0,31,128,57,192,102,96,198, + 48,198,48,191,208,191,208,134,16,198,48,198,48,96,96,57, + 192,31,128,12,13,26,14,1,0,31,176,57,240,96,96,192, + 240,193,176,131,16,134,16,140,16,216,48,240,48,96,96,249, + 192,223,128,12,9,18,14,1,0,31,128,57,192,96,96,224, + 112,192,48,192,48,192,48,192,48,192,48,12,9,18,14,1, + 0,192,48,192,48,192,48,192,48,192,48,224,112,96,96,57, + 192,31,128,12,9,18,13,1,0,255,128,255,224,0,96,0, + 48,0,48,0,48,0,96,255,224,255,128,12,12,24,13,0, + 253,255,128,255,224,0,96,0,48,0,48,0,48,0,96,255, + 224,255,128,0,0,255,240,255,240,12,13,26,13,0,254,0, + 96,0,192,31,240,127,240,97,128,195,0,195,0,198,0,102, + 0,127,240,31,240,24,0,48,0,12,9,18,13,0,0,31, + 240,127,240,96,0,192,0,192,0,192,0,96,0,127,240,31, + 240,12,12,24,13,0,253,31,240,127,240,96,0,192,0,192, + 0,192,0,96,0,127,240,31,240,0,0,255,240,255,240,9, + 9,18,12,1,0,31,128,127,128,224,0,192,0,255,128,192, + 0,224,0,127,128,31,128,10,11,22,12,1,255,0,128,31, + 192,127,192,226,0,196,0,255,128,200,0,240,0,127,192,63, + 192,64,0,13,13,26,14,0,0,0,24,0,48,0,96,0, + 192,1,128,3,0,6,0,12,0,24,0,48,0,96,0,192, + 0,255,248,11,13,26,13,1,0,255,224,224,32,96,96,96, + 64,112,192,48,128,48,128,57,128,25,0,27,0,14,0,14, + 0,4,0,13,13,26,15,1,0,31,192,56,224,96,48,223, + 24,205,152,205,152,205,152,207,24,205,152,220,216,96,48,56, + 224,31,192,13,13,26,15,1,0,31,192,56,224,96,48,199, + 152,205,152,204,152,204,24,204,24,204,152,199,24,96,48,56, + 224,31,192,14,8,16,16,1,5,251,28,171,24,35,24,34, + 168,34,168,34,168,34,72,119,92,14,16,32,15,0,254,255, + 252,120,120,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,120,120,252,252,9, + 14,28,10,0,0,0,128,0,128,0,128,0,128,48,128,113, + 0,217,0,25,0,25,0,13,0,14,0,6,0,6,0,6, + 0,2,2,2,4,1,4,192,192,11,6,12,13,1,0,255, + 224,255,224,0,96,0,96,0,96,0,96,10,9,18,11,0, + 0,12,0,12,0,30,0,51,0,51,0,97,128,97,128,192, + 192,192,192,10,9,18,11,0,0,192,192,192,192,97,128,97, + 128,51,0,51,0,30,0,12,0,12,0,18,9,27,18,0, + 0,8,4,0,24,6,0,63,255,0,127,255,128,224,1,192, + 127,255,128,63,255,0,24,6,0,8,4,0,16,9,18,18, + 1,0,8,0,24,0,63,255,127,255,224,0,127,255,63,255, + 24,0,8,0,9,17,34,11,1,253,8,0,28,0,54,0, + 119,0,247,128,54,0,54,0,54,0,54,0,54,0,54,0, + 54,0,54,0,54,0,54,0,54,0,54,0,16,9,18,18, + 1,0,0,16,0,24,255,252,255,254,0,7,255,254,255,252, + 0,24,0,16,9,17,34,11,1,253,54,0,54,0,54,0, + 54,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0, + 54,0,247,128,119,0,54,0,28,0,8,0,9,14,28,9, + 0,0,28,0,28,0,54,0,54,0,99,0,99,0,193,128, + 193,128,99,0,99,0,54,0,54,0,28,0,28,0,5,17, + 17,6,0,253,24,24,48,48,96,96,192,192,128,192,192,96, + 96,48,48,24,24,13,13,26,15,1,0,31,192,56,224,96, + 48,207,24,205,152,205,152,207,24,205,152,205,152,205,152,96, + 48,56,224,31,192,13,13,26,15,1,0,31,192,56,224,96, + 48,199,24,204,152,204,24,204,24,204,24,204,152,199,24,96, + 48,56,224,31,192,13,8,16,15,1,5,251,24,35,24,35, + 24,34,168,34,168,34,168,34,72,34,72,12,16,32,13,0, + 254,255,224,224,96,112,32,56,0,28,0,14,0,7,0,3, + 0,6,0,12,0,24,0,48,0,96,16,192,48,255,240,255, + 240,6,19,19,7,1,251,4,12,24,24,48,48,96,96,96, + 96,192,192,192,192,192,192,192,192,192,2,19,19,7,1,251, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,6,19,19,7,1,251,192,192,192,192,192,192,192, + 192,192,224,96,96,96,48,48,24,24,12,4,5,19,19,7, + 1,251,248,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,2,19,19,7,1,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,19, + 19,7,1,251,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,248,5,19,19,9,4,251,56,96,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 5,19,19,9,1,251,24,24,24,24,24,24,16,48,96,192, + 96,48,16,24,24,24,24,24,24,5,19,19,9,4,251,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 96,56,2,19,19,9,4,251,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,255,5,17,17,6, + 0,253,192,192,96,96,48,48,24,24,8,24,24,48,48,96, + 96,192,192,6,19,19,6,0,251,28,28,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,224,224,7,19,19,13, + 5,251,28,126,102,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,2,19,19,13,5,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,7,19, + 19,13,0,251,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,204,252,112,6,19,19,7,0,251,128,192,96, + 96,48,48,24,24,24,24,12,12,12,12,12,12,12,12,12, + 2,19,19,7,4,251,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,6,19,19,7,0,251,12, + 12,12,12,12,12,12,12,12,24,24,24,24,48,48,96,96, + 192,128,5,19,19,7,1,251,248,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,2,19,19,7,4, + 251,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,5,19,19,7,1,251,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,248,5,19,19, + 9,1,251,224,48,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,5,19,19,9,4,251,192,192,192,192, + 192,192,64,96,48,24,48,96,64,192,192,192,192,192,192,5, + 19,19,9,1,251,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,48,224,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=14 h=19 x= 9 y=13 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=20 h=19 x=-1 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =14 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb14r[2261] U8G_SECTION(".progmem.u8g_font_symb14r") = { + 0,20,19,255,251,13,2,127,6,16,32,127,252,14,251,13, + 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, + 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, + 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, + 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, + 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, + 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, + 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, + 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, + 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, + 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, + 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, + 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, + 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, + 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, + 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, + 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, + 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, + 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, + 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, + 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, + 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, + 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, + 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, + 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, + 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, + 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, + 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, + 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, + 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, + 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, + 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, + 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, + 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, + 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, + 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, + 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, + 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, + 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, + 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, + 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, + 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, + 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, + 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, + 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, + 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, + 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, + 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, + 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, + 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, + 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, + 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, + 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, + 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, + 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, + 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, + 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, + 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, + 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, + 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, + 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, + 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, + 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, + 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, + 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, + 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, + 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, + 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, + 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, + 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, + 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, + 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, + 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, + 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, + 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, + 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, + 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, + 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, + 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, + 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, + 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, + 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, + 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, + 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, + 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, + 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, + 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, + 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, + 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, + 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, + 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, + 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, + 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, + 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, + 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, + 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, + 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, + 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, + 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, + 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, + 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, + 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, + 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, + 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, + 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, + 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, + 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, + 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, + 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, + 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, + 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, + 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, + 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, + 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, + 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, + 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, + 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, + 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, + 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, + 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, + 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, + 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, + 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, + 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, + 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, + 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, + 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, + 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, + 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, + 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, + 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, + 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, + 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, + 4,115,255,206,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=25 h=24 x=13 y=18 dx=26 dy= 0 ascent=19 len=63 + Font Bounding box w=27 h=24 x=-1 y=-5 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb18[6604] U8G_SECTION(".progmem.u8g_font_symb18") = { + 0,27,24,255,251,17,3,215,8,151,32,255,251,19,251,17, + 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, + 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, + 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, + 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, + 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, + 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, + 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, + 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, + 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, + 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, + 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, + 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, + 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, + 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, + 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, + 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, + 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, + 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, + 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, + 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, + 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, + 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, + 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, + 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, + 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, + 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, + 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, + 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, + 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, + 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, + 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, + 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, + 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, + 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, + 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, + 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, + 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, + 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, + 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, + 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, + 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, + 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, + 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, + 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, + 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, + 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, + 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, + 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, + 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, + 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, + 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, + 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, + 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, + 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, + 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, + 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, + 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, + 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, + 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, + 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, + 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, + 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, + 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, + 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, + 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, + 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, + 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, + 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, + 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, + 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, + 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, + 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, + 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, + 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, + 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, + 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, + 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, + 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, + 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, + 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, + 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, + 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, + 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, + 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, + 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, + 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, + 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, + 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, + 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, + 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, + 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, + 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, + 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, + 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, + 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, + 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, + 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, + 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, + 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, + 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, + 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, + 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, + 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, + 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, + 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, + 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, + 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, + 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, + 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, + 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, + 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, + 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, + 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, + 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, + 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, + 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, + 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, + 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, + 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, + 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, + 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, + 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, + 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, + 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, + 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, + 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, + 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, + 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, + 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, + 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, + 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, + 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, + 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, + 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, + 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, + 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, + 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, + 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, + 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, + 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, + 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, + 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, + 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, + 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, + 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, + 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, + 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, + 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, + 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, + 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, + 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, + 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, + 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, + 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, + 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, + 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, + 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, + 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, + 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, + 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, + 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, + 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, + 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, + 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, + 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, + 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, + 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, + 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, + 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, + 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, + 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, + 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, + 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, + 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, + 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, + 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, + 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, + 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, + 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, + 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, + 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, + 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, + 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, + 124,96,199,192,131,128,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,13,17,34,15,1,0,224,112, + 112,216,57,184,27,48,14,0,6,0,6,0,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, + 5,6,6,6,1,12,24,56,112,96,192,128,12,15,30,14, + 0,0,0,112,1,224,7,128,30,0,120,0,224,0,224,0, + 120,0,30,0,3,192,0,240,0,48,0,0,255,240,255,240, + 8,17,17,4,255,0,3,3,6,6,12,12,24,24,24,48, + 48,96,96,96,192,192,192,15,7,14,17,1,4,56,56,124, + 124,198,198,195,134,199,198,124,124,56,56,13,22,44,13,0, + 251,0,240,1,152,1,152,3,0,3,0,3,0,31,192,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,204,0,204,0,120,0,14,13,26, + 18,2,0,7,128,15,192,15,192,15,192,15,192,119,184,251, + 124,255,252,255,252,251,124,115,56,3,0,7,128,10,13,26, + 18,4,0,12,0,30,0,63,0,63,0,127,128,127,128,255, + 192,127,128,127,128,63,0,30,0,30,0,12,0,12,13,26, + 18,3,0,112,224,249,240,255,240,255,240,255,240,255,240,127, + 224,127,224,63,192,31,128,31,128,15,0,6,0,12,13,26, + 18,3,0,6,0,15,0,31,128,31,128,63,192,127,224,127, + 224,255,240,255,240,246,240,102,96,6,0,6,0,24,12,36, + 26,1,1,6,0,96,12,0,48,24,0,24,48,0,12,96, + 0,6,255,255,255,255,255,255,96,0,6,48,0,12,24,0, + 24,12,0,48,6,0,96,25,12,48,25,0,1,6,0,0, + 0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0, + 0,255,255,255,128,255,255,255,128,96,0,0,0,48,0,0, + 0,24,0,0,0,12,0,0,0,6,0,0,0,12,24,48, + 14,1,251,6,0,15,0,31,128,54,192,102,96,198,48,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,25,12,48,25,0,1,0,0,48,0,0,0,24, + 0,0,0,12,0,0,0,6,0,0,0,3,0,255,255,255, + 128,255,255,255,128,0,0,3,0,0,0,6,0,0,0,12, + 0,0,0,24,0,0,0,48,0,12,24,48,14,1,251,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,0,198,48,102,96,54,192,31,128,15,0,6,0,7, + 7,7,9,1,10,56,108,198,198,198,108,56,10,14,28,12, + 1,0,12,0,12,0,12,0,12,0,255,192,255,192,12,0, + 12,0,12,0,12,0,0,0,0,0,255,192,255,192,9,6, + 12,10,1,12,25,128,59,128,119,0,102,0,204,0,136,0, + 12,15,30,14,0,0,224,0,120,0,30,0,7,128,1,224, + 0,112,0,112,1,224,7,128,62,0,240,0,192,0,0,0, + 255,240,255,240,11,10,20,13,1,2,192,96,96,192,49,128, + 27,0,14,0,14,0,27,0,49,128,96,192,192,96,14,7, + 14,16,1,4,56,56,124,124,198,192,195,128,199,192,124,124, + 56,56,10,19,38,12,1,0,62,0,99,0,193,128,1,128, + 0,192,0,192,0,192,0,192,30,192,115,192,97,192,192,192, + 192,192,193,128,193,128,193,128,227,0,119,0,62,0,8,8, + 8,12,2,3,60,126,255,255,255,255,126,60,10,8,16,12, + 1,3,12,0,12,0,0,0,255,192,255,192,0,0,12,0, + 12,0,10,13,26,14,2,0,1,128,1,128,3,0,3,0, + 255,192,255,192,12,0,255,192,255,192,48,0,48,0,96,0, + 96,0,11,8,16,13,1,3,255,224,255,224,0,0,255,224, + 255,224,0,0,255,224,255,224,11,8,16,13,1,3,56,32, + 124,96,199,192,131,128,56,32,124,96,199,192,131,128,18,2, + 6,24,3,0,192,192,192,192,192,192,2,24,24,14,6,251, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,25,2,8,25,0,6,255,255, + 255,128,255,255,255,128,14,16,32,16,1,0,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 32,12,96,12,255,252,255,252,96,0,32,0,12,16,32,14, + 1,0,129,128,195,0,227,240,113,240,56,96,28,192,60,128, + 110,128,199,128,195,128,227,128,241,192,112,224,48,112,112,48, + 224,16,14,19,38,16,1,255,15,128,63,252,112,248,96,48, + 64,96,64,192,96,192,48,224,28,112,0,56,0,56,0,28, + 0,28,0,12,48,12,120,12,222,24,15,240,3,192,17,18, + 54,19,1,0,30,24,0,63,60,0,99,206,0,193,135,0, + 129,131,0,193,134,0,225,140,0,113,184,0,57,176,0,25, + 152,0,17,152,0,1,152,0,1,156,0,1,140,0,1,140, + 0,25,134,128,63,7,128,78,7,0,15,20,40,19,2,251, + 6,0,12,0,24,60,48,254,49,134,99,6,102,6,108,6, + 104,12,121,156,115,152,114,48,122,112,91,224,221,128,140,0, + 140,0,140,0,216,0,112,0,16,17,34,18,1,0,7,224, + 30,120,56,28,96,6,104,22,204,51,198,99,195,195,193,131, + 195,195,198,99,204,51,104,22,96,6,56,28,30,120,7,224, + 16,17,34,18,1,0,7,224,30,120,56,28,97,134,97,134, + 193,131,193,131,207,243,207,243,193,131,193,131,193,131,97,134, + 96,6,56,28,30,120,7,224,18,17,51,20,1,0,3,240, + 192,15,253,128,28,15,0,48,7,0,48,15,0,96,25,128, + 96,49,128,96,97,128,96,193,128,97,129,128,99,1,128,102, + 1,128,60,3,0,56,3,0,60,14,0,111,252,0,195,240, + 0,16,13,26,18,1,0,7,224,31,248,56,28,96,6,96, + 6,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,16,13,26,18,1,0,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,192,3,96,6,96,6,56,28,31,248,7, + 224,15,12,24,17,1,0,255,224,255,248,0,28,0,12,0, + 6,0,6,0,6,0,6,0,12,0,28,255,248,255,224,15, + 15,30,17,1,253,255,224,255,248,0,28,0,12,0,6,0, + 6,0,6,0,6,0,12,0,28,255,248,255,224,0,0,255, + 254,255,254,15,16,32,17,1,254,0,12,0,12,15,254,63, + 254,112,48,96,48,192,96,192,96,192,192,192,192,97,128,113, + 128,63,254,15,254,6,0,6,0,15,12,24,17,1,0,15, + 254,63,254,112,0,96,0,192,0,192,0,192,0,192,0,96, + 0,112,0,63,254,15,254,15,15,30,17,1,253,15,254,63, + 254,112,0,96,0,192,0,192,0,192,0,192,0,96,0,112, + 0,63,254,15,254,0,0,255,254,255,254,12,13,26,16,2, + 0,31,240,127,240,96,0,192,0,192,0,192,0,255,240,192, + 0,192,0,192,0,96,0,127,240,31,240,12,15,30,16,2, + 255,0,192,31,240,127,240,97,128,193,128,195,0,195,0,255, + 240,198,0,198,0,204,0,108,0,127,240,31,240,24,0,17, + 16,48,19,1,0,0,1,128,0,3,0,0,6,0,0,12, + 0,0,24,0,0,48,0,0,96,0,0,192,0,1,128,0, + 3,0,0,6,0,0,12,0,0,24,0,0,48,0,0,127, + 255,128,255,255,128,16,18,36,18,1,0,255,255,192,3,192, + 2,96,6,96,4,48,12,48,8,48,24,24,16,24,48,12, + 32,12,32,6,96,6,64,3,192,3,192,1,128,1,128,16, + 17,34,18,1,0,7,224,30,120,56,28,96,6,111,230,198, + 115,198,51,198,115,199,227,198,195,198,99,198,51,111,62,96, + 6,56,28,30,120,7,224,16,17,34,18,1,0,7,224,30, + 120,56,28,96,6,99,230,198,99,204,35,204,3,204,3,204, + 3,204,3,206,51,103,230,99,198,56,28,30,120,7,224,20, + 10,30,22,1,7,255,96,112,153,96,96,24,112,224,24,112, + 224,24,89,96,24,89,96,24,78,96,24,78,96,24,70,96, + 60,230,240,17,21,63,19,1,253,255,255,128,48,6,0,48, + 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, + 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, + 48,6,0,48,6,0,48,6,0,48,6,0,48,6,0,48, + 6,0,48,6,0,252,31,128,14,19,38,14,0,0,0,12, + 0,12,0,8,0,8,0,24,48,24,112,16,216,16,24,16, + 12,48,12,48,6,32,6,32,3,32,3,96,1,192,1,192, + 0,192,0,192,2,2,2,6,2,6,192,192,15,8,16,17, + 1,0,255,254,255,254,0,6,0,6,0,6,0,6,0,6, + 0,6,13,12,24,15,1,0,7,0,7,0,13,128,13,128, + 24,192,24,192,48,96,48,96,96,48,96,48,192,24,192,24, + 13,12,24,15,1,0,192,24,192,24,96,48,96,48,48,96, + 48,96,24,192,24,192,13,128,13,128,7,0,7,0,23,12, + 36,25,1,0,6,0,192,12,0,96,24,0,48,63,255,248, + 127,255,252,224,0,14,224,0,14,127,255,252,63,255,248,24, + 0,48,12,0,96,6,0,192,23,12,36,25,1,0,6,0, + 0,12,0,0,24,0,0,63,255,254,127,255,254,224,0,0, + 224,0,0,127,255,254,63,255,254,24,0,0,12,0,0,6, + 0,0,12,19,38,14,1,0,6,0,15,0,31,128,57,192, + 121,224,217,176,25,128,25,128,25,128,25,128,25,128,25,128, + 25,128,25,128,25,128,25,128,25,128,25,128,25,128,23,12, + 36,25,1,0,0,0,192,0,0,96,0,0,48,255,255,248, + 255,255,252,0,0,14,0,0,14,255,255,252,255,255,248,0, + 0,48,0,0,96,0,0,192,12,19,38,14,1,0,25,128, + 25,128,25,128,25,128,25,128,25,128,25,128,25,128,25,128, + 25,128,25,128,25,128,25,128,217,176,121,224,57,192,31,128, + 15,0,6,0,10,18,36,12,1,0,12,0,30,0,30,0, + 51,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, + 97,128,97,128,51,0,51,0,30,0,30,0,12,0,7,22, + 22,8,0,251,6,6,12,12,24,24,48,48,96,96,192,192, + 96,96,48,48,24,24,12,12,6,6,16,17,34,18,1,0, + 7,224,30,120,56,28,96,6,103,230,198,51,198,51,198,51, + 199,227,198,99,198,51,198,51,102,50,96,6,56,28,30,120, + 7,224,16,17,34,18,1,0,7,224,30,120,56,28,96,6, + 99,198,198,99,204,35,204,3,200,3,200,3,204,3,204,35, + 102,102,99,198,56,28,30,120,7,224,18,10,30,20,1,7, + 254,192,192,24,192,192,24,225,192,24,225,192,24,243,192,24, + 210,192,24,222,192,24,204,192,24,204,192,24,204,192,14,20, + 40,18,2,254,255,248,224,24,112,8,56,0,28,0,14,0, + 7,0,3,128,1,192,0,192,1,128,3,0,6,0,12,0, + 24,0,48,0,96,4,192,12,255,252,255,252,9,24,48,10, + 1,251,1,128,3,0,6,0,12,0,24,0,24,0,48,0, + 48,0,96,0,96,0,96,0,96,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,2,24,24,10,1,251,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 9,24,48,10,1,251,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,0,96,0,96,0,48,0,48,0,24,0,24,0,12,0, + 6,0,3,0,1,128,7,24,24,10,1,251,254,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,2,24,24,10,1,251,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,7,24,24,10,1,251,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,254, + 7,24,24,12,5,251,30,48,96,96,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,24, + 24,12,2,251,24,24,24,24,24,24,24,24,16,48,96,192, + 96,48,16,24,24,24,24,24,24,24,24,24,7,24,24,12, + 5,251,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,96,96,48,30,2,24,24,12,5,251, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,255,7,22,22,8,1,251,192, + 192,96,96,48,48,24,24,12,12,6,6,12,12,24,24,48, + 48,96,96,192,192,8,24,24,8,0,251,7,15,27,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 216,240,224,8,24,24,17,8,251,14,27,51,32,96,64,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,2,24,24,17,8,251,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,8, + 24,24,17,2,251,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,2,6,204,216,112,9,24,48, + 10,0,251,192,0,96,0,48,0,24,0,12,0,12,0,6, + 0,6,0,3,0,3,0,3,0,3,0,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,2,24,24,10,7,251,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,9,24,48,10,0,251,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,3, + 0,3,0,3,0,3,0,6,0,6,0,12,0,12,0,24, + 0,48,0,96,0,192,0,7,24,24,10,2,251,254,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,2,24,24,10,7,251,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,7,24,24,10,2,251,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 254,7,24,24,12,0,251,240,24,12,12,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5, + 24,24,12,5,251,192,192,192,192,192,192,192,192,64,96,48, + 24,48,96,64,192,192,192,192,192,192,192,192,192,7,24,24, + 12,0,251,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,12,12,24,240,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=20 h=24 x=13 y=18 dx=22 dy= 0 ascent=19 len=51 + Font Bounding box w=27 h=24 x=-1 y=-5 + Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =19 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb18r[3303] U8G_SECTION(".progmem.u8g_font_symb18r") = { + 0,27,24,255,251,17,3,215,8,151,32,127,251,19,251,17, + 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, + 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, + 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, + 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, + 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, + 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, + 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, + 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, + 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, + 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, + 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, + 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, + 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, + 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, + 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, + 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, + 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, + 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, + 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, + 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, + 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, + 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, + 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, + 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, + 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, + 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, + 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, + 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, + 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, + 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, + 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, + 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, + 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, + 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, + 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, + 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, + 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, + 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, + 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, + 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, + 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, + 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, + 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, + 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, + 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, + 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, + 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, + 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, + 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, + 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, + 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, + 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, + 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, + 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, + 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, + 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, + 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, + 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, + 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, + 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, + 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, + 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, + 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, + 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, + 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, + 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, + 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, + 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, + 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, + 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, + 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, + 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, + 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, + 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, + 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, + 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, + 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, + 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, + 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, + 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, + 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, + 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, + 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, + 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, + 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, + 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, + 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, + 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, + 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, + 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, + 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, + 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, + 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, + 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, + 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, + 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, + 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, + 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, + 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, + 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, + 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, + 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, + 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, + 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, + 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, + 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, + 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, + 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, + 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, + 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, + 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, + 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, + 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, + 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, + 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, + 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, + 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, + 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, + 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, + 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, + 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, + 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, + 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, + 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, + 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, + 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, + 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, + 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, + 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, + 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, + 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, + 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, + 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, + 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, + 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, + 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, + 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, + 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, + 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, + 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, + 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, + 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, + 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, + 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, + 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, + 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, + 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, + 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, + 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, + 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, + 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, + 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, + 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, + 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, + 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, + 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, + 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, + 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, + 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, + 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, + 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, + 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, + 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, + 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, + 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, + 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, + 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, + 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, + 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, + 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, + 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, + 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, + 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, + 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, + 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, + 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, + 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, + 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, + 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, + 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, + 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, + 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, + 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, + 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, + 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, + 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, + 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, + 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, + 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, + 124,96,199,192,131,128,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=32 h=34 x=15 y=26 dx=34 dy= 0 ascent=27 len=108 + Font Bounding box w=40 h=34 x=-5 y=-7 + Calculated Min Values x=-5 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =27 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb24[10727] U8G_SECTION(".progmem.u8g_font_symb24") = { + 0,40,34,251,249,23,5,133,13,247,32,255,249,27,249,23, + 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, + 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, + 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, + 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, + 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, + 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, + 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, + 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, + 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, + 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, + 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, + 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, + 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, + 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, + 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, + 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, + 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, + 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, + 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, + 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, + 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, + 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, + 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, + 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, + 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, + 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, + 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, + 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, + 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, + 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, + 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, + 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, + 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, + 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, + 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, + 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, + 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, + 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, + 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, + 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, + 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, + 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, + 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, + 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, + 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, + 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, + 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, + 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, + 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, + 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, + 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, + 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, + 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, + 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, + 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, + 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, + 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, + 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, + 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, + 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, + 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, + 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, + 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, + 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, + 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, + 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, + 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, + 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, + 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, + 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, + 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, + 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, + 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, + 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, + 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, + 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, + 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, + 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, + 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, + 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, + 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, + 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, + 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, + 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, + 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, + 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, + 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, + 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, + 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, + 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, + 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, + 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, + 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, + 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, + 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, + 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, + 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, + 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, + 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, + 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, + 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, + 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, + 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, + 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, + 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, + 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, + 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, + 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, + 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, + 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, + 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, + 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, + 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, + 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, + 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, + 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, + 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, + 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, + 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, + 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, + 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, + 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, + 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, + 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, + 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, + 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, + 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, + 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, + 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, + 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, + 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, + 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, + 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, + 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, + 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, + 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, + 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, + 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, + 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, + 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, + 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, + 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, + 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, + 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, + 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, + 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, + 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, + 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, + 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, + 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, + 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, + 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, + 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, + 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, + 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, + 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, + 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, + 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, + 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, + 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, + 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, + 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, + 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, + 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, + 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, + 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, + 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, + 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, + 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, + 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, + 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, + 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, + 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, + 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, + 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, + 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, + 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, + 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, + 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, + 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, + 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, + 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, + 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, + 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, + 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, + 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, + 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, + 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, + 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, + 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, + 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, + 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, + 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, + 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, + 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, + 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, + 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, + 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, + 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, + 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, + 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, + 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, + 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, + 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, + 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, + 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, + 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, + 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, + 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, + 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, + 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, + 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, + 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, + 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, + 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, + 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, + 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, + 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, + 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, + 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, + 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, + 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, + 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, + 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, + 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, + 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, + 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, + 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, + 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, + 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, + 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, + 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, + 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, + 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, + 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, + 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, + 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, + 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, + 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, + 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, + 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, + 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, + 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, + 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, + 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, + 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, + 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, + 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, + 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, + 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, + 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, + 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, + 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, + 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, + 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, + 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, + 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, + 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, + 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, + 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, + 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, + 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, + 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, + 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, + 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, + 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, + 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, + 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, + 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, + 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, + 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, + 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, + 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, + 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, + 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, + 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, + 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, + 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, + 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, + 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, + 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, + 127,134,227,254,192,56,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,20,23,69,20,0,0,240,1, + 192,124,7,224,15,12,112,7,12,240,3,152,224,1,208,224, + 1,208,0,1,240,0,1,240,0,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,1,240,0, + 7,252,0,6,9,9,8,1,16,24,60,60,120,112,96,224, + 192,128,16,21,42,18,1,0,0,7,0,31,0,124,1,240, + 7,192,30,0,120,0,224,0,224,0,120,0,30,0,7,128, + 1,224,0,120,0,30,0,7,0,1,0,0,0,0,255,255, + 255,255,15,23,46,6,251,0,0,2,0,6,0,12,0,12, + 0,24,0,48,0,48,0,96,0,192,0,192,1,128,3,0, + 3,0,6,0,12,0,12,0,24,0,48,0,48,0,96,0, + 192,0,192,0,128,0,21,10,30,23,1,4,28,3,192,127, + 15,224,99,158,48,193,248,24,192,240,24,192,240,24,192,248, + 24,99,156,48,127,15,240,28,3,192,16,29,58,16,0,250, + 0,30,0,51,0,103,0,98,0,224,0,224,0,192,0,192, + 0,192,15,252,1,192,1,192,1,192,1,192,1,128,1,128, + 1,128,3,128,3,128,3,128,3,0,3,0,3,0,3,0, + 2,0,102,0,230,0,236,0,120,0,18,18,54,24,3,0, + 1,224,0,3,240,0,7,248,0,7,248,0,7,248,0,7, + 248,0,3,240,0,1,224,0,124,207,128,255,255,192,255,255, + 192,255,255,192,255,255,192,255,255,192,252,207,192,120,199,128, + 0,192,0,1,224,0,14,18,36,24,5,0,3,0,7,128, + 7,192,15,192,31,224,63,240,127,248,127,248,255,252,255,252, + 127,248,127,248,63,240,31,224,15,192,7,192,7,128,3,0, + 16,18,36,24,4,0,124,62,254,127,254,127,255,255,255,255, + 255,255,255,255,127,254,127,254,63,252,63,252,31,248,15,240, + 15,240,7,224,3,192,1,128,1,128,16,18,36,24,4,0, + 1,128,1,192,3,192,7,224,7,240,15,240,31,248,63,252, + 63,252,127,254,255,255,255,255,255,255,253,191,249,159,249,159, + 113,142,3,192,32,16,64,34,1,0,1,128,1,128,3,0, + 0,192,7,0,0,224,14,0,0,112,28,0,0,56,56,0, + 0,28,112,0,0,14,255,255,255,255,255,255,255,255,112,0, + 0,14,56,0,0,28,28,0,0,56,14,0,0,112,7,0, + 0,224,3,0,0,192,1,128,1,128,29,16,64,32,1,0, + 1,128,0,0,3,0,0,0,6,0,0,0,14,0,0,0, + 28,0,0,0,56,0,0,0,112,0,0,0,255,255,255,248, + 255,255,255,248,112,0,0,0,56,0,0,0,28,0,0,0, + 14,0,0,0,6,0,0,0,3,0,0,0,1,128,0,0, + 16,27,54,20,2,0,1,128,3,192,7,224,15,240,29,184, + 57,156,113,142,225,135,193,131,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,29,16,64,32, + 2,0,0,0,12,0,0,0,14,0,0,0,7,0,0,0, + 3,128,0,0,1,192,0,0,0,224,0,0,0,112,255,255, + 255,248,255,255,255,248,0,0,0,112,0,0,0,224,0,0, + 1,192,0,0,3,128,0,0,7,0,0,0,14,0,0,0, + 12,0,16,27,54,20,2,0,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,193,131,225,135, + 113,142,57,156,29,184,15,240,7,224,3,192,1,128,9,10, + 20,13,2,13,28,0,99,0,65,0,128,128,128,128,128,128, + 128,128,65,0,99,0,28,0,16,22,44,18,1,0,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, + 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,0,0,0,0,255,255,255,255,12,9,18,13,1,15, + 28,112,28,112,60,240,56,224,113,192,113,192,227,128,195,0, + 130,0,16,21,42,18,1,0,224,0,248,0,62,0,15,128, + 1,224,0,120,0,30,0,7,0,7,0,30,0,120,1,224, + 7,128,30,0,120,0,224,0,128,0,0,0,0,0,255,255, + 255,255,16,16,32,18,1,1,192,3,224,7,112,14,56,28, + 28,56,14,112,7,224,3,192,3,192,7,224,14,112,28,56, + 56,28,112,14,224,7,192,3,19,10,30,23,1,4,28,3, + 192,63,15,224,99,156,0,193,248,0,192,240,0,192,240,0, + 193,248,0,99,156,0,127,15,224,28,3,192,14,27,54,16, + 1,0,30,0,63,128,32,224,0,112,0,48,0,24,0,24, + 0,24,0,28,0,28,0,28,15,28,31,252,56,124,120,60, + 112,60,240,56,224,56,224,56,224,56,224,112,224,112,96,96, + 112,224,57,192,31,128,15,0,11,12,24,15,2,4,14,0, + 63,128,127,192,127,192,255,224,255,224,255,224,255,224,127,192, + 127,192,63,128,14,0,16,13,26,18,1,2,1,128,3,192, + 3,192,1,128,0,0,255,255,255,255,0,0,0,0,1,128, + 3,192,3,192,1,128,17,19,57,18,1,255,0,12,0,0, + 24,0,0,24,0,0,48,0,0,48,0,255,255,128,255,255, + 128,0,192,0,0,192,0,1,128,0,1,128,0,3,0,0, + 255,255,128,255,255,128,6,0,0,12,0,0,12,0,0,24, + 0,0,24,0,0,17,12,36,18,0,3,255,255,128,255,255, + 128,0,0,0,0,0,0,0,0,0,255,255,128,255,255,128, + 0,0,0,0,0,0,0,0,0,255,255,128,255,255,128,16, + 9,18,18,1,4,28,0,127,135,225,254,64,56,0,0,28, + 0,127,135,225,254,192,56,26,4,16,33,3,0,96,12,1, + 128,240,30,3,192,240,30,3,192,96,12,1,128,2,34,34, + 20,9,249,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,32,2,8,32,0,7,255,255,255,255,255, + 255,255,255,18,21,63,21,1,0,0,0,192,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, + 0,0,192,0,0,192,16,0,192,112,0,192,255,255,192,255, + 255,192,112,0,0,16,0,0,16,22,44,27,5,0,0,32, + 96,96,240,126,240,127,248,127,124,63,60,15,62,12,31,24, + 31,152,55,240,115,240,97,240,225,240,240,248,240,124,120,62, + 124,30,124,31,60,15,124,7,252,6,18,27,81,22,1,254, + 7,240,0,31,254,0,63,255,128,56,63,128,96,7,0,96, + 7,0,64,6,0,64,12,0,64,12,0,96,28,0,48,28, + 0,28,14,0,14,14,0,0,15,0,0,7,0,0,7,128, + 0,3,128,0,3,192,0,1,192,0,1,192,0,1,192,60, + 1,128,255,1,128,159,195,0,7,254,0,3,248,0,0,240, + 0,23,24,72,26,1,0,15,128,192,63,225,240,97,247,248, + 192,252,124,128,120,62,128,120,28,128,56,56,192,56,112,224, + 56,192,120,57,192,62,59,192,14,57,224,6,56,224,6,56, + 224,0,56,240,0,56,240,0,56,112,0,112,112,0,112,112, + 0,96,120,30,192,122,63,128,62,47,128,60,6,0,16,23, + 26,78,32,5,249,0,192,0,1,192,0,3,0,112,6,3, + 252,6,14,30,12,24,30,28,48,14,24,96,14,56,192,30, + 57,128,30,59,0,30,62,0,28,62,48,60,60,120,56,30, + 112,120,62,64,240,47,65,224,111,99,192,71,63,0,199,0, + 0,135,0,0,131,0,0,131,0,0,199,0,0,102,0,0, + 60,0,0,22,23,69,25,1,0,0,252,0,3,255,0,15, + 3,192,28,0,224,56,0,112,50,1,48,103,3,152,99,135, + 24,193,134,8,192,204,12,192,120,12,192,48,12,192,120,12, + 192,204,12,193,134,12,99,135,24,103,3,152,50,1,48,56, + 0,112,28,0,224,15,3,192,3,255,0,0,252,0,22,23, + 69,25,1,0,0,252,0,3,255,0,15,3,192,28,48,224, + 24,48,96,48,48,48,96,48,24,96,48,24,96,48,24,192, + 48,12,192,48,12,223,255,236,223,255,236,192,48,12,192,48, + 12,96,48,24,96,48,24,48,48,48,56,48,112,28,48,224, + 15,3,192,3,255,0,0,252,0,24,24,72,27,1,0,0, + 126,2,3,255,198,7,129,238,14,0,124,24,0,56,48,0, + 124,112,0,238,96,1,198,96,3,134,192,7,3,192,14,3, + 192,28,3,192,56,3,192,112,3,192,224,3,97,192,6,99, + 128,6,119,0,14,62,0,12,28,0,24,62,0,112,119,129, + 224,227,255,192,192,126,0,22,17,51,25,1,0,0,252,0, + 3,255,0,15,3,192,28,0,224,56,0,112,48,0,48,96, + 0,24,96,0,24,192,0,12,192,0,12,192,0,12,192,0, + 12,192,0,12,192,0,12,192,0,12,192,0,12,192,0,12, + 22,17,51,25,1,0,192,0,12,192,0,12,192,0,12,192, + 0,12,192,0,12,192,0,12,192,0,12,192,0,12,192,0, + 12,96,0,24,96,0,24,48,0,48,56,0,112,28,0,224, + 15,3,192,3,255,0,0,252,0,21,16,48,23,1,0,255, + 255,0,255,255,192,0,1,224,0,0,112,0,0,48,0,0, + 56,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, + 0,0,48,0,0,112,0,0,224,255,255,192,255,255,0,21, + 20,60,23,1,252,255,255,0,255,255,192,0,0,224,0,0, + 112,0,0,48,0,0,24,0,0,24,0,0,24,0,0,24, + 0,0,24,0,0,24,0,0,48,0,0,112,0,0,224,255, + 255,192,255,255,0,0,0,0,0,0,0,255,255,240,255,255, + 240,21,20,60,23,1,254,0,0,96,0,0,192,7,255,248, + 15,255,248,56,1,128,112,3,0,96,3,0,224,6,0,192, + 6,0,192,12,0,192,12,0,192,24,0,224,24,0,96,48, + 0,112,48,0,60,96,0,31,255,248,7,255,248,0,192,0, + 1,128,0,21,16,48,23,1,0,7,255,248,31,255,248,56, + 0,0,112,0,0,96,0,0,192,0,0,192,0,0,192,0, + 0,192,0,0,192,0,0,224,0,0,96,0,0,112,0,0, + 60,0,0,31,255,248,7,255,248,21,20,60,23,1,252,7, + 255,248,31,255,248,56,0,0,112,0,0,96,0,0,192,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 96,0,0,112,0,0,56,0,0,31,255,248,7,255,248,0, + 0,0,0,0,0,127,255,248,127,255,248,15,16,32,23,1, + 0,7,254,31,254,56,0,112,0,96,0,192,0,192,0,255, + 254,255,254,192,0,192,0,96,0,112,0,56,0,31,254,7, + 254,15,20,40,23,1,254,0,24,0,24,7,254,31,254,56, + 96,112,96,96,192,64,192,193,128,255,254,255,254,195,0,70, + 0,110,0,124,0,60,0,31,254,55,254,48,0,32,0,22, + 22,66,25,1,0,0,0,12,0,0,28,0,0,56,0,0, + 112,0,0,224,0,1,192,0,3,128,0,7,0,0,14,0, + 0,28,0,0,56,0,0,112,0,0,96,0,0,192,0,1, + 128,0,3,0,0,7,0,0,14,0,0,28,0,0,56,0, + 0,127,255,248,255,255,248,20,24,72,23,1,0,255,255,240, + 127,255,240,120,0,48,120,0,32,60,0,96,60,0,64,28, + 0,192,30,0,192,30,1,128,15,1,128,15,1,0,7,3, + 0,7,130,0,7,134,0,3,196,0,3,204,0,3,204,0, + 1,248,0,1,248,0,0,240,0,0,240,0,0,224,0,0, + 96,0,0,64,0,21,22,66,25,2,0,1,252,0,7,7, + 0,12,1,192,24,0,192,51,248,96,97,142,48,65,134,16, + 193,134,24,193,134,24,129,140,8,129,248,8,129,184,8,129, + 152,8,193,156,24,193,142,24,65,135,16,103,195,176,48,0, + 96,24,0,192,28,1,192,7,7,0,1,252,0,21,23,69, + 25,2,0,1,252,0,7,207,0,14,1,128,24,0,192,48, + 0,96,48,0,48,96,125,48,65,199,16,195,3,24,195,1, + 24,134,0,8,134,0,8,134,0,8,134,0,8,134,0,8, + 199,0,24,67,3,24,97,199,16,32,252,48,48,0,96,28, + 0,192,7,135,128,1,254,0,27,13,52,29,1,10,255,220, + 1,224,204,206,3,128,140,78,3,128,12,15,7,128,12,11, + 5,128,12,11,141,128,12,9,141,128,12,9,201,128,12,8, + 217,128,12,8,241,128,12,8,113,128,12,8,97,128,62,30, + 39,224,25,27,108,27,1,0,255,255,255,128,63,255,254,0, + 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, + 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, + 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, + 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, + 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, + 30,0,60,0,30,0,60,0,30,0,60,0,63,0,126,0, + 255,193,255,128,17,27,81,18,0,0,0,0,128,0,0,128, + 0,0,128,0,0,128,0,1,128,0,1,0,0,1,0,0, + 3,0,0,2,0,8,2,0,56,2,0,236,6,0,12,4, + 0,6,4,0,6,4,0,3,4,0,3,12,0,1,140,0, + 1,136,0,0,200,0,0,200,0,0,104,0,0,120,0,0, + 56,0,0,48,0,0,16,0,0,16,0,3,3,3,8,2, + 7,224,224,224,21,10,30,23,1,0,255,255,248,255,255,248, + 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, + 0,24,0,0,24,0,0,24,16,15,30,20,2,0,1,128, + 1,128,3,192,3,192,6,96,14,112,12,48,28,56,24,24, + 48,12,48,12,96,6,224,7,192,3,128,1,16,15,30,20, + 2,0,128,1,192,3,224,7,96,6,48,12,48,12,24,24, + 28,56,12,48,6,96,6,96,3,192,3,192,1,128,1,128, + 32,18,72,34,1,0,0,128,1,0,1,128,1,128,3,0, + 0,192,6,0,0,96,15,255,255,240,31,255,255,248,56,0, + 0,28,112,0,0,14,224,0,0,7,224,0,0,7,112,0, + 0,14,56,0,0,28,31,255,255,248,15,255,255,240,6,0, + 0,96,3,0,0,192,1,128,1,128,0,128,1,0,29,17, + 68,32,1,0,0,128,0,0,1,128,0,0,3,0,0,0, + 6,0,0,0,15,255,255,248,31,255,255,248,56,0,0,0, + 112,0,0,0,224,0,0,0,112,0,0,0,56,0,0,0, + 31,255,255,248,15,255,255,248,6,0,0,0,3,0,0,0, + 1,128,0,0,0,128,0,0,17,27,81,20,1,0,0,128, + 0,1,192,0,3,224,0,7,112,0,14,56,0,28,28,0, + 60,30,0,124,31,0,236,27,128,12,24,0,12,24,0,12, + 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, + 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, + 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,29, + 17,68,32,2,0,0,0,8,0,0,0,12,0,0,0,6, + 0,0,0,3,0,255,255,255,128,255,255,255,192,0,0,0, + 224,0,0,0,112,0,0,0,56,0,0,0,112,0,0,0, + 224,255,255,255,192,255,255,255,128,0,0,3,0,0,0,6, + 0,0,0,12,0,0,0,8,0,17,27,81,20,1,0,12, + 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, + 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, + 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,12, + 24,0,12,24,0,236,27,128,124,31,0,60,30,0,28,28, + 0,14,56,0,7,112,0,3,224,0,1,192,0,0,128,0, + 14,25,50,16,1,0,3,0,7,128,7,128,12,192,12,192, + 24,96,24,96,48,48,48,48,96,24,96,24,192,12,192,12, + 224,28,96,24,96,24,48,48,48,48,24,96,24,96,12,192, + 12,192,7,128,7,128,3,0,9,30,60,11,1,250,1,128, + 3,0,3,0,6,0,6,0,14,0,12,0,28,0,24,0, + 56,0,48,0,48,0,96,0,96,0,192,0,192,0,96,0, + 96,0,48,0,48,0,56,0,24,0,28,0,12,0,14,0, + 6,0,6,0,3,0,3,0,1,128,21,22,66,26,2,0, + 1,252,0,7,15,0,12,1,128,24,0,192,48,0,96,99, + 254,48,67,6,16,195,3,24,195,3,24,195,3,24,131,6, + 8,131,252,8,131,6,8,195,3,24,195,3,24,67,3,16, + 99,3,48,32,0,32,48,0,96,28,1,192,7,15,0,3, + 252,0,21,23,69,26,2,0,1,252,0,7,223,0,14,3, + 128,24,0,192,48,0,96,32,0,32,96,252,48,65,206,16, + 195,6,24,195,3,24,194,0,8,134,0,8,134,0,8,134, + 0,8,134,3,24,195,3,24,67,6,24,97,206,48,32,248, + 48,48,0,96,28,0,192,15,135,128,3,254,0,22,13,39, + 25,1,10,255,56,28,24,56,28,24,56,28,24,60,60,24, + 60,60,24,52,44,24,54,108,24,54,108,24,50,76,24,51, + 204,24,51,204,24,49,140,24,49,140,21,28,84,23,1,255, + 255,255,224,120,3,224,124,0,96,60,0,96,30,0,32,15, + 0,0,15,128,0,7,128,0,3,192,0,3,224,0,1,240, + 0,0,240,0,0,120,0,0,120,0,0,56,0,0,48,0, + 0,96,0,0,192,0,1,128,0,3,128,0,3,0,0,6, + 0,8,12,0,24,24,0,24,48,0,48,127,255,240,127,255, + 240,255,255,240,13,34,68,13,1,249,0,24,0,120,0,224, + 1,192,3,128,3,0,6,0,12,0,12,0,24,0,24,0, + 56,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0, + 96,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,2,34, + 34,13,1,249,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,13,34,68,13,1,249,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,96,0,96,0,96,0,96,0, + 96,0,48,0,48,0,48,0,56,0,24,0,24,0,12,0, + 12,0,6,0,3,0,3,128,1,192,0,224,0,120,0,24, + 11,34,68,13,0,249,255,224,255,224,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,2,34,34,13,0,249, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,11,34,68,13,0,249,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,255,224,255,224,8,34,34,16, + 6,249,7,31,56,112,96,96,224,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,9,34,68,16,255,249,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 3,0,3,0,6,0,12,0,56,0,224,0,120,0,12,0, + 6,0,3,0,3,0,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,8,34, + 34,16,6,249,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, + 96,96,112,56,31,7,2,34,34,16,6,249,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,9, + 30,60,11,1,250,192,0,96,0,96,0,48,0,48,0,56, + 0,24,0,28,0,12,0,14,0,6,0,6,0,3,0,3, + 0,1,128,1,128,3,0,3,0,6,0,6,0,14,0,12, + 0,28,0,24,0,56,0,48,0,48,0,96,0,96,0,192, + 0,9,33,66,9,0,250,3,0,7,128,7,128,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,248,0,248,0,112,0,12,34,68,23,10,249,1, + 224,3,240,6,112,12,240,8,96,24,0,24,0,48,0,48, + 0,48,0,112,0,96,0,96,0,96,0,96,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, + 0,224,0,3,34,34,22,10,249,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,12,34,68,22,1, + 249,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,0,112,0,96,0,96,0,96,0,96,0, + 224,0,192,0,192,0,192,1,128,1,128,97,0,243,0,230, + 0,252,0,120,0,13,34,68,13,0,249,192,0,240,0,56, + 0,24,0,12,0,6,0,3,0,1,0,1,128,0,192,0, + 192,0,192,0,96,0,96,0,96,0,48,0,48,0,48,0, + 48,0,48,0,16,0,16,0,24,0,24,0,24,0,24,0, + 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,2, + 34,34,13,11,249,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,13,34,68,13,0,249,0,24,0, + 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, + 24,0,24,0,24,0,16,0,16,0,48,0,48,0,48,0, + 48,0,48,0,96,0,96,0,96,0,192,0,192,0,192,1, + 128,1,0,3,0,6,0,12,0,28,0,56,0,240,0,192, + 0,11,34,68,13,1,249,255,224,255,224,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,2,34,34,13,10, + 249,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,11,34,68,13,1,249,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,255,224,255,224,8,34,34, + 16,0,249,224,120,28,14,6,6,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,9,34,68,16,6,249,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,96,0,96,0,48,0,24,0,14,0,3,128,14,0,24, + 0,48,0,96,0,96,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,8, + 33,33,16,0,250,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 6,6,14,28,120,224,255}; +/* + Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=27 h=33 x=15 y=26 dx=29 dy= 0 ascent=27 len=92 + Font Bounding box w=40 h=34 x=-5 y=-7 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =27 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_symb24r[5335] U8G_SECTION(".progmem.u8g_font_symb24r") = { + 0,40,34,251,249,23,5,133,13,247,32,127,249,27,249,23, + 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, + 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, + 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, + 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, + 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, + 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, + 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, + 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, + 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, + 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, + 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, + 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, + 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, + 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, + 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, + 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, + 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, + 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, + 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, + 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, + 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, + 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, + 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, + 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, + 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, + 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, + 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, + 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, + 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, + 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, + 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, + 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, + 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, + 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, + 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, + 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, + 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, + 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, + 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, + 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, + 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, + 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, + 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, + 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, + 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, + 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, + 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, + 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, + 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, + 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, + 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, + 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, + 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, + 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, + 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, + 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, + 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, + 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, + 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, + 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, + 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, + 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, + 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, + 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, + 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, + 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, + 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, + 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, + 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, + 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, + 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, + 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, + 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, + 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, + 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, + 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, + 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, + 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, + 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, + 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, + 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, + 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, + 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, + 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, + 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, + 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, + 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, + 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, + 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, + 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, + 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, + 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, + 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, + 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, + 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, + 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, + 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, + 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, + 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, + 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, + 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, + 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, + 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, + 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, + 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, + 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, + 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, + 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, + 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, + 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, + 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, + 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, + 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, + 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, + 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, + 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, + 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, + 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, + 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, + 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, + 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, + 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, + 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, + 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, + 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, + 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, + 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, + 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, + 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, + 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, + 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, + 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, + 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, + 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, + 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, + 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, + 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, + 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, + 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, + 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, + 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, + 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, + 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, + 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, + 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, + 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, + 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, + 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, + 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, + 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, + 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, + 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, + 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, + 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, + 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, + 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, + 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, + 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, + 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, + 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, + 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, + 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, + 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, + 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, + 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, + 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, + 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, + 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, + 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, + 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, + 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, + 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, + 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, + 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, + 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, + 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, + 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, + 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, + 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, + 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, + 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, + 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, + 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, + 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, + 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, + 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, + 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, + 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, + 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, + 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, + 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, + 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, + 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, + 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, + 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, + 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, + 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, + 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, + 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, + 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, + 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, + 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, + 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, + 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, + 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, + 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, + 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, + 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, + 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, + 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, + 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, + 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, + 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, + 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, + 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, + 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, + 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, + 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, + 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, + 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, + 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, + 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, + 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, + 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, + 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, + 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, + 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, + 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, + 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, + 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, + 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, + 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, + 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, + 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, + 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, + 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, + 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, + 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, + 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, + 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, + 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, + 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, + 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, + 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, + 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, + 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, + 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, + 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, + 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, + 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, + 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, + 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, + 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, + 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, + 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, + 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, + 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, + 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, + 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, + 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, + 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, + 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, + 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, + 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, + 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, + 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, + 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, + 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, + 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, + 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, + 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, + 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, + 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, + 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, + 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, + 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, + 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, + 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, + 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, + 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, + 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, + 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, + 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, + 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, + 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, + 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, + 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, + 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, + 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, + 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, + 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, + 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, + 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, + 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, + 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, + 127,134,227,254,192,56,255}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w=10 h=11 x= 1 y= 6 dx=11 dy= 0 ascent=10 len=18 + Font Bounding box w=13 h=18 x=-2 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-3 + X Font ascent = 7 descent=-3 + Max Font ascent =10 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB08[2551] U8G_SECTION(".progmem.u8g_font_timB08") = { + 0,13,18,254,251,7,1,164,3,77,32,255,253,10,253,7, + 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, + 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, + 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, + 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, + 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, + 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, + 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, + 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, + 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, + 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, + 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, + 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, + 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, + 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, + 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, + 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, + 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, + 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, + 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, + 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, + 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, + 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, + 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, + 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, + 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, + 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, + 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, + 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, + 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, + 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, + 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, + 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, + 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, + 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, + 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, + 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, + 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, + 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, + 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, + 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, + 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, + 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, + 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, + 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, + 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, + 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, + 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, + 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, + 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, + 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, + 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, + 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, + 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, + 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, + 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, + 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, + 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, + 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, + 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, + 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, + 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, + 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, + 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, + 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, + 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, + 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, + 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, + 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, + 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, + 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, + 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, + 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, + 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, + 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, + 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, + 0,2,104,176,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,2,0,1,2,7,7,4,1, + 253,192,192,0,192,192,192,192,5,7,7,6,0,255,16,120, + 208,208,224,120,32,5,7,7,6,0,0,56,104,96,248,96, + 232,216,5,5,5,6,0,1,136,112,80,112,136,5,7,7, + 6,0,0,216,216,112,32,112,32,112,1,7,7,3,1,0, + 128,128,128,0,128,128,128,4,9,9,5,0,254,96,176,192, + 160,208,112,48,208,96,3,1,1,4,0,5,160,7,7,7, + 9,1,0,56,68,154,162,154,68,56,3,6,6,4,0,1, + 192,32,224,160,0,224,5,5,5,6,0,0,40,80,160,80, + 40,5,3,3,7,1,1,248,8,8,3,1,1,3,0,2, + 224,7,7,7,9,1,0,56,68,186,178,170,68,56,3,1, + 1,4,0,5,224,4,3,3,4,0,4,96,144,96,5,7, + 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, + 3,96,160,64,224,3,4,4,3,0,3,224,64,32,192,2, + 2,2,4,1,5,64,128,5,8,8,5,0,253,216,208,208, + 208,240,128,192,192,6,10,10,6,0,253,124,232,232,232,104, + 40,40,40,40,40,1,2,2,3,1,2,128,128,2,3,3, + 3,1,253,128,64,192,3,4,4,3,0,3,64,192,64,224, + 3,6,6,4,0,1,64,160,160,64,0,224,5,5,5,6, + 0,0,160,80,40,80,160,7,7,7,7,0,0,68,200,72, + 244,44,62,68,7,7,7,7,0,0,68,200,72,246,42,36, + 78,7,7,7,7,0,0,228,72,40,212,44,62,68,4,7, + 7,6,1,253,96,96,0,64,208,208,96,8,10,10,7,255, + 0,32,16,0,16,24,56,44,124,78,239,8,10,10,7,255, + 0,8,16,0,16,24,56,44,124,78,239,8,10,10,7,255, + 0,16,40,0,16,24,56,44,124,78,239,8,10,10,7,255, + 0,52,88,0,16,24,56,44,124,78,239,8,9,9,7,255, + 0,36,0,16,24,56,44,124,78,239,8,10,10,7,255,0, + 24,36,24,16,24,56,44,124,78,239,9,7,14,9,255,0, + 63,128,28,128,44,0,47,0,124,0,76,128,239,128,6,10, + 10,7,0,253,124,204,192,192,192,236,120,32,16,48,6,10, + 10,7,0,0,32,16,0,252,100,96,120,96,100,252,6,10, + 10,7,0,0,8,16,0,252,100,96,120,96,100,252,6,10, + 10,7,0,0,48,72,0,252,100,96,120,96,100,252,6,9, + 9,7,0,0,40,0,252,100,96,120,96,100,252,4,10,10, + 5,0,0,64,32,0,240,96,96,96,96,96,240,4,10,10, + 5,0,0,32,64,0,240,96,96,96,96,96,240,4,10,10, + 5,0,0,96,144,0,240,96,96,96,96,96,240,4,9,9, + 5,0,0,144,0,240,96,96,96,96,96,240,7,7,7,8, + 0,0,252,102,102,246,102,102,252,7,10,10,8,0,0,52, + 88,0,238,100,116,92,92,76,228,6,10,10,7,0,0,32, + 16,0,120,204,204,204,204,204,120,6,10,10,7,0,0,16, + 32,0,120,204,204,204,204,204,120,6,10,10,7,0,0,48, + 72,0,120,204,204,204,204,204,120,6,10,10,7,0,0,52, + 88,0,120,204,204,204,204,204,120,6,9,9,7,0,0,72, + 0,120,204,204,204,204,204,120,6,5,5,6,0,0,204,120, + 48,120,204,6,9,9,8,1,255,4,120,204,220,236,236,204, + 120,128,7,10,10,7,0,0,32,16,0,246,100,100,100,100, + 100,56,7,10,10,7,0,0,8,16,0,246,100,100,100,100, + 100,56,7,10,10,7,0,0,24,36,0,246,100,100,100,100, + 100,56,7,9,9,7,0,0,36,0,246,100,100,100,100,100, + 56,8,10,10,8,0,0,4,8,0,247,98,52,56,24,24, + 60,6,7,7,6,0,0,224,120,108,108,120,96,240,5,7, + 7,6,0,0,112,200,200,208,200,200,216,5,8,8,5,0, + 0,64,32,0,96,176,112,176,248,5,8,8,5,0,0,16, + 32,0,96,176,112,176,248,5,8,8,5,0,0,32,80,0, + 96,176,112,176,248,5,8,8,5,0,0,104,176,0,96,176, + 112,176,248,5,7,7,5,0,0,80,0,96,176,112,176,248, + 5,8,8,5,0,0,32,80,32,96,176,112,176,248,7,5, + 5,8,0,0,110,186,126,184,238,4,8,8,5,0,253,112, + 208,192,208,112,64,32,96,4,8,8,5,0,0,64,32,0, + 112,208,240,192,112,4,8,8,5,0,0,16,32,0,112,208, + 240,192,112,5,8,8,5,0,0,32,80,136,112,208,240,192, + 112,4,7,7,5,0,0,80,0,112,208,240,192,112,2,8, + 8,3,0,0,128,64,0,192,192,192,192,192,2,8,8,3, + 0,0,64,128,0,192,192,192,192,192,3,8,8,3,0,0, + 64,160,0,192,192,192,192,192,3,7,7,3,0,0,160,0, + 192,192,192,192,192,5,9,9,6,0,0,128,112,96,176,24, + 120,216,216,112,6,8,8,6,0,0,104,176,0,176,216,216, + 216,220,5,8,8,6,0,0,64,32,0,112,216,216,216,112, + 5,8,8,6,0,0,16,32,0,112,216,216,216,112,5,8, + 8,6,0,0,32,80,0,112,216,216,216,112,5,8,8,6, + 0,0,104,176,0,112,216,216,216,112,5,7,7,6,0,0, + 80,0,112,216,216,216,112,5,5,5,6,0,0,32,0,248, + 0,32,5,7,7,6,0,255,16,112,216,216,216,112,64,5, + 8,8,5,0,0,64,32,0,216,208,208,208,112,5,8,8, + 5,0,0,16,32,0,216,208,208,208,112,5,8,8,5,0, + 0,32,80,0,216,208,208,208,112,5,7,7,5,0,0,80, + 0,216,208,208,208,112,5,11,11,5,0,253,16,32,0,216, + 216,112,112,32,32,192,192,5,10,10,5,255,253,224,96,112, + 104,104,104,112,96,96,224,5,10,10,5,0,253,80,0,216, + 216,112,112,32,32,192,192}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w=10 h=10 x= 1 y= 6 dx=11 dy= 0 ascent= 8 len=18 + Font Bounding box w=13 h=18 x=-2 y=-5 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-3 + X Font ascent = 7 descent=-3 + Max Font ascent = 8 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB08r[1221] U8G_SECTION(".progmem.u8g_font_timB08r") = { + 0,13,18,254,251,7,1,164,3,77,32,127,253,8,253,7, + 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, + 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, + 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, + 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, + 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, + 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, + 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, + 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, + 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, + 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, + 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, + 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, + 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, + 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, + 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, + 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, + 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, + 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, + 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, + 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, + 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, + 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, + 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, + 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, + 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, + 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, + 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, + 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, + 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, + 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, + 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, + 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, + 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, + 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, + 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, + 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, + 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, + 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, + 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, + 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, + 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, + 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, + 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, + 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, + 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, + 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, + 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, + 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, + 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, + 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, + 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, + 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, + 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, + 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, + 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, + 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, + 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, + 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, + 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, + 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, + 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, + 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, + 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, + 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, + 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, + 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, + 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, + 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, + 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, + 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, + 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, + 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, + 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, + 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, + 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, + 0,2,104,176,255}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=15 h=14 x= 1 y= 8 dx=14 dy= 0 ascent=14 len=28 + Font Bounding box w=17 h=24 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB10[3539] U8G_SECTION(".progmem.u8g_font_timB10") = { + 0,17,24,254,250,10,2,6,4,148,32,255,253,14,253,10, + 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, + 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, + 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, + 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, + 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, + 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, + 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, + 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, + 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, + 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, + 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, + 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, + 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, + 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, + 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, + 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, + 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, + 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, + 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, + 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, + 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, + 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, + 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, + 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, + 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, + 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, + 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, + 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, + 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, + 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, + 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, + 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, + 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, + 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, + 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, + 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, + 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, + 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, + 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, + 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, + 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, + 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, + 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, + 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, + 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, + 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, + 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, + 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, + 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, + 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, + 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, + 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, + 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, + 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, + 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, + 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, + 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, + 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, + 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, + 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, + 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, + 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, + 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, + 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, + 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, + 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, + 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, + 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, + 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, + 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, + 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, + 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, + 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, + 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, + 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, + 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, + 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, + 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, + 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, + 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, + 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, + 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, + 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, + 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, + 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, + 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, + 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, + 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, + 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, + 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, + 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, + 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, + 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, + 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, + 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, + 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, + 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, + 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, + 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, + 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 0,0,0,3,0,1,2,10,10,4,1,253,192,192,0,192, + 192,192,192,192,192,192,6,11,11,7,0,254,8,8,120,212, + 208,208,240,228,120,32,32,7,10,10,8,0,0,60,118,102, + 96,48,248,48,48,246,222,7,6,6,8,0,2,56,238,68, + 68,238,56,8,10,10,8,0,0,247,98,118,52,60,24,60, + 24,24,60,1,12,12,3,1,254,128,128,128,128,128,0,0, + 128,128,128,128,128,5,12,12,7,1,254,112,216,200,96,240, + 152,200,120,48,152,216,112,3,2,2,5,1,8,160,160,10, + 10,20,12,1,0,30,0,97,128,78,128,146,64,144,64,144, + 64,146,64,76,128,97,128,30,0,4,7,7,5,0,3,96, + 16,112,144,112,0,240,7,5,5,9,1,1,54,108,216,108, + 54,7,4,4,9,1,1,254,2,2,2,3,1,1,4,0, + 3,224,10,10,20,12,1,0,30,0,97,128,92,128,146,64, + 146,64,156,64,148,64,82,128,97,128,30,0,4,1,1,5, + 0,8,240,4,4,4,6,1,6,96,144,144,96,7,9,9, + 8,0,0,16,16,16,254,16,16,16,0,254,4,6,6,4, + 0,4,96,176,48,96,192,240,4,6,6,4,0,4,96,176, + 96,48,176,96,3,3,3,5,1,8,32,96,128,8,10,10, + 7,255,253,238,102,102,102,102,102,123,64,96,96,7,13,13, + 8,0,253,126,244,244,244,244,116,20,20,20,20,20,20,20, + 2,2,2,4,0,4,192,192,3,3,3,5,1,253,64,32, + 224,4,6,6,4,0,4,32,224,96,96,96,240,4,7,7, + 5,0,3,96,144,144,144,96,0,240,7,5,5,9,1,1, + 216,108,54,108,216,10,10,20,10,0,0,33,0,226,0,98, + 0,100,0,100,128,249,128,11,128,22,128,23,192,33,128,10, + 10,20,10,0,0,33,0,226,0,98,0,100,0,101,128,250, + 192,8,192,17,128,19,0,35,192,10,10,20,10,0,0,97, + 0,178,0,98,0,52,0,180,128,105,128,11,128,22,128,23, + 192,33,128,5,10,10,7,1,253,48,48,0,48,48,96,192, + 216,216,112,10,14,28,10,0,0,16,0,24,0,4,0,0, + 0,12,0,12,0,30,0,22,0,51,0,35,0,63,0,97, + 128,65,128,227,192,10,14,28,10,0,0,2,0,6,0,8, + 0,0,0,12,0,12,0,30,0,22,0,51,0,35,0,63, + 0,97,128,65,128,227,192,10,14,28,10,0,0,8,0,28, + 0,34,0,0,0,12,0,12,0,30,0,22,0,51,0,35, + 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,26, + 0,44,0,0,0,12,0,12,0,30,0,22,0,51,0,35, + 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,18, + 0,18,0,0,0,12,0,12,0,30,0,22,0,51,0,35, + 0,63,0,97,128,65,128,227,192,10,14,28,10,0,0,12, + 0,18,0,12,0,0,0,12,0,12,0,30,0,22,0,51, + 0,35,0,63,0,97,128,65,128,227,192,13,10,20,14,0, + 0,31,248,15,24,11,8,27,32,19,224,63,32,35,40,99, + 8,67,24,231,248,8,13,13,10,1,253,61,99,193,193,192, + 192,192,193,99,62,16,8,56,8,14,14,9,0,0,32,48, + 8,0,255,99,97,100,124,100,101,97,99,255,8,14,14,9, + 0,0,4,12,16,0,255,99,97,100,124,100,101,97,99,255, + 8,14,14,9,0,0,8,28,34,0,255,99,97,100,124,100, + 101,97,99,255,8,13,13,9,0,0,36,36,0,255,99,97, + 100,124,100,101,97,99,255,4,14,14,5,0,0,128,192,32, + 0,240,96,96,96,96,96,96,96,96,240,4,14,14,5,0, + 0,16,48,64,0,240,96,96,96,96,96,96,96,96,240,5, + 14,14,5,0,0,32,112,136,0,240,96,96,96,96,96,96, + 96,96,240,4,13,13,5,0,0,144,144,0,240,96,96,96, + 96,96,96,96,96,240,9,10,20,11,1,0,254,0,99,0, + 97,128,97,128,241,128,97,128,97,128,97,128,99,0,254,0, + 10,13,26,10,0,0,26,0,44,0,0,0,225,192,112,128, + 112,128,88,128,76,128,76,128,70,128,67,128,67,128,225,128, + 9,14,28,11,1,0,16,0,24,0,4,0,0,0,62,0, + 99,0,193,128,193,128,193,128,193,128,193,128,193,128,99,0, + 62,0,9,14,28,11,1,0,4,0,12,0,16,0,0,0, + 62,0,99,0,193,128,193,128,193,128,193,128,193,128,193,128, + 99,0,62,0,9,14,28,11,1,0,8,0,28,0,34,0, + 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, + 193,128,99,0,62,0,9,13,26,11,1,0,26,0,44,0, + 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, + 193,128,99,0,62,0,9,13,26,11,1,0,34,0,34,0, + 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, + 193,128,99,0,62,0,8,7,7,8,0,0,195,102,60,24, + 60,102,195,9,12,24,11,1,255,0,128,61,0,99,0,195, + 128,197,128,201,128,201,128,209,128,225,128,99,0,94,0,128, + 0,9,14,28,10,0,0,16,0,24,0,4,0,0,0,243, + 128,97,0,97,0,97,0,97,0,97,0,97,0,97,0,115, + 0,62,0,9,14,28,10,0,0,4,0,12,0,16,0,0, + 0,243,128,97,0,97,0,97,0,97,0,97,0,97,0,97, + 0,115,0,62,0,9,14,28,10,0,0,8,0,28,0,34, + 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, + 0,97,0,115,0,62,0,9,13,26,10,0,0,18,0,18, + 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, + 0,97,0,115,0,62,0,10,14,28,10,0,0,1,0,3, + 0,4,0,0,0,249,192,112,128,49,0,57,0,26,0,30, + 0,12,0,12,0,12,0,30,0,8,10,10,9,0,0,240, + 96,126,103,99,99,99,126,96,240,7,10,10,8,0,0,56, + 108,100,108,120,108,102,102,102,236,7,11,11,7,0,0,32, + 48,8,0,120,204,12,124,204,204,118,7,11,11,7,0,0, + 8,24,32,0,120,204,12,124,204,204,118,7,11,11,7,0, + 0,16,56,68,0,120,204,12,124,204,204,118,7,10,10,7, + 0,0,52,88,0,120,204,12,124,204,204,118,7,10,10,7, + 0,0,40,40,0,120,204,12,124,204,204,118,7,11,11,7, + 0,0,48,72,48,0,120,204,12,124,204,204,118,10,7,14, + 11,0,0,123,128,204,192,204,192,63,192,204,0,204,192,119, + 128,6,10,10,7,0,253,56,76,204,192,192,228,120,32,16, + 112,6,11,11,7,0,0,64,96,16,0,56,76,204,252,192, + 228,120,6,11,11,7,0,0,8,24,32,0,56,76,204,252, + 192,228,120,6,11,11,7,0,0,16,56,68,0,56,76,204, + 252,192,228,120,6,10,10,7,0,0,80,80,0,56,76,204, + 252,192,228,120,4,11,11,4,0,0,128,192,32,0,224,96, + 96,96,96,96,240,4,11,11,4,0,0,32,96,128,0,224, + 96,96,96,96,96,240,5,11,11,4,0,0,32,112,136,0, + 224,96,96,96,96,96,240,4,10,10,4,0,0,160,160,0, + 224,96,96,96,96,96,240,6,10,10,7,0,0,204,112,152, + 120,204,204,204,204,204,120,8,10,10,8,0,0,52,88,0, + 236,118,102,102,102,102,231,6,11,11,7,0,0,32,48,8, + 0,120,204,204,204,204,204,120,6,11,11,7,0,0,8,24, + 32,0,120,204,204,204,204,204,120,6,11,11,7,0,0,32, + 112,136,0,120,204,204,204,204,204,120,6,10,10,7,0,0, + 104,176,0,120,204,204,204,204,204,120,6,10,10,7,0,0, + 80,80,0,120,204,204,204,204,204,120,6,7,7,8,0,0, + 48,48,0,252,0,48,48,6,9,9,7,0,255,4,120,204, + 220,236,236,204,120,128,8,11,11,7,255,0,32,48,8,0, + 238,102,102,102,102,102,59,8,11,11,7,255,0,4,12,16, + 0,238,102,102,102,102,102,59,8,11,11,7,255,0,16,56, + 68,0,238,102,102,102,102,102,59,8,10,10,7,255,0,40, + 40,0,238,102,102,102,102,102,59,8,14,14,7,255,253,2, + 6,8,0,247,98,50,52,28,28,8,8,56,48,7,13,13, + 8,0,253,224,96,96,108,118,102,102,102,102,124,96,96,240, + 8,13,13,7,255,253,34,34,0,247,98,50,52,28,28,8, + 8,56,48}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=15 h=13 x= 1 y= 8 dx=14 dy= 0 ascent=11 len=26 + Font Bounding box w=17 h=24 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =11 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB10r[1632] U8G_SECTION(".progmem.u8g_font_timB10r") = { + 0,17,24,254,250,10,2,6,4,148,32,127,253,11,253,10, + 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, + 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, + 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, + 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, + 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, + 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, + 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, + 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, + 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, + 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, + 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, + 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, + 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, + 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, + 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, + 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, + 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, + 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, + 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, + 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, + 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, + 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, + 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, + 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, + 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, + 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, + 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, + 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, + 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, + 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, + 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, + 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, + 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, + 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, + 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, + 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, + 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, + 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, + 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, + 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, + 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, + 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, + 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, + 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, + 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, + 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, + 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, + 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, + 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, + 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, + 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, + 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, + 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, + 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, + 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, + 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, + 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, + 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, + 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, + 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, + 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, + 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, + 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, + 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, + 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, + 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, + 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, + 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, + 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, + 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, + 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, + 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, + 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, + 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, + 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, + 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, + 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, + 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, + 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, + 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, + 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, + 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, + 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, + 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, + 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, + 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, + 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, + 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, + 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, + 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, + 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, + 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, + 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, + 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, + 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, + 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, + 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, + 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, + 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, + 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, + 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255 + }; +/* + Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=17 h=16 x= 2 y= 9 dx=17 dy= 0 ascent=16 len=33 + Font Bounding box w=19 h=27 x=-2 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =11 descent=-4 + Max Font ascent =16 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB12[3887] U8G_SECTION(".progmem.u8g_font_timB12") = { + 0,19,27,254,249,11,2,42,5,41,32,255,252,16,252,11, + 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, + 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, + 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, + 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, + 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, + 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, + 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, + 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, + 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, + 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, + 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, + 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, + 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, + 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, + 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, + 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, + 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, + 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, + 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, + 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, + 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, + 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, + 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, + 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, + 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, + 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, + 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, + 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, + 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, + 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, + 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, + 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, + 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, + 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, + 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, + 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, + 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, + 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, + 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, + 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, + 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, + 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, + 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, + 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, + 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, + 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, + 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, + 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, + 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, + 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, + 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, + 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, + 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, + 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, + 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, + 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, + 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, + 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, + 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, + 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, + 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, + 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, + 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, + 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, + 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, + 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, + 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, + 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, + 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, + 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, + 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, + 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, + 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, + 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, + 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, + 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, + 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, + 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, + 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, + 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, + 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, + 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, + 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, + 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, + 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, + 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, + 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, + 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, + 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, + 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, + 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, + 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, + 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, + 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, + 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, + 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, + 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, + 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, + 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, + 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, + 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, + 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, + 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, + 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, + 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, + 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, + 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, + 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, + 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, + 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, + 4,48,0,120,128,159,0,14,0,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, + 2,12,12,6,2,252,192,192,0,0,64,64,64,192,192,192, + 192,192,6,12,12,8,1,254,4,4,56,76,204,208,208,224, + 100,56,64,64,8,11,11,8,0,0,28,38,38,48,48,124, + 48,16,113,158,110,6,7,7,8,1,1,180,120,204,132,204, + 120,180,8,11,11,8,0,0,227,98,50,52,28,126,24,126, + 24,24,126,1,15,15,4,1,253,128,128,128,128,128,128,0, + 0,0,128,128,128,128,128,128,6,15,15,8,1,252,56,76, + 76,96,48,120,156,204,228,120,56,24,200,200,112,5,2,2, + 6,0,9,216,216,12,11,22,12,255,0,15,0,48,192,71, + 32,72,160,152,16,152,16,152,16,72,160,71,32,48,192,15, + 0,5,7,7,5,0,4,96,144,112,176,216,0,248,7,7, + 7,8,0,0,18,54,108,216,108,54,18,7,6,6,9,1, + 1,254,254,2,2,2,2,4,2,2,5,0,3,240,240,12, + 11,22,12,0,0,15,0,48,192,78,32,73,32,137,16,142, + 16,138,16,73,32,93,32,48,192,15,0,5,1,1,6,0, + 9,248,4,5,5,7,1,6,96,144,144,144,96,7,9,9, + 9,1,0,16,16,254,254,16,16,0,254,254,4,7,7,5, + 0,4,96,240,176,32,64,240,240,4,7,7,5,0,4,96, + 176,48,96,48,176,96,3,3,3,6,1,9,96,64,128,8, + 11,11,9,0,253,238,102,102,102,102,102,111,118,64,96,96, + 7,15,15,9,1,252,62,116,244,244,244,244,116,52,20,20, + 20,20,20,20,20,2,2,2,4,1,4,192,192,5,4,4, + 6,0,252,32,48,136,112,4,7,7,5,1,4,96,224,96, + 96,96,96,240,4,7,7,6,1,4,96,144,144,144,96,0, + 240,7,7,7,8,0,0,144,216,108,54,108,216,144,11,11, + 22,12,0,0,96,128,225,0,97,0,98,0,100,64,100,192, + 249,192,10,192,19,224,32,192,32,192,10,11,22,12,0,0, + 97,0,225,0,98,0,98,0,100,0,107,128,254,192,16,128, + 17,0,35,192,39,192,11,11,22,12,0,0,96,128,177,0, + 49,0,98,0,52,64,180,192,105,192,10,192,19,224,32,192, + 32,192,6,11,11,8,1,253,24,24,0,16,32,64,192,192, + 204,204,112,11,15,30,12,0,0,48,0,24,0,4,0,0, + 0,4,0,14,0,14,0,27,0,19,0,51,0,33,128,127, + 128,64,192,192,192,225,224,11,15,30,12,0,0,1,128,3, + 0,4,0,0,0,4,0,14,0,14,0,27,0,19,0,51, + 0,33,128,127,128,64,192,192,192,225,224,11,15,30,12,0, + 0,4,0,14,0,17,0,0,0,4,0,14,0,14,0,27, + 0,19,0,51,0,33,128,127,128,64,192,192,192,225,224,11, + 14,28,12,0,0,29,0,46,0,0,0,4,0,14,0,14, + 0,27,0,19,0,51,0,33,128,127,128,64,192,192,192,225, + 224,11,14,28,12,0,0,27,0,27,0,0,0,4,0,14, + 0,14,0,27,0,19,0,51,0,33,128,127,128,64,192,192, + 192,225,224,11,16,32,12,0,0,6,0,9,0,9,0,6, + 0,0,0,4,0,14,0,14,0,27,0,19,0,51,0,33, + 128,127,128,64,192,192,192,225,224,14,11,22,16,1,0,15, + 248,7,24,11,8,11,0,19,32,31,224,35,32,35,0,67, + 4,67,12,231,252,9,15,30,11,1,252,30,128,99,128,65, + 128,192,128,192,0,192,0,192,0,192,0,96,128,115,0,62, + 0,8,0,12,0,34,0,28,0,8,15,15,10,1,0,96, + 48,8,0,255,99,97,96,98,126,98,96,97,99,255,8,15, + 15,10,1,0,6,12,16,0,255,99,97,96,98,126,98,96, + 97,99,255,8,15,15,10,1,0,8,28,34,0,255,99,97, + 96,98,126,98,96,97,99,255,8,14,14,10,1,0,102,102, + 0,255,99,97,96,98,126,98,96,97,99,255,5,15,15,6, + 0,0,192,96,16,0,120,48,48,48,48,48,48,48,48,48, + 120,4,15,15,6,1,0,48,96,128,0,240,96,96,96,96, + 96,96,96,96,96,240,5,15,15,6,0,0,32,112,136,0, + 120,48,48,48,48,48,48,48,48,48,120,6,14,14,6,0, + 0,204,204,0,120,48,48,48,48,48,48,48,48,48,120,9, + 11,22,11,1,0,252,0,102,0,99,0,97,128,97,128,249, + 128,97,128,97,128,99,0,102,0,252,0,10,14,28,12,1, + 0,29,0,46,0,0,0,241,192,112,128,88,128,88,128,76, + 128,70,128,71,128,67,128,65,128,65,128,224,128,10,15,30, + 12,1,0,48,0,24,0,4,0,0,0,30,0,97,128,64, + 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,30, + 0,10,15,30,12,1,0,3,0,6,0,8,0,0,0,30, + 0,97,128,64,128,192,192,192,192,192,192,192,192,192,192,64, + 128,97,128,30,0,10,15,30,12,1,0,4,0,14,0,17, + 0,0,0,30,0,97,128,64,128,192,192,192,192,192,192,192, + 192,192,192,64,128,97,128,30,0,10,14,28,12,1,0,29, + 0,46,0,0,0,30,0,97,128,64,128,192,192,192,192,192, + 192,192,192,192,192,64,128,97,128,30,0,10,14,28,12,1, + 0,51,0,51,0,0,0,30,0,97,128,64,128,192,192,192, + 192,192,192,192,192,192,192,64,128,97,128,30,0,7,8,8, + 9,1,0,130,198,108,56,56,108,198,130,10,13,26,13,1, + 255,0,64,30,128,97,128,65,128,194,192,194,192,196,192,200, + 192,200,192,80,128,97,128,62,0,64,0,10,15,30,12,1, + 0,48,0,24,0,4,0,0,0,241,192,96,128,96,128,96, + 128,96,128,96,128,96,128,96,128,96,128,33,0,30,0,10, + 15,30,12,1,0,3,0,6,0,8,0,0,0,241,192,96, + 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,33, + 0,30,0,10,15,30,12,1,0,4,0,14,0,17,0,0, + 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, + 128,96,128,33,0,30,0,10,14,28,12,1,0,51,0,51, + 0,0,0,241,192,96,128,96,128,96,128,96,128,96,128,96, + 128,96,128,96,128,33,0,30,0,11,15,30,12,0,0,1, + 128,3,0,4,0,0,0,248,224,112,64,56,128,24,128,29, + 0,15,0,6,0,6,0,6,0,6,0,15,0,8,11,11, + 10,1,0,240,96,126,103,99,99,103,126,96,96,240,8,11, + 11,9,0,0,24,38,102,102,108,98,99,99,99,98,236,8, + 12,12,8,0,0,48,16,8,0,56,204,204,28,108,204,205, + 118,8,12,12,8,0,0,24,16,32,0,56,204,204,28,108, + 204,205,118,8,12,12,8,0,0,16,56,68,0,56,204,204, + 28,108,204,205,118,8,11,11,8,0,0,52,88,0,56,204, + 204,28,108,204,205,118,8,11,11,8,0,0,108,108,0,56, + 204,204,28,108,204,205,118,8,13,13,8,0,0,16,40,40, + 16,0,56,204,204,28,108,204,205,118,10,8,16,12,1,0, + 51,128,206,192,204,192,31,192,108,0,204,0,214,64,99,128, + 6,12,12,7,0,252,56,108,204,192,192,192,100,56,32,48, + 136,112,6,12,12,7,0,0,48,16,8,0,56,108,204,252, + 192,192,100,56,6,12,12,7,0,0,24,16,32,0,56,108, + 204,252,192,192,100,56,6,12,12,7,0,0,16,56,68,0, + 56,108,204,252,192,192,100,56,6,11,11,7,0,0,108,108, + 0,56,108,204,252,192,192,100,56,4,12,12,5,0,0,192, + 64,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, + 0,48,32,64,0,224,96,96,96,96,96,96,240,5,12,12, + 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,5, + 11,11,5,255,0,216,216,0,112,48,48,48,48,48,48,120, + 7,11,11,8,0,0,108,48,216,60,108,198,198,198,198,108, + 56,8,11,11,9,0,0,52,88,0,236,126,102,102,102,102, + 102,247,7,12,12,8,0,0,48,16,8,0,56,108,198,198, + 198,198,108,56,7,12,12,8,0,0,24,16,32,0,56,108, + 198,198,198,198,108,56,7,12,12,8,0,0,16,56,68,0, + 56,108,198,198,198,198,108,56,7,11,11,8,0,0,52,88, + 0,56,108,198,198,198,198,108,56,7,11,11,8,0,0,108, + 108,0,56,108,198,198,198,198,108,56,8,8,8,9,0,0, + 24,24,0,255,255,0,24,24,7,10,10,8,0,255,2,60, + 108,206,214,214,230,108,120,128,8,12,12,9,0,0,48,16, + 8,0,238,102,102,102,102,102,111,54,8,12,12,9,0,0, + 12,8,16,0,238,102,102,102,102,102,111,54,8,12,12,9, + 0,0,16,56,68,0,238,102,102,102,102,102,111,54,8,11, + 11,9,0,0,108,108,0,238,102,102,102,102,102,111,54,8, + 16,16,8,0,252,12,8,16,0,247,98,98,52,52,28,24, + 24,16,16,224,192,8,15,15,9,0,252,224,96,96,108,118, + 99,99,99,99,114,108,96,96,96,240,8,15,15,8,0,252, + 108,108,0,247,98,98,52,52,28,24,24,16,16,224,192}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=17 h=15 x= 2 y= 9 dx=17 dy= 0 ascent=12 len=33 + Font Bounding box w=19 h=27 x=-2 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =11 descent=-4 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB12r[1834] U8G_SECTION(".progmem.u8g_font_timB12r") = { + 0,19,27,254,249,11,2,42,5,41,32,127,252,12,252,11, + 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, + 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, + 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, + 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, + 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, + 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, + 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, + 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, + 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, + 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, + 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, + 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, + 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, + 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, + 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, + 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, + 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, + 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, + 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, + 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, + 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, + 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, + 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, + 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, + 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, + 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, + 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, + 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, + 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, + 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, + 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, + 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, + 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, + 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, + 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, + 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, + 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, + 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, + 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, + 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, + 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, + 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, + 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, + 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, + 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, + 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, + 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, + 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, + 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, + 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, + 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, + 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, + 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, + 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, + 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, + 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, + 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, + 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, + 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, + 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, + 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, + 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, + 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, + 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, + 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, + 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, + 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, + 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, + 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, + 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, + 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, + 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, + 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, + 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, + 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, + 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, + 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, + 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, + 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, + 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, + 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, + 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, + 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, + 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, + 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, + 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, + 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, + 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, + 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, + 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, + 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, + 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, + 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, + 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, + 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, + 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, + 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, + 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, + 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, + 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, + 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, + 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, + 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, + 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, + 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, + 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, + 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, + 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, + 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, + 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, + 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, + 4,48,0,120,128,159,0,14,0,255}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=18 h=17 x= 2 y=11 dx=19 dy= 0 ascent=17 len=39 + Font Bounding box w=22 h=28 x=-2 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =17 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB14[4851] U8G_SECTION(".progmem.u8g_font_timB14") = { + 0,22,28,254,249,13,2,178,6,78,32,255,252,17,252,13, + 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, + 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, + 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, + 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, + 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, + 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, + 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, + 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, + 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, + 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, + 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, + 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, + 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, + 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, + 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, + 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, + 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, + 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, + 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, + 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, + 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, + 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, + 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, + 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, + 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, + 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, + 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, + 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, + 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, + 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, + 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, + 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, + 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, + 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, + 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, + 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, + 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, + 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, + 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, + 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, + 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, + 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, + 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, + 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, + 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, + 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, + 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, + 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, + 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, + 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, + 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, + 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, + 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, + 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, + 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, + 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, + 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, + 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, + 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, + 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, + 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, + 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, + 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, + 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, + 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, + 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, + 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, + 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, + 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, + 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, + 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, + 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, + 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, + 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, + 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, + 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, + 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, + 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, + 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, + 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, + 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, + 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, + 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, + 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, + 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, + 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, + 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, + 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, + 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, + 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, + 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, + 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, + 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, + 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, + 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, + 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, + 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, + 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, + 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, + 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, + 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, + 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, + 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, + 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, + 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, + 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, + 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, + 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, + 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, + 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, + 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, + 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, + 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, + 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, + 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, + 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, + 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, + 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, + 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, + 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, + 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, + 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, + 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, + 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, + 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, + 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, + 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, + 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, + 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, + 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, + 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, + 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, + 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, + 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, + 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, + 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, + 1,3,112,249,159,14,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,0,0,5,0,1,3,13,13, + 6,1,252,224,224,224,0,64,64,224,224,224,224,224,224,64, + 8,13,13,9,0,254,1,3,62,119,239,236,216,216,240,115, + 62,96,64,14,13,26,9,0,0,31,0,59,0,59,0,56, + 0,56,0,56,0,254,0,56,4,56,0,48,0,240,128,191, + 128,239,0,8,8,8,9,0,2,219,255,102,195,195,102,255, + 219,9,13,26,9,0,0,251,128,113,0,115,0,58,0,58, + 0,28,0,127,0,28,0,127,0,28,0,28,0,28,0,127, + 0,2,16,16,4,1,253,192,192,192,192,192,192,0,0,0, + 0,192,192,192,192,192,192,7,16,16,9,1,253,60,102,70, + 96,48,120,220,206,230,118,60,28,12,196,204,120,6,2,2, + 6,0,10,204,204,13,13,26,15,1,0,15,128,56,224,96, + 48,79,208,220,216,152,72,152,8,152,8,220,216,79,144,96, + 48,56,224,15,128,6,8,8,6,0,5,112,216,56,216,216, + 236,0,252,9,7,14,11,1,1,25,128,51,0,102,0,204, + 0,102,0,51,0,25,128,9,6,12,11,1,1,255,128,255, + 128,1,128,1,128,1,128,1,128,5,3,3,6,0,4,248, + 248,248,13,13,26,15,1,0,15,128,56,224,96,48,95,144, + 204,216,140,200,143,136,141,136,204,216,94,240,96,48,56,224, + 15,128,6,1,1,6,0,11,252,6,5,5,7,0,8,120, + 204,204,204,120,8,11,11,11,1,0,24,24,24,255,255,24, + 24,24,0,255,255,5,8,8,5,0,5,112,152,24,48,32, + 64,248,240,5,8,8,5,0,5,112,152,24,112,56,24,152, + 112,5,3,3,6,0,10,56,112,192,10,13,26,11,0,252, + 247,128,115,128,115,128,115,128,115,128,115,128,115,128,127,128, + 125,192,96,0,224,0,240,0,96,0,9,17,34,10,0,252, + 63,128,127,128,251,0,251,0,251,0,251,0,123,0,59,0, + 27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, + 27,0,3,3,3,5,1,4,224,224,224,5,4,4,6,1, + 252,32,24,152,112,6,8,8,5,0,5,48,240,48,48,48, + 48,48,252,6,8,8,6,0,5,120,204,204,204,204,120,0, + 252,9,7,14,11,1,1,204,0,102,0,51,0,25,128,51, + 0,102,0,204,0,13,13,26,13,0,0,48,96,240,192,48, + 192,49,128,49,128,51,16,51,48,254,112,6,176,13,176,13, + 248,24,48,24,48,13,13,26,13,0,0,48,96,240,192,48, + 192,49,128,49,128,51,112,51,152,254,24,6,48,12,32,12, + 64,24,248,24,240,13,13,26,13,0,0,112,96,152,192,24, + 192,113,128,57,128,27,16,155,48,118,112,6,176,13,176,13, + 248,24,48,24,48,7,13,13,9,1,252,56,56,56,0,16, + 16,48,96,228,238,238,230,124,14,17,34,14,0,0,14,0, + 7,0,1,128,0,0,3,0,3,128,7,128,5,192,13,192, + 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, + 14,17,34,14,0,0,3,128,7,0,12,0,0,0,3,0, + 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, + 48,112,32,56,96,56,248,252,14,17,34,14,0,0,3,0, + 7,128,12,192,0,0,3,0,3,128,7,128,5,192,13,192, + 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, + 14,17,34,14,0,0,6,64,15,192,9,128,0,0,3,0, + 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, + 48,112,32,56,96,56,248,252,14,16,32,14,0,0,12,192, + 12,192,0,0,3,0,3,128,7,128,5,192,13,192,8,192, + 24,224,16,96,31,240,48,112,32,56,96,56,248,252,14,17, + 34,14,0,0,7,0,13,128,13,128,7,0,3,0,3,128, + 7,128,5,192,13,192,8,192,24,224,16,96,31,240,48,112, + 32,56,96,56,248,252,17,13,39,19,0,0,7,255,128,3, + 225,128,2,224,128,6,224,0,4,224,0,12,226,0,8,254, + 0,31,226,0,16,224,0,48,224,0,32,224,128,96,225,128, + 249,255,128,12,17,34,14,1,252,15,144,56,240,112,112,112, + 48,224,0,224,0,224,0,224,0,224,0,112,0,112,48,60, + 224,15,128,4,0,3,0,19,0,14,0,10,17,34,13,2, + 0,56,0,28,0,6,0,0,0,255,192,112,192,112,64,112, + 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, + 192,255,192,10,17,34,13,2,0,14,0,28,0,48,0,0, + 0,255,192,112,192,112,64,112,0,112,0,113,0,127,0,113, + 0,112,0,112,0,112,64,112,192,255,192,10,17,34,13,2, + 0,12,0,30,0,51,0,0,0,255,192,112,192,112,64,112, + 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, + 192,255,192,10,16,32,13,2,0,51,0,51,0,0,0,255, + 192,112,192,112,64,112,0,112,0,113,0,127,0,113,0,112, + 0,112,0,112,64,112,192,255,192,5,17,17,7,1,0,224, + 112,24,0,248,112,112,112,112,112,112,112,112,112,112,112,248, + 5,17,17,7,1,0,56,112,192,0,248,112,112,112,112,112, + 112,112,112,112,112,112,248,6,17,17,7,1,0,48,120,204, + 0,248,112,112,112,112,112,112,112,112,112,112,112,248,6,16, + 16,7,1,0,204,204,0,248,112,112,112,112,112,112,112,112, + 112,112,112,248,13,13,26,14,0,0,127,128,56,224,56,112, + 56,48,56,56,56,56,254,56,56,56,56,56,56,48,56,112, + 56,224,127,128,12,17,34,14,1,0,12,128,31,128,19,0, + 0,0,240,112,120,32,120,32,124,32,94,32,78,32,79,32, + 71,160,67,160,67,224,65,224,64,224,224,224,13,17,34,15, + 1,0,14,0,7,0,1,128,0,0,15,128,56,224,112,112, + 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, + 56,224,15,128,13,17,34,15,1,0,3,128,7,0,12,0, + 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, + 224,56,224,56,112,112,112,112,56,224,15,128,13,17,34,15, + 1,0,6,0,15,0,25,128,0,0,15,128,56,224,112,112, + 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, + 56,224,15,128,13,17,34,15,1,0,12,128,31,128,19,0, + 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, + 224,56,224,56,112,112,112,112,56,224,15,128,13,16,32,15, + 1,0,25,128,25,128,0,0,15,128,56,224,112,112,112,112, + 224,56,224,56,224,56,224,56,224,56,112,112,112,112,56,224, + 15,128,9,8,16,11,1,1,193,128,99,0,54,0,28,0, + 28,0,54,0,99,0,193,128,13,15,30,15,1,255,0,96, + 15,192,56,224,112,176,113,176,225,56,227,56,226,56,230,56, + 228,56,108,112,104,112,56,224,31,128,48,0,12,17,34,14, + 1,0,28,0,14,0,3,0,0,0,248,240,112,32,112,32, + 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, + 56,192,31,128,12,17,34,14,1,0,1,192,3,128,6,0, + 0,0,248,240,112,32,112,32,112,32,112,32,112,32,112,32, + 112,32,112,32,112,32,112,96,56,192,31,128,12,17,34,14, + 1,0,6,0,15,0,25,128,0,0,248,240,112,32,112,32, + 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, + 56,192,31,128,12,16,32,14,1,0,25,128,25,128,0,0, + 248,240,112,32,112,32,112,32,112,32,112,32,112,32,112,32, + 112,32,112,32,112,96,56,192,31,128,13,17,34,14,1,0, + 0,224,1,192,3,0,0,0,252,120,120,48,56,96,60,64, + 30,192,14,128,15,128,7,0,7,0,7,0,7,0,7,0, + 31,192,10,13,26,11,1,0,248,0,112,0,112,0,127,0, + 115,128,113,192,113,192,113,192,115,128,127,0,112,0,112,0, + 248,0,9,13,26,10,0,0,30,0,59,0,115,128,115,128, + 115,128,119,0,114,0,115,0,115,128,115,128,115,128,115,128, + 247,0,8,13,13,9,0,0,112,56,12,0,124,206,206,30, + 110,206,206,254,119,8,13,13,9,0,0,14,28,48,0,124, + 206,206,30,110,206,206,254,119,8,13,13,9,0,0,24,60, + 102,0,124,206,206,30,110,206,206,254,119,8,13,13,9,0, + 0,50,126,76,0,124,206,206,30,110,206,206,254,119,8,12, + 12,9,0,0,102,102,0,124,206,206,30,110,206,206,254,119, + 8,13,13,9,0,0,56,108,108,56,124,206,206,30,110,206, + 206,254,119,12,9,18,13,0,0,125,224,231,176,199,48,15, + 240,127,0,231,0,199,0,239,176,121,224,7,13,13,8,0, + 252,62,118,230,224,224,224,224,118,60,16,12,76,56,7,13, + 13,8,0,0,112,56,12,0,60,118,230,254,224,224,224,118, + 60,8,13,13,8,0,0,7,14,24,0,60,118,230,254,224, + 224,224,118,60,7,13,13,8,0,0,24,60,102,0,60,118, + 230,254,224,224,224,118,60,7,12,12,8,0,0,102,102,0, + 60,118,230,254,224,224,224,118,60,5,13,13,5,0,0,224, + 112,24,0,240,112,112,112,112,112,112,112,248,5,13,13,5, + 0,0,56,112,192,0,240,112,112,112,112,112,112,112,248,6, + 13,13,5,0,0,48,120,204,0,240,112,112,112,112,112,112, + 112,248,6,12,12,5,0,0,204,204,0,240,112,112,112,112, + 112,112,112,248,8,13,13,9,0,0,96,54,56,76,62,102, + 231,231,231,231,231,102,60,10,13,26,11,0,0,25,0,63, + 0,38,0,0,0,231,0,127,128,115,128,115,128,115,128,115, + 128,115,128,115,128,251,192,8,13,13,9,0,0,112,56,12, + 0,60,102,231,231,231,231,231,102,60,8,13,13,9,0,0, + 7,14,24,0,60,102,231,231,231,231,231,102,60,8,13,13, + 9,0,0,24,60,102,0,60,102,231,231,231,231,231,102,60, + 8,13,13,9,0,0,50,126,76,0,60,102,231,231,231,231, + 231,102,60,8,12,12,9,0,0,102,102,0,60,102,231,231, + 231,231,231,102,60,8,8,8,11,1,1,24,24,0,255,255, + 0,24,24,10,11,22,9,255,255,0,64,30,128,51,0,115, + 128,115,128,119,128,123,128,113,128,51,0,94,0,128,0,10, + 13,26,11,0,0,56,0,28,0,6,0,0,0,247,128,115, + 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, + 13,26,11,0,0,14,0,28,0,48,0,0,0,247,128,115, + 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, + 13,26,11,0,0,12,0,30,0,51,0,0,0,247,128,115, + 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, + 12,24,11,0,0,51,0,51,0,0,0,247,128,115,128,115, + 128,115,128,115,128,115,128,115,128,127,128,61,192,10,17,34, + 9,255,252,3,128,7,0,12,0,0,0,251,192,113,128,121, + 0,59,0,58,0,30,0,30,0,12,0,12,0,12,0,8, + 0,216,0,240,0,9,17,34,10,0,252,240,0,112,0,112, + 0,112,0,118,0,127,0,115,128,115,128,115,128,115,128,115, + 128,123,0,118,0,112,0,112,0,112,0,248,0,10,16,32, + 9,255,252,51,0,51,0,0,0,251,192,113,128,121,0,59, + 0,58,0,30,0,30,0,12,0,12,0,12,0,8,0,216, + 0,240,0}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=18 h=17 x= 2 y=10 dx=19 dy= 0 ascent=14 len=39 + Font Bounding box w=22 h=28 x=-2 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB14r[2295] U8G_SECTION(".progmem.u8g_font_timB14r") = { + 0,22,28,254,249,13,2,178,6,78,32,127,252,14,252,13, + 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, + 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, + 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, + 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, + 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, + 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, + 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, + 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, + 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, + 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, + 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, + 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, + 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, + 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, + 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, + 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, + 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, + 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, + 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, + 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, + 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, + 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, + 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, + 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, + 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, + 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, + 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, + 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, + 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, + 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, + 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, + 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, + 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, + 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, + 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, + 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, + 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, + 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, + 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, + 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, + 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, + 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, + 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, + 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, + 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, + 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, + 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, + 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, + 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, + 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, + 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, + 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, + 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, + 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, + 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, + 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, + 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, + 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, + 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, + 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, + 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, + 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, + 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, + 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, + 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, + 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, + 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, + 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, + 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, + 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, + 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, + 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, + 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, + 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, + 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, + 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, + 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, + 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, + 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, + 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, + 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, + 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, + 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, + 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, + 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, + 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, + 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, + 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, + 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, + 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, + 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, + 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, + 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, + 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, + 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, + 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, + 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, + 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, + 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, + 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, + 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, + 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, + 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, + 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, + 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, + 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, + 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, + 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, + 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, + 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, + 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, + 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, + 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, + 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, + 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, + 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, + 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, + 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, + 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, + 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, + 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, + 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, + 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, + 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, + 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, + 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, + 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, + 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, + 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, + 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, + 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, + 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, + 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, + 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, + 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, + 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, + 1,3,112,249,159,14,255}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=24 h=23 x= 3 y=14 dx=25 dy= 0 ascent=23 len=69 + Font Bounding box w=27 h=38 x=-2 y=-10 + Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =23 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB18[7223] U8G_SECTION(".progmem.u8g_font_timB18") = { + 0,27,38,254,246,17,4,47,9,109,32,255,251,23,250,17, + 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, + 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, + 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, + 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, + 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, + 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, + 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, + 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, + 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, + 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, + 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, + 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, + 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, + 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, + 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, + 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, + 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, + 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, + 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, + 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, + 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, + 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, + 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, + 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, + 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, + 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, + 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, + 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, + 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, + 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, + 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, + 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, + 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, + 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, + 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, + 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, + 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, + 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, + 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, + 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, + 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, + 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, + 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, + 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, + 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, + 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, + 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, + 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, + 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, + 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, + 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, + 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, + 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, + 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, + 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, + 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, + 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, + 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, + 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, + 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, + 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, + 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, + 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, + 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, + 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, + 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, + 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, + 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, + 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, + 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, + 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, + 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, + 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, + 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, + 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, + 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, + 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, + 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, + 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, + 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, + 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, + 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, + 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, + 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, + 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, + 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, + 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, + 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, + 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, + 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, + 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, + 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, + 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, + 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, + 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, + 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, + 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, + 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, + 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, + 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, + 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, + 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, + 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, + 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, + 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, + 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, + 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, + 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, + 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, + 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, + 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, + 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, + 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, + 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, + 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, + 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, + 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, + 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, + 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, + 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, + 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, + 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, + 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, + 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, + 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, + 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, + 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, + 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, + 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, + 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, + 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, + 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, + 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, + 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, + 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, + 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, + 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, + 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, + 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, + 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, + 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, + 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, + 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, + 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, + 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, + 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, + 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, + 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, + 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, + 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, + 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, + 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, + 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, + 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, + 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, + 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, + 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, + 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, + 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, + 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, + 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, + 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, + 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, + 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, + 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, + 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, + 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, + 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, + 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, + 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, + 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, + 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, + 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, + 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, + 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, + 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, + 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, + 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, + 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, + 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, + 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, + 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, + 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, + 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, + 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, + 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, + 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, + 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, + 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, + 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, + 126,16,255,16,143,240,135,224,1,128,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,6,0, + 1,4,17,17,8,2,251,96,240,240,96,0,0,96,96,96, + 96,96,240,240,240,240,240,96,10,18,36,13,1,253,0,128, + 1,128,1,0,31,128,115,192,115,192,230,128,228,0,228,0, + 236,0,232,0,248,0,120,128,127,128,62,0,48,0,96,0, + 96,0,11,17,34,13,0,0,15,192,30,96,60,224,60,224, + 60,64,28,0,28,0,255,128,255,128,28,0,28,0,28,0, + 12,32,124,96,207,224,255,224,115,192,11,12,24,13,0,3, + 192,96,238,224,127,192,59,128,113,192,96,192,96,192,113,192, + 59,128,127,192,238,224,192,96,14,17,34,13,0,0,254,124, + 56,48,60,32,28,96,30,64,14,192,15,128,7,128,7,0, + 31,192,7,0,31,192,7,0,7,0,7,0,7,0,31,192, + 2,22,22,6,2,251,192,192,192,192,192,192,192,192,192,0, + 0,0,0,192,192,192,192,192,192,192,192,192,7,20,20,11, + 2,253,60,110,206,198,224,112,120,92,142,134,194,226,116,60, + 28,14,198,230,236,120,6,2,2,8,1,14,204,204,17,17, + 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, + 97,243,0,99,51,0,198,17,128,198,1,128,198,1,128,198, + 1,128,198,1,128,99,51,0,97,227,0,48,6,0,60,30, + 0,15,248,0,3,224,0,7,10,10,8,0,7,120,220,12, + 124,236,204,126,0,254,254,11,10,20,13,1,1,12,96,24, + 192,49,128,115,128,231,0,231,0,115,128,49,128,24,192,12, + 96,11,7,14,15,2,2,255,224,255,224,0,96,0,96,0, + 96,0,96,0,96,6,3,3,8,1,5,252,252,252,17,17, + 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, + 103,227,0,99,51,0,195,49,128,195,49,128,195,225,128,195, + 97,128,195,49,128,99,51,0,103,187,0,48,6,0,60,30, + 0,15,248,0,3,224,0,6,1,1,8,1,14,252,8,7, + 7,9,0,10,60,102,195,195,195,102,60,12,13,26,14,1, + 0,6,0,6,0,6,0,6,0,255,240,255,240,6,0,6, + 0,6,0,6,0,0,0,255,240,255,240,6,10,10,7,0, + 7,56,124,140,12,24,16,32,64,252,252,6,10,10,7,0, + 7,56,124,140,12,56,28,12,140,248,112,5,4,4,8,2, + 13,56,112,96,192,12,17,34,14,1,251,241,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, + 240,108,224,96,0,96,0,224,0,240,0,96,0,11,22,44, + 14,1,251,31,224,127,224,126,64,254,64,254,64,254,64,254, + 64,254,64,254,64,126,64,126,64,30,64,2,64,2,64,2, + 64,2,64,2,64,2,64,2,64,2,64,2,64,2,64,3, + 3,3,6,1,6,224,224,224,6,6,6,8,1,250,16,48, + 56,12,140,120,6,10,10,7,0,7,48,240,48,48,48,48, + 48,48,48,252,7,10,10,8,0,7,56,108,198,198,198,108, + 56,0,254,254,11,10,20,13,1,1,198,0,99,0,49,128, + 57,192,28,224,28,224,57,192,51,128,99,0,198,0,17,17, + 51,18,0,0,48,4,0,240,12,0,48,24,0,48,24,0, + 48,48,0,48,32,0,48,96,0,48,66,0,48,198,0,252, + 142,0,1,142,0,1,22,0,3,54,0,6,38,0,6,127, + 128,12,6,0,8,6,0,17,17,51,18,0,0,48,4,0, + 240,12,0,48,24,0,48,24,0,48,48,0,48,32,0,48, + 96,0,48,71,0,48,207,128,252,145,128,1,129,128,1,3, + 0,3,2,0,6,4,0,6,8,0,12,31,128,8,31,128, + 17,17,51,18,1,0,56,4,0,124,12,0,140,24,0,12, + 24,0,56,48,0,28,32,0,12,96,0,140,66,0,248,198, + 0,113,14,0,3,14,0,2,22,0,6,54,0,12,38,0, + 12,127,128,24,6,0,16,6,0,9,17,34,12,1,251,12, + 0,30,0,30,0,12,0,0,0,0,0,12,0,12,0,28, + 0,56,0,120,0,240,0,241,0,243,128,243,128,123,0,62, + 0,17,22,66,18,0,0,3,128,0,1,192,0,0,192,0, + 0,96,0,0,0,0,1,128,0,1,192,0,3,192,0,3, + 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, + 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, + 48,30,0,112,30,0,248,127,128,17,22,66,18,0,0,0, + 224,0,1,192,0,1,128,0,3,0,0,0,0,0,1,128, + 0,1,192,0,3,192,0,3,224,0,3,224,0,6,224,0, + 6,240,0,4,112,0,12,112,0,8,120,0,8,56,0,31, + 248,0,16,60,0,48,60,0,48,30,0,112,30,0,248,127, + 128,17,22,66,18,0,0,1,128,0,3,192,0,6,96,0, + 0,0,0,0,0,0,1,128,0,1,192,0,3,192,0,3, + 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, + 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, + 48,30,0,112,30,0,248,127,128,17,21,63,18,0,0,3, + 16,0,7,224,0,8,192,0,0,0,0,1,128,0,1,192, + 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, + 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, + 60,0,48,60,0,48,30,0,112,30,0,248,127,128,17,21, + 63,18,0,0,6,96,0,6,96,0,0,0,0,0,0,0, + 1,128,0,1,192,0,3,192,0,3,224,0,3,224,0,6, + 224,0,6,240,0,4,112,0,12,112,0,8,120,0,8,56, + 0,31,248,0,16,60,0,48,60,0,48,30,0,112,30,0, + 248,127,128,17,23,69,18,0,0,1,128,0,3,192,0,6, + 96,0,6,96,0,3,192,0,1,128,0,1,128,0,1,192, + 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, + 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, + 60,0,48,60,0,48,30,0,112,30,0,248,127,128,23,17, + 51,25,0,0,1,255,252,0,124,28,0,252,12,0,188,4, + 1,188,4,1,60,32,3,60,32,2,60,96,6,63,224,7, + 252,96,12,60,32,8,60,32,24,60,2,16,60,2,48,60, + 6,112,60,14,248,255,254,15,23,46,18,1,250,3,242,30, + 62,60,14,120,6,120,2,240,2,240,0,240,0,240,0,240, + 0,240,0,240,0,120,0,120,2,60,14,31,60,7,240,1, + 0,3,0,3,128,0,192,8,192,7,128,15,22,44,17,1, + 0,7,0,3,128,1,128,0,192,0,0,255,252,60,28,60, + 12,60,4,60,4,60,32,60,32,60,96,63,224,60,96,60, + 32,60,32,60,2,60,2,60,6,60,14,255,254,15,22,44, + 17,1,0,1,192,3,128,3,0,6,0,0,0,255,252,60, + 28,60,12,60,4,60,4,60,32,60,32,60,96,63,224,60, + 96,60,32,60,32,60,2,60,2,60,6,60,14,255,254,15, + 22,44,17,1,0,3,0,7,128,12,192,0,0,0,0,255, + 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, + 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, + 254,15,21,42,17,1,0,12,192,12,192,0,0,0,0,255, + 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, + 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, + 254,8,22,22,10,0,0,112,56,24,12,0,255,60,60,60, + 60,60,60,60,60,60,60,60,60,60,60,60,255,8,22,22, + 10,0,0,14,28,24,48,0,255,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,255,8,22,22,10,0,0,24, + 60,102,0,0,255,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,255,8,21,21,10,0,0,102,102,0,0,255, + 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, + 16,17,34,18,1,0,255,224,60,120,60,60,60,30,60,30, + 60,15,60,15,255,143,255,143,60,15,60,15,60,14,60,30, + 60,28,60,60,60,120,255,224,17,22,66,18,0,0,1,136, + 0,3,240,0,4,96,0,0,0,0,0,0,0,248,15,128, + 124,7,0,62,2,0,63,2,0,63,130,0,47,194,0,39, + 226,0,35,226,0,33,242,0,32,250,0,32,126,0,32,62, + 0,32,30,0,32,14,0,32,14,0,96,6,0,248,2,0, + 16,22,44,19,1,0,7,0,3,128,1,128,0,192,0,0, + 7,224,30,120,60,60,120,30,120,30,240,15,240,15,240,15, + 240,15,240,15,240,15,240,15,120,30,120,30,60,60,30,120, + 7,224,16,22,44,19,1,0,0,112,0,224,0,192,1,128, + 0,0,7,224,30,120,60,60,120,30,120,30,240,15,240,15, + 240,15,240,15,240,15,240,15,240,15,120,30,120,30,60,60, + 30,120,7,224,16,22,44,19,1,0,1,128,3,192,6,96, + 0,0,0,0,7,224,30,120,60,60,120,30,120,30,240,15, + 240,15,240,15,240,15,240,15,240,15,240,15,120,30,120,30, + 60,60,30,120,7,224,16,22,44,19,1,0,3,16,7,224, + 8,192,0,0,0,0,7,224,30,120,60,60,120,30,120,30, + 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, + 120,30,60,60,30,120,7,224,16,21,42,19,1,0,12,96, + 12,96,0,0,0,0,7,224,30,120,60,60,120,30,120,30, + 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, + 120,30,60,60,30,120,7,224,12,12,24,14,1,0,192,48, + 224,112,112,224,57,192,31,128,15,0,15,0,31,128,57,192, + 112,224,224,112,192,48,16,19,38,19,1,255,0,4,7,236, + 30,120,56,28,120,62,120,62,240,111,240,207,240,207,241,143, + 243,15,243,15,246,15,124,30,124,30,56,28,62,120,55,224, + 96,0,17,22,66,18,0,0,3,128,0,1,192,0,0,192, + 0,0,96,0,0,0,0,255,15,128,62,6,0,60,2,0, + 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, + 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, + 0,30,4,0,31,28,0,7,248,0,17,22,66,18,0,0, + 0,56,0,0,112,0,0,96,0,0,192,0,0,0,0,255, + 15,128,62,6,0,60,2,0,60,2,0,60,2,0,60,2, + 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, + 60,2,0,60,2,0,60,6,0,30,4,0,31,28,0,7, + 248,0,17,22,66,18,0,0,0,96,0,0,240,0,1,152, + 0,0,0,0,0,0,0,255,15,128,62,6,0,60,2,0, + 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, + 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, + 0,30,4,0,31,28,0,7,248,0,17,21,63,18,0,0, + 3,24,0,3,24,0,0,0,0,0,0,0,255,15,128,62, + 6,0,60,2,0,60,2,0,60,2,0,60,2,0,60,2, + 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, + 60,2,0,60,6,0,30,4,0,31,28,0,7,248,0,18, + 23,69,18,0,0,0,14,0,0,28,0,0,24,0,0,48, + 0,0,0,0,0,0,0,255,143,192,62,3,0,30,2,0, + 15,6,0,15,12,0,7,140,0,7,152,0,3,208,0,3, + 240,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,1,224,0,1,224,0,7,248,0,14,17,34,15,0,0, + 255,0,60,0,60,0,60,0,63,224,60,120,60,60,60,60, + 60,60,60,60,60,60,60,120,63,224,60,0,60,0,60,0, + 255,0,11,17,34,14,1,0,31,0,57,128,113,192,113,192, + 113,192,113,192,115,128,119,0,115,128,113,192,112,224,112,224, + 112,224,112,224,112,224,112,192,243,128,10,17,34,12,1,0, + 56,0,28,0,12,0,6,0,0,0,62,0,119,0,227,128, + 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, + 113,128,10,17,34,12,1,0,14,0,28,0,24,0,48,0, + 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, + 227,128,227,128,231,128,255,192,113,128,10,17,34,12,1,0, + 12,0,30,0,51,0,0,0,0,0,62,0,119,0,227,128, + 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, + 113,128,10,17,34,12,1,0,24,128,63,0,70,0,0,0, + 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, + 227,128,227,128,231,128,255,192,113,128,10,16,32,12,1,0, + 51,0,51,0,0,0,0,0,62,0,119,0,227,128,227,128, + 67,128,15,128,115,128,227,128,227,128,231,128,255,192,113,128, + 10,18,36,12,1,0,12,0,30,0,51,0,51,0,30,0, + 12,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, + 227,128,227,128,231,128,255,192,113,128,15,12,24,17,1,0, + 62,120,119,204,227,206,99,142,3,142,31,254,115,128,227,128, + 227,192,231,226,254,252,124,120,9,18,36,11,1,250,30,0, + 115,0,115,128,227,128,225,0,224,0,224,0,224,0,240,0, + 120,128,127,0,30,0,8,0,24,0,28,0,6,0,70,0, + 60,0,9,17,34,11,1,0,56,0,28,0,12,0,6,0, + 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, + 224,0,240,0,120,128,127,0,30,0,9,17,34,11,1,0, + 14,0,28,0,24,0,48,0,0,0,30,0,115,0,115,128, + 227,128,227,128,255,128,224,0,224,0,240,0,120,128,127,0, + 30,0,9,17,34,11,1,0,24,0,60,0,102,0,0,0, + 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, + 224,0,240,0,120,128,127,0,30,0,9,16,32,11,1,0, + 51,0,51,0,0,0,0,0,30,0,115,0,115,128,227,128, + 227,128,255,128,224,0,224,0,240,0,120,128,127,0,30,0, + 5,17,17,7,1,0,224,112,48,24,0,240,112,112,112,112, + 112,112,112,112,112,112,248,6,17,17,7,1,0,28,56,48, + 96,0,240,112,112,112,112,112,112,112,112,112,112,248,6,17, + 17,7,1,0,48,120,204,0,0,240,112,112,112,112,112,112, + 112,112,112,112,248,6,16,16,7,1,0,204,204,0,0,240, + 112,112,112,112,112,112,112,112,112,112,248,11,17,34,13,1, + 0,96,0,56,192,15,0,30,0,99,0,31,128,123,192,113, + 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, + 192,31,0,12,17,34,14,1,0,12,64,31,128,35,0,0, + 0,0,0,243,192,119,224,120,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,112,224,249,240,11,17,34,13,1, + 0,28,0,14,0,6,0,3,0,0,0,31,0,123,192,113, + 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, + 192,31,0,11,17,34,13,1,0,3,128,7,0,6,0,12, + 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, + 224,224,224,224,224,113,192,123,192,31,0,11,17,34,13,1, + 0,12,0,30,0,51,0,0,0,0,0,31,0,123,192,113, + 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, + 192,31,0,11,17,34,13,1,0,24,128,63,0,70,0,0, + 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, + 224,224,224,224,224,113,192,123,192,31,0,11,16,32,13,1, + 0,49,128,49,128,0,0,0,0,31,0,123,192,113,192,224, + 224,224,224,224,224,224,224,224,224,224,224,113,192,123,192,31, + 0,12,12,24,14,1,0,6,0,6,0,6,0,0,0,0, + 0,255,240,255,240,0,0,0,0,6,0,6,0,6,0,11, + 16,32,13,1,254,0,64,0,64,30,128,121,192,113,192,226, + 224,226,224,228,224,228,224,232,224,232,224,113,192,123,192,63, + 0,64,0,64,0,12,17,34,14,1,0,28,0,14,0,6, + 0,3,0,0,0,241,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,113,224,126,240,60,224,12,17,34, + 14,1,0,7,0,14,0,12,0,24,0,0,0,241,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,113, + 224,126,240,60,224,12,17,34,14,1,0,6,0,15,0,25, + 128,0,0,0,0,241,224,112,224,112,224,112,224,112,224,112, + 224,112,224,112,224,112,224,113,224,126,240,60,224,12,16,32, + 14,1,0,25,128,25,128,0,0,0,0,241,224,112,224,112, + 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, + 240,60,224,12,22,44,12,0,251,1,192,3,128,3,0,6, + 0,0,0,253,240,120,96,56,64,56,192,60,128,28,128,29, + 128,31,0,15,0,15,0,6,0,6,0,6,0,100,0,236, + 0,248,0,112,0,12,22,44,14,1,251,240,0,112,0,112, + 0,112,0,112,0,115,128,119,224,124,224,120,112,112,112,112, + 112,112,112,112,112,112,112,120,224,119,224,115,128,112,0,112, + 0,112,0,112,0,252,0,12,21,42,12,0,251,25,128,25, + 128,0,0,0,0,253,240,120,96,56,64,56,192,60,128,28, + 128,29,128,31,0,15,0,15,0,6,0,6,0,6,0,100, + 0,236,0,248,0,112,0}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=24 h=22 x= 3 y=13 dx=25 dy= 0 ascent=18 len=66 + Font Bounding box w=27 h=38 x=-2 y=-10 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =17 descent=-5 + X Font ascent =17 descent=-5 + Max Font ascent =18 descent=-5 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB18r[3355] U8G_SECTION(".progmem.u8g_font_timB18r") = { + 0,27,38,254,246,17,4,47,9,109,32,127,251,18,251,17, + 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, + 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, + 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, + 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, + 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, + 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, + 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, + 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, + 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, + 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, + 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, + 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, + 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, + 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, + 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, + 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, + 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, + 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, + 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, + 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, + 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, + 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, + 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, + 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, + 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, + 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, + 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, + 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, + 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, + 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, + 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, + 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, + 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, + 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, + 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, + 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, + 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, + 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, + 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, + 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, + 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, + 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, + 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, + 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, + 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, + 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, + 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, + 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, + 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, + 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, + 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, + 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, + 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, + 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, + 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, + 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, + 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, + 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, + 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, + 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, + 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, + 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, + 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, + 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, + 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, + 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, + 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, + 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, + 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, + 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, + 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, + 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, + 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, + 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, + 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, + 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, + 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, + 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, + 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, + 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, + 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, + 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, + 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, + 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, + 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, + 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, + 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, + 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, + 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, + 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, + 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, + 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, + 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, + 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, + 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, + 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, + 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, + 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, + 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, + 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, + 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, + 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, + 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, + 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, + 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, + 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, + 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, + 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, + 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, + 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, + 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, + 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, + 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, + 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, + 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, + 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, + 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, + 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, + 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, + 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, + 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, + 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, + 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, + 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, + 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, + 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, + 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, + 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, + 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, + 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, + 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, + 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, + 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, + 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, + 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, + 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, + 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, + 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, + 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, + 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, + 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, + 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, + 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, + 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, + 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, + 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, + 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, + 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, + 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, + 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, + 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, + 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, + 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, + 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, + 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, + 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, + 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, + 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, + 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, + 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, + 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, + 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, + 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, + 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, + 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, + 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, + 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, + 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, + 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, + 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, + 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, + 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, + 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, + 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, + 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, + 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, + 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, + 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, + 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, + 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, + 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, + 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, + 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, + 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, + 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, + 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, + 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, + 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, + 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, + 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, + 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, + 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, + 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, + 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, + 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, + 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, + 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, + 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, + 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, + 126,16,255,16,143,240,135,224,1,128,255}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=32 h=30 x= 4 y=18 dx=33 dy= 0 ascent=30 len=108 + Font Bounding box w=38 h=49 x=-5 y=-12 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =30 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB24[10820] U8G_SECTION(".progmem.u8g_font_timB24") = { + 0,38,49,251,244,23,5,149,13,202,32,255,249,30,249,23, + 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, + 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, + 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, + 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, + 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, + 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, + 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, + 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, + 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, + 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, + 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, + 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, + 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, + 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, + 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, + 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, + 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, + 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, + 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, + 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, + 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, + 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, + 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, + 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, + 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, + 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, + 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, + 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, + 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, + 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, + 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, + 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, + 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, + 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, + 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, + 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, + 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, + 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, + 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, + 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, + 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, + 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, + 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, + 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, + 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, + 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, + 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, + 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, + 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, + 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, + 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, + 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, + 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, + 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, + 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, + 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, + 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, + 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, + 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, + 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, + 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, + 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, + 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, + 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, + 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, + 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, + 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, + 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, + 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, + 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, + 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, + 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, + 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, + 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, + 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, + 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, + 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, + 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, + 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, + 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, + 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, + 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, + 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, + 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, + 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, + 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, + 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, + 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, + 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, + 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, + 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, + 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, + 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, + 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, + 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, + 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, + 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, + 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, + 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, + 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, + 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, + 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, + 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, + 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, + 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, + 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, + 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, + 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, + 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, + 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, + 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, + 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, + 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, + 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, + 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, + 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, + 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, + 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, + 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, + 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, + 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, + 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, + 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, + 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, + 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, + 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, + 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, + 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, + 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, + 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, + 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, + 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, + 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, + 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, + 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, + 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, + 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, + 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, + 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, + 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, + 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, + 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, + 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, + 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, + 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, + 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, + 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, + 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, + 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, + 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, + 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, + 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, + 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, + 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, + 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, + 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, + 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, + 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, + 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, + 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, + 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, + 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, + 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, + 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, + 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, + 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, + 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, + 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, + 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, + 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, + 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, + 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, + 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, + 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, + 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, + 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, + 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, + 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, + 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, + 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, + 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, + 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, + 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, + 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, + 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, + 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, + 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, + 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, + 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, + 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, + 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, + 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, + 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, + 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, + 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, + 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, + 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, + 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, + 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, + 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, + 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, + 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, + 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, + 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, + 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, + 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, + 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, + 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, + 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, + 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, + 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, + 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, + 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, + 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, + 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, + 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, + 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, + 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, + 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, + 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, + 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, + 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, + 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, + 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, + 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, + 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, + 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, + 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, + 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, + 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, + 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, + 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, + 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, + 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, + 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, + 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, + 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, + 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, + 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, + 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, + 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, + 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, + 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, + 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, + 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, + 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, + 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, + 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, + 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, + 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, + 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, + 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, + 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, + 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, + 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, + 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, + 255,198,143,254,131,252,1,248,0,112,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,0,0,0,8,0, + 1,5,23,23,11,3,249,112,248,248,248,112,0,0,0,32, + 32,32,32,112,112,112,112,248,248,248,248,248,248,112,13,25, + 50,17,1,251,0,8,0,8,0,24,0,16,7,240,28,224, + 56,240,120,240,240,240,240,224,240,128,241,128,241,0,243,0, + 242,0,250,16,126,48,127,224,63,192,15,0,8,0,16,0, + 16,0,32,0,32,0,16,23,46,17,1,0,0,240,3,252, + 7,30,14,30,14,30,30,12,30,0,30,0,31,0,15,0, + 15,0,127,240,127,240,7,128,7,128,7,128,55,128,127,1, + 239,3,199,135,199,255,238,254,124,124,14,15,30,17,1,4, + 96,24,247,188,255,252,127,248,60,240,120,120,112,56,112,56, + 112,56,120,120,60,240,127,248,255,252,247,188,96,24,18,23, + 69,17,1,0,255,135,192,62,3,128,62,3,0,31,3,0, + 31,6,0,31,134,0,15,132,0,15,140,0,7,200,0,7, + 216,0,7,208,0,3,240,0,31,252,0,31,252,0,3,224, + 0,31,252,0,31,252,0,1,224,0,1,224,0,1,224,0, + 1,224,0,3,240,0,15,252,0,2,30,30,7,3,249,192, + 192,192,192,192,192,192,192,192,192,192,192,0,0,0,0,0, + 0,192,192,192,192,192,192,192,192,192,192,192,192,12,28,56, + 17,2,251,15,128,24,192,48,224,113,224,113,224,120,192,60, + 0,62,0,31,0,15,128,63,192,99,224,193,224,192,240,224, + 112,240,48,120,48,124,96,63,192,31,128,7,128,3,192,49, + 224,120,224,120,224,112,192,49,128,31,0,8,4,4,11,2, + 18,66,231,231,66,22,23,69,25,1,0,1,254,0,7,255, + 128,15,3,192,28,0,224,56,0,112,48,254,48,113,199,56, + 99,131,24,231,131,28,199,0,12,199,0,12,199,0,12,199, + 0,12,199,128,12,195,195,12,227,230,28,96,252,24,112,0, + 56,56,0,112,28,0,224,15,3,192,7,255,128,1,254,0, + 9,14,28,10,0,9,60,0,102,0,103,0,103,0,31,0, + 103,0,199,0,199,0,239,128,115,0,0,0,0,0,255,128, + 255,128,14,14,28,17,2,1,2,4,6,12,14,28,28,56, + 56,112,112,224,225,192,225,192,112,224,56,112,28,56,14,28, + 6,12,2,4,16,9,18,19,1,3,255,255,255,255,255,255, + 0,7,0,7,0,7,0,7,0,7,0,7,8,4,4,11, + 1,6,255,255,255,255,22,23,69,25,2,0,1,254,0,7, + 255,128,15,3,192,28,0,224,56,0,112,51,252,48,113,206, + 56,96,199,24,224,199,28,192,199,12,192,206,12,192,248,12, + 192,220,12,192,206,12,192,198,12,224,199,28,97,195,152,115, + 227,248,56,0,112,28,0,224,15,3,192,7,255,128,1,254, + 0,9,2,4,11,1,18,255,128,255,128,9,10,20,13,2, + 13,28,0,127,0,99,0,193,128,193,128,193,128,193,128,99, + 0,127,0,60,0,15,19,38,19,2,0,3,128,3,128,3, + 128,3,128,3,128,3,128,255,254,255,254,255,254,3,128,3, + 128,3,128,3,128,3,128,3,128,0,0,255,254,255,254,255, + 254,10,14,28,10,1,9,62,0,127,0,199,128,131,128,3, + 128,3,128,3,0,6,0,12,0,24,0,48,64,127,192,255, + 128,255,128,9,14,28,10,1,9,30,0,63,0,103,128,67, + 128,3,0,6,0,31,0,7,128,3,128,3,128,3,128,195, + 128,231,0,126,0,7,6,6,11,3,17,6,14,28,56,96, + 128,16,22,44,19,2,250,248,252,120,124,120,60,120,60,120, + 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, + 124,124,252,127,191,95,56,64,0,224,0,224,0,224,0,224, + 0,224,0,16,29,58,18,1,250,15,255,63,255,63,140,127, + 140,255,140,255,140,255,140,255,140,255,140,255,140,255,140,127, + 140,63,140,63,140,15,140,1,140,1,140,1,140,1,140,1, + 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, + 140,1,140,4,4,4,8,2,9,96,240,240,96,7,7,7, + 11,1,249,6,12,28,14,198,238,124,9,14,28,10,0,9, + 12,0,124,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,255,128,9,14,28,11, + 1,9,28,0,119,0,99,0,227,128,227,128,227,128,227,128, + 99,0,119,0,28,0,0,0,0,0,255,128,255,128,14,14, + 28,17,1,1,129,0,193,128,225,192,112,224,56,112,28,56, + 14,28,14,28,28,56,56,112,112,224,225,192,193,128,129,0, + 23,23,69,25,0,0,12,0,8,124,0,24,28,0,48,28, + 0,48,28,0,96,28,0,96,28,0,192,28,1,128,28,1, + 128,28,3,12,28,6,28,28,6,60,28,12,124,255,152,252, + 0,24,220,0,49,156,0,99,156,0,99,28,0,199,254,1, + 199,254,1,128,28,3,0,28,3,0,28,23,23,69,25,0, + 0,12,0,48,124,0,96,28,0,96,28,0,192,28,0,128, + 28,1,128,28,3,0,28,2,0,28,6,0,28,12,240,28, + 25,248,28,27,60,28,50,28,255,176,28,0,96,28,0,96, + 24,0,192,48,1,128,96,1,128,192,3,1,130,6,3,254, + 6,7,252,12,15,252,22,23,69,25,1,0,30,0,16,63, + 0,48,103,128,96,67,128,96,3,0,192,6,0,192,31,1, + 128,7,131,0,3,131,0,3,134,24,3,140,56,195,140,120, + 231,24,248,126,49,248,0,49,184,0,99,56,0,199,56,0, + 198,56,1,143,252,3,143,252,3,0,56,6,0,56,6,0, + 56,12,23,46,16,2,249,7,0,15,128,15,128,15,128,7, + 0,0,0,0,0,0,0,2,0,2,0,6,0,12,0,28, + 0,60,0,120,0,120,0,248,96,248,240,248,240,248,112,120, + 112,60,224,31,192,21,30,90,24,1,0,6,0,0,7,0, + 0,3,128,0,1,192,0,0,96,0,0,0,0,0,32,0, + 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, + 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, + 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, + 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, + 7,240,252,31,248,21,30,90,24,1,0,0,3,0,0,7, + 0,0,14,0,0,28,0,0,48,0,0,64,0,0,0,0, + 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, + 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, + 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, + 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, + 7,240,252,31,248,21,30,90,24,1,0,0,96,0,0,240, + 0,1,248,0,1,152,0,3,12,0,2,4,0,0,0,0, + 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, + 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, + 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, + 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, + 7,240,252,31,248,21,29,87,24,1,0,0,194,0,1,246, + 0,3,124,0,2,24,0,0,0,0,0,0,0,0,32,0, + 0,96,0,0,112,0,0,240,0,0,248,0,0,248,0,1, + 248,0,1,124,0,1,124,0,3,62,0,2,62,0,6,62, + 0,6,31,0,4,31,0,12,15,0,15,255,128,24,15,128, + 24,7,192,16,7,192,48,3,224,48,3,224,112,7,240,252, + 31,248,21,29,87,24,1,0,1,8,0,3,156,0,3,156, + 0,1,8,0,0,0,0,0,0,0,0,32,0,0,96,0, + 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, + 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, + 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, + 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,21, + 30,90,24,1,0,0,224,0,1,176,0,3,24,0,2,8, + 0,3,24,0,1,176,0,0,224,0,0,0,0,0,96,0, + 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, + 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, + 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, + 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,32, + 23,92,33,0,0,3,255,255,252,0,255,255,252,0,99,224, + 28,0,99,224,12,0,195,224,12,0,195,224,4,1,131,224, + 4,1,131,224,128,3,3,224,128,3,3,225,128,2,3,227, + 128,7,255,255,128,7,255,227,128,12,3,225,128,12,3,224, + 128,24,3,224,128,24,3,224,1,56,3,224,3,48,3,224, + 6,112,3,224,14,112,3,224,62,248,7,255,252,254,31,255, + 252,19,30,90,24,2,249,1,252,32,7,255,96,15,7,224, + 30,1,224,60,0,224,124,0,96,124,0,96,248,0,32,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,0,0,124,0,0,124,0,0,60,0,32, + 30,0,96,15,129,192,3,255,128,0,254,0,0,24,0,0, + 48,0,0,112,0,0,56,0,3,24,0,3,184,0,1,240, + 0,21,30,90,22,0,0,6,0,0,7,0,0,3,128,0, + 1,192,0,0,96,0,0,48,0,0,0,0,255,255,224,63, + 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, + 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, + 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, + 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, + 224,21,30,90,22,0,0,0,1,128,0,3,128,0,7,0, + 0,14,0,0,24,0,0,48,0,0,0,0,255,255,224,63, + 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, + 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, + 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, + 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, + 224,21,30,90,22,0,0,0,48,0,0,120,0,0,252,0, + 0,204,0,1,134,0,1,2,0,0,0,0,255,255,224,63, + 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, + 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, + 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, + 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, + 224,21,29,87,22,0,0,0,132,0,1,206,0,1,206,0, + 0,132,0,0,0,0,0,0,0,255,255,224,63,255,224,31, + 0,224,31,0,96,31,0,96,31,0,32,31,0,32,31,4, + 0,31,4,0,31,12,0,31,28,0,31,252,0,31,28,0, + 31,12,0,31,4,0,31,4,0,31,0,8,31,0,24,31, + 0,48,31,0,112,31,1,240,63,255,224,255,255,224,11,30, + 60,13,1,0,192,0,224,0,112,0,56,0,12,0,6,0, + 0,0,255,224,63,128,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,63,128,255,224, + 12,30,60,13,1,0,0,48,0,112,0,224,1,192,3,0, + 6,0,0,0,255,224,63,128,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,63,128, + 255,224,11,30,60,13,1,0,6,0,15,0,31,128,25,128, + 48,192,32,64,0,0,255,224,63,128,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 63,128,255,224,11,29,58,13,1,0,16,128,57,192,57,192, + 16,128,0,0,0,0,255,224,63,128,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, + 63,128,255,224,22,23,69,24,0,0,255,254,0,63,15,128, + 31,3,224,31,1,240,31,1,240,31,0,248,31,0,248,31, + 0,252,31,0,252,31,0,252,255,240,124,255,240,124,255,240, + 124,31,0,124,31,0,252,31,0,248,31,0,248,31,0,248, + 31,1,240,31,1,224,31,3,192,63,15,128,127,254,0,22, + 29,87,24,1,0,0,97,0,0,251,0,1,190,0,1,12, + 0,0,0,0,0,0,0,254,1,252,127,0,112,63,128,32, + 31,128,32,31,192,32,31,224,32,23,240,32,19,248,32,17, + 248,32,17,252,32,16,254,32,16,127,32,16,63,32,16,31, + 160,16,31,224,16,15,224,16,7,224,16,3,224,16,3,224, + 16,1,224,16,0,224,56,0,96,254,0,32,21,30,90,25, + 2,0,6,0,0,7,0,0,3,128,0,1,192,0,0,96, + 0,0,48,0,0,0,0,1,252,0,7,255,0,15,143,128, + 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, + 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, + 2,0,0,3,128,0,7,0,0,14,0,0,24,0,0,48, + 0,0,96,0,0,0,0,1,252,0,7,255,0,15,143,128, + 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, + 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, + 2,0,0,48,0,0,120,0,0,252,0,0,204,0,1,134, + 0,1,2,0,0,0,0,1,252,0,7,255,0,15,143,128, + 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, + 30,3,192,15,143,128,7,255,0,1,252,0,21,29,87,25, + 2,0,0,194,0,1,246,0,3,124,0,2,24,0,0,0, + 0,0,0,0,1,252,0,7,255,0,15,143,128,30,3,192, + 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, + 15,143,128,7,255,0,1,252,0,21,29,87,25,2,0,0, + 132,0,1,206,0,1,206,0,0,132,0,0,0,0,0,0, + 0,1,252,0,7,255,0,15,143,128,30,3,192,60,1,224, + 124,1,240,120,0,240,248,0,248,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,120,0,240,124,1,240,60,1,224,30,3,192,15,143,128, + 7,255,0,1,252,0,15,16,32,19,2,0,64,4,224,14, + 240,30,120,60,60,120,30,240,15,224,7,192,7,192,15,224, + 30,240,60,120,120,60,240,30,224,14,64,4,21,27,81,26, + 2,254,0,0,48,0,0,96,1,252,64,7,143,192,14,3, + 128,30,1,192,60,3,224,124,6,240,120,4,240,248,12,248, + 248,24,248,248,24,248,248,48,248,248,32,248,248,96,248,248, + 192,248,248,128,248,249,128,248,123,0,240,126,1,240,62,1, + 224,28,3,192,14,7,128,31,254,0,17,248,0,48,0,0, + 96,0,0,23,30,90,24,0,0,0,192,0,0,224,0,0, + 112,0,0,56,0,0,12,0,0,2,0,0,0,0,255,224, + 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, + 0,254,0,23,30,90,24,0,0,0,0,192,0,1,192,0, + 3,128,0,7,0,0,12,0,0,16,0,0,0,0,255,224, + 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, + 0,254,0,23,30,90,24,0,0,0,12,0,0,30,0,0, + 63,0,0,51,0,0,97,128,0,64,128,0,0,0,255,224, + 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, + 0,254,0,23,29,87,24,0,0,0,33,0,0,115,128,0, + 115,128,0,33,0,0,0,0,0,0,0,255,224,254,63,128, + 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 48,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, + 22,30,90,24,1,0,0,0,192,0,1,192,0,3,128,0, + 7,0,0,12,0,0,16,0,0,0,0,255,195,252,127,0, + 240,63,0,96,63,0,96,31,128,192,31,128,128,15,193,128, + 15,195,0,7,227,0,3,230,0,3,244,0,1,252,0,1, + 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,1,252,0,7,255,0, + 19,23,69,20,0,0,255,224,0,63,128,0,31,0,0,31, + 0,0,31,254,0,31,15,128,31,7,192,31,7,224,31,3, + 224,31,3,224,31,3,224,31,3,224,31,7,224,31,7,192, + 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,63,128,0,255,224,0,17,23,69,19,0, + 0,3,240,0,14,60,0,30,62,0,28,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,28,0,60,56,0,60, + 224,0,60,60,0,60,30,0,60,15,0,60,15,0,60,15, + 128,60,15,128,60,15,128,60,15,128,60,15,0,60,15,0, + 60,30,0,252,124,0,14,23,46,16,1,0,48,0,56,0, + 28,0,14,0,3,0,0,128,0,0,31,128,49,224,112,240, + 120,240,120,240,48,240,1,240,7,240,28,240,56,240,120,240, + 240,240,249,240,255,244,126,252,60,120,14,23,46,16,1,0, + 0,48,0,112,0,224,1,192,3,0,4,0,0,0,31,128, + 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, + 56,240,120,240,240,240,249,240,255,244,126,252,60,120,14,23, + 46,16,1,0,3,0,7,128,15,192,12,192,24,96,16,32, + 0,0,31,128,49,224,112,240,120,240,120,240,48,240,1,240, + 7,240,28,240,56,240,120,240,240,240,249,240,255,244,126,252, + 60,120,14,22,44,16,1,0,12,32,31,96,55,192,33,128, + 0,0,0,0,31,128,49,224,112,240,120,240,120,240,48,240, + 1,240,7,240,28,240,56,240,120,240,240,240,249,240,255,244, + 126,252,60,120,14,22,44,16,1,0,8,64,28,224,28,224, + 8,64,0,0,0,0,31,128,49,224,112,240,120,240,120,240, + 48,240,1,240,7,240,28,240,56,240,120,240,240,240,249,240, + 255,244,126,252,60,120,14,25,50,16,1,0,7,0,13,128, + 24,192,16,64,24,192,13,128,7,0,0,0,0,0,31,128, + 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, + 56,240,120,240,240,240,249,240,255,244,126,252,60,120,21,16, + 48,24,1,0,31,135,192,49,238,224,112,252,112,120,248,112, + 120,248,56,48,248,56,1,248,56,7,255,248,28,248,0,56, + 248,0,120,252,0,248,252,8,248,254,24,255,255,240,126,63, + 224,60,15,192,13,23,46,15,1,249,7,224,30,240,60,120, + 120,120,120,48,240,0,240,0,240,0,240,0,240,0,248,0, + 120,0,120,0,60,48,31,224,15,192,3,0,6,0,6,0, + 3,128,49,128,59,128,31,0,14,23,46,15,0,0,48,0, + 56,0,28,0,14,0,3,0,0,128,0,0,7,192,30,240, + 60,112,120,56,120,60,248,60,248,60,255,252,248,0,248,0, + 248,0,120,0,124,0,62,24,31,240,7,224,14,23,46,15, + 0,0,0,24,0,56,0,112,0,224,1,128,2,0,0,0, + 7,192,30,240,60,112,120,56,120,60,248,60,248,60,255,252, + 248,0,248,0,248,0,120,0,124,0,62,24,31,240,7,224, + 14,23,46,15,0,0,3,0,7,128,15,192,12,192,24,96, + 16,32,0,0,7,192,30,240,60,112,120,56,120,60,248,60, + 248,60,255,252,248,0,248,0,248,0,120,0,124,0,62,24, + 31,240,7,224,14,22,44,15,0,0,4,32,14,112,14,112, + 4,32,0,0,0,0,7,192,30,240,60,112,120,56,120,60, + 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, + 62,24,31,240,7,224,8,23,23,9,0,0,192,224,112,56, + 12,2,0,252,124,60,60,60,60,60,60,60,60,60,60,60, + 60,126,255,8,23,23,9,0,0,3,7,14,28,48,64,0, + 252,124,60,60,60,60,60,60,60,60,60,60,60,60,126,255, + 8,23,23,9,0,0,24,60,126,102,195,129,0,252,124,60, + 60,60,60,60,60,60,60,60,60,60,60,126,255,8,22,22, + 9,0,0,66,231,231,66,0,0,252,124,60,60,60,60,60, + 60,60,60,60,60,60,60,126,255,14,22,44,17,1,0,56, + 48,62,248,15,248,255,128,251,192,97,224,15,240,60,248,120, + 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, + 60,240,60,120,120,120,120,60,240,15,192,17,22,66,18,0, + 0,3,8,0,7,216,0,13,240,0,8,96,0,0,0,0, + 0,0,0,252,120,0,125,252,0,63,62,0,62,30,0,62, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,126,63,0, + 255,127,128,14,23,46,17,1,0,48,0,56,0,28,0,14, + 0,3,0,0,128,0,0,15,192,60,240,120,120,120,120,240, + 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, + 120,120,120,60,240,15,192,14,23,46,17,1,0,0,24,0, + 56,0,112,0,224,1,128,2,0,0,0,15,192,60,240,120, + 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, + 60,240,60,120,120,120,120,60,240,15,192,14,23,46,17,1, + 0,3,0,7,128,15,192,12,192,24,96,16,32,0,0,15, + 192,60,240,120,120,120,120,240,60,240,60,240,60,240,60,240, + 60,240,60,240,60,240,60,120,120,120,120,60,240,15,192,14, + 22,44,17,1,0,12,32,31,96,55,192,33,128,0,0,0, + 0,15,192,60,240,120,120,120,120,240,60,240,60,240,60,240, + 60,240,60,240,60,240,60,240,60,120,120,120,120,60,240,15, + 192,14,22,44,17,1,0,8,64,28,224,28,224,8,64,0, + 0,0,0,15,192,60,240,120,120,120,120,240,60,240,60,240, + 60,240,60,240,60,240,60,240,60,240,60,120,120,120,120,60, + 240,15,192,14,15,30,19,2,1,3,0,7,128,7,128,3, + 0,0,0,0,0,255,252,255,252,255,252,0,0,0,0,3, + 0,7,128,7,128,3,0,14,22,44,17,1,253,0,8,0, + 24,0,24,15,240,60,240,120,120,120,120,240,252,241,188,241, + 60,243,60,242,60,246,60,252,60,248,60,120,120,120,120,60, + 240,111,192,96,0,192,0,128,0,17,23,69,18,0,0,24, + 0,0,28,0,0,14,0,0,7,0,0,1,128,0,0,64, + 0,0,0,0,252,126,0,124,62,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,62,0,62,127,0,31,223, + 128,7,140,0,17,23,69,18,0,0,0,12,0,0,28,0, + 0,56,0,0,112,0,0,192,0,1,0,0,0,0,0,252, + 126,0,124,62,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,62,0,62,127,0,31,223,128,7,140,0,17, + 23,69,18,0,0,1,128,0,3,192,0,7,224,0,6,96, + 0,12,48,0,8,16,0,0,0,0,252,126,0,124,62,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, + 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,62, + 0,62,127,0,31,223,128,7,140,0,17,22,66,18,0,0, + 4,32,0,14,112,0,14,112,0,4,32,0,0,0,0,0, + 0,0,252,126,0,124,62,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,62,0,62,127,0,31,223,128,7, + 140,0,15,30,60,17,0,249,0,12,0,28,0,56,0,112, + 0,192,1,0,0,0,255,190,126,12,62,8,62,8,31,24, + 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, + 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, + 254,0,120,0,15,29,58,19,1,249,252,0,124,0,60,0, + 60,0,60,0,60,0,60,224,63,248,62,124,60,60,60,62, + 60,30,60,30,60,30,60,30,60,30,60,30,60,30,60,60, + 62,60,63,248,60,224,60,0,60,0,60,0,60,0,60,0, + 126,0,255,0,15,29,58,17,0,249,4,32,14,112,14,112, + 4,32,0,0,0,0,255,190,126,12,62,8,62,8,31,24, + 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, + 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, + 254,0,120,0}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 23 + Calculated Max Values w=16 h=25 x= 2 y= 9 dx=19 dy= 0 ascent=25 len=50 + Font Bounding box w=38 h=49 x=-5 y=-12 + Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 + Pure Font ascent =23 descent= 0 + X Font ascent =23 descent= 0 + Max Font ascent =25 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB24n[701] U8G_SECTION(".progmem.u8g_font_timB24n") = { + 0,38,49,251,244,23,0,0,0,0,42,57,0,25,250,23, + 0,13,14,28,17,1,9,3,0,7,0,7,0,231,56,242, + 120,122,240,15,128,15,128,122,240,242,120,231,56,7,0,7, + 0,6,0,15,15,30,19,2,0,3,128,3,128,3,128,3, + 128,3,128,3,128,255,254,255,254,255,254,3,128,3,128,3, + 128,3,128,3,128,3,128,6,11,11,8,1,250,56,124,124, + 124,60,12,8,24,48,96,192,8,4,4,11,1,6,255,255, + 255,255,5,5,5,8,1,0,112,248,248,248,112,9,25,50, + 9,0,0,1,128,1,128,1,0,3,0,3,0,3,0,6, + 0,6,0,6,0,4,0,12,0,12,0,12,0,24,0,24, + 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, + 0,192,0,192,0,14,23,46,16,1,0,7,128,31,224,28, + 224,56,112,120,112,120,120,120,120,248,124,248,124,248,124,248, + 124,248,124,248,124,248,124,248,124,248,124,120,120,120,120,120, + 120,56,112,28,224,15,192,7,128,13,23,46,16,2,0,1, + 128,7,128,31,128,255,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,31,192,255,248,16,23,46, + 16,0,0,3,192,15,240,31,248,63,248,48,252,96,124,64, + 124,0,124,0,120,0,120,0,120,0,240,0,224,1,192,1, + 128,3,0,7,1,14,3,28,6,63,254,127,254,255,252,255, + 252,14,23,46,16,1,0,7,192,31,240,63,240,48,248,96, + 120,64,120,0,120,0,112,0,192,3,224,15,240,15,248,3, + 248,0,252,0,124,0,60,0,60,0,60,96,56,240,56,248, + 112,127,192,31,0,14,23,46,16,1,0,0,112,0,240,0, + 240,1,240,3,240,6,240,6,240,12,240,24,240,24,240,48, + 240,96,240,96,240,192,240,255,252,255,252,255,252,255,252,0, + 240,0,240,0,240,0,240,0,240,13,23,46,16,1,0,31, + 248,31,248,31,248,31,248,48,0,48,0,32,0,62,0,127, + 128,127,224,127,240,127,240,3,248,0,248,0,120,0,56,0, + 56,0,56,96,48,240,48,248,96,127,192,31,0,14,23,46, + 16,1,0,0,28,0,240,3,192,7,128,15,0,30,0,62, + 0,60,0,124,0,127,224,253,240,248,248,248,120,248,124,248, + 124,248,124,248,124,120,124,120,120,120,120,56,112,28,224,15, + 192,13,23,46,16,2,0,127,248,127,248,255,248,255,248,192, + 48,128,112,128,112,0,96,0,224,0,224,0,192,1,192,1, + 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, + 0,14,0,28,0,14,23,46,16,1,0,15,224,62,240,60, + 120,120,120,120,56,120,56,124,56,126,112,63,224,63,128,31, + 192,15,224,63,240,113,248,112,252,224,124,224,60,224,60,224, + 60,240,56,120,120,127,240,31,192,14,23,46,16,1,0,15, + 192,28,224,56,112,120,120,120,120,248,120,248,124,248,124,248, + 124,248,124,120,124,124,124,62,252,31,248,0,248,0,240,1, + 240,1,224,3,192,7,128,15,0,60,0,224,0}; +/* + Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=32 h=30 x= 4 y=17 dx=33 dy= 0 ascent=26 len=108 + Font Bounding box w=38 h=49 x=-5 y=-12 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =26 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timB24r[5003] U8G_SECTION(".progmem.u8g_font_timB24r") = { + 0,38,49,251,244,23,5,149,13,202,32,127,249,26,249,23, + 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, + 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, + 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, + 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, + 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, + 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, + 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, + 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, + 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, + 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, + 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, + 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, + 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, + 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, + 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, + 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, + 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, + 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, + 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, + 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, + 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, + 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, + 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, + 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, + 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, + 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, + 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, + 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, + 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, + 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, + 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, + 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, + 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, + 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, + 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, + 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, + 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, + 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, + 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, + 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, + 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, + 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, + 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, + 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, + 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, + 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, + 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, + 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, + 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, + 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, + 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, + 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, + 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, + 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, + 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, + 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, + 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, + 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, + 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, + 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, + 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, + 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, + 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, + 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, + 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, + 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, + 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, + 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, + 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, + 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, + 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, + 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, + 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, + 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, + 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, + 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, + 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, + 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, + 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, + 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, + 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, + 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, + 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, + 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, + 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, + 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, + 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, + 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, + 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, + 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, + 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, + 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, + 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, + 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, + 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, + 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, + 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, + 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, + 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, + 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, + 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, + 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, + 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, + 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, + 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, + 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, + 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, + 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, + 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, + 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, + 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, + 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, + 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, + 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, + 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, + 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, + 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, + 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, + 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, + 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, + 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, + 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, + 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, + 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, + 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, + 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, + 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, + 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, + 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, + 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, + 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, + 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, + 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, + 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, + 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, + 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, + 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, + 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, + 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, + 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, + 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, + 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, + 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, + 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, + 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, + 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, + 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, + 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, + 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, + 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, + 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, + 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, + 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, + 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, + 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, + 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, + 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, + 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, + 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, + 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, + 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, + 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, + 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, + 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, + 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, + 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, + 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, + 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, + 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, + 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, + 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, + 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, + 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, + 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, + 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, + 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, + 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, + 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, + 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, + 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, + 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, + 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, + 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, + 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, + 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, + 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, + 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, + 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, + 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, + 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, + 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, + 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, + 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, + 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, + 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, + 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, + 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, + 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, + 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, + 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, + 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, + 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, + 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, + 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, + 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, + 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, + 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, + 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, + 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, + 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, + 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, + 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, + 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, + 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, + 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, + 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, + 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, + 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, + 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, + 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, + 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, + 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, + 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, + 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, + 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, + 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, + 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, + 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, + 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, + 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, + 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, + 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, + 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, + 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, + 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, + 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, + 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, + 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, + 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, + 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, + 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, + 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, + 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, + 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, + 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, + 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, + 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, + 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, + 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, + 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, + 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, + 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, + 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, + 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, + 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, + 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, + 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, + 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, + 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, + 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, + 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, + 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, + 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, + 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, + 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, + 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, + 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, + 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, + 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, + 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, + 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, + 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, + 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, + 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, + 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, + 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, + 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, + 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, + 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, + 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, + 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, + 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, + 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, + 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, + 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, + 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, + 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, + 255,198,143,254,131,252,1,248,0,112,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w=11 h=10 x= 1 y= 6 dx=10 dy= 0 ascent=10 len=14 + Font Bounding box w=12 h=17 x=-2 y=-4 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent =10 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR08[2512] U8G_SECTION(".progmem.u8g_font_timR08") = { + 0,12,17,254,252,7,1,147,3,56,32,255,254,10,253,7, + 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, + 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, + 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, + 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, + 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, + 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, + 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, + 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, + 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, + 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, + 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, + 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, + 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, + 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, + 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, + 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, + 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, + 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, + 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, + 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, + 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, + 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, + 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, + 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, + 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, + 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, + 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, + 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, + 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, + 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, + 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, + 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, + 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, + 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, + 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, + 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, + 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, + 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, + 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, + 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, + 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, + 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, + 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, + 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, + 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, + 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, + 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, + 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, + 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, + 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, + 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, + 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, + 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, + 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, + 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, + 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, + 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, + 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, + 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, + 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, + 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, + 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, + 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, + 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, + 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, + 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, + 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, + 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, + 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, + 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, + 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, + 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, + 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, + 32,64,64,64,128,6,2,2,7,0,2,100,152,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, + 0,2,0,1,1,7,7,3,1,254,128,0,128,128,128,128, + 128,4,7,7,5,0,255,32,112,144,128,144,96,64,5,7, + 7,5,0,0,48,80,64,224,64,200,240,5,6,6,5,0, + 1,136,112,80,80,112,136,5,7,7,5,0,0,136,80,216, + 32,248,32,112,1,7,7,2,0,0,128,128,128,0,128,128, + 128,4,9,9,5,0,254,112,144,64,160,144,80,32,144,224, + 3,1,1,5,1,5,160,7,7,7,9,1,0,56,68,154, + 162,154,68,56,3,5,5,4,0,2,192,32,160,0,224,4, + 4,4,5,0,1,80,160,160,80,5,2,2,7,1,1,248, + 8,3,1,1,4,0,2,224,7,7,7,9,1,0,56,68, + 186,178,170,68,56,3,1,1,4,0,5,224,4,4,4,4, + 0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32, + 32,0,248,3,4,4,3,0,3,96,160,64,224,3,4,4, + 3,0,3,224,64,32,192,2,2,2,3,0,5,64,128,5, + 7,7,5,0,254,144,144,144,144,232,128,128,6,9,9,6, + 0,254,124,232,232,232,104,40,40,40,40,1,1,1,2,0, + 2,128,3,3,3,4,0,253,64,32,192,3,4,4,3,0, + 3,64,192,64,224,3,5,5,4,0,2,64,160,64,0,224, + 4,4,4,5,0,1,160,80,80,160,7,7,7,8,0,0, + 68,200,72,244,44,62,68,7,7,7,8,0,0,68,200,72, + 246,42,36,78,7,7,7,8,0,0,228,72,40,212,44,62, + 68,3,7,7,4,0,254,64,0,64,64,128,160,224,7,10, + 10,8,0,0,32,16,0,16,56,40,40,124,68,238,7,10, + 10,8,0,0,8,16,0,16,56,40,40,124,68,238,7,10, + 10,8,0,0,16,40,0,16,56,40,40,124,68,238,7,10, + 10,8,0,0,20,40,0,16,56,40,40,124,68,238,7,9, + 9,8,0,0,40,0,16,56,40,40,124,68,238,7,10,10, + 8,0,0,16,40,16,16,56,40,40,124,68,238,8,7,7, + 9,0,0,31,57,40,46,120,73,239,6,10,10,7,0,253, + 124,196,128,128,128,196,120,32,16,96,5,10,10,6,0,0, + 64,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, + 16,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, + 32,80,0,248,72,64,112,64,72,248,5,9,9,6,0,0, + 80,0,248,72,64,112,64,72,248,3,10,10,4,0,0,128, + 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,32, + 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,64, + 160,0,224,64,64,64,64,64,224,3,9,9,4,0,0,160, + 0,224,64,64,64,64,64,224,6,7,7,7,0,0,248,76, + 68,228,68,76,248,7,10,10,8,0,0,20,40,0,206,100, + 100,84,84,76,228,6,10,10,7,0,0,32,16,0,120,204, + 132,132,132,204,120,6,10,10,7,0,0,16,32,0,120,204, + 132,132,132,204,120,6,10,10,7,0,0,16,40,0,120,204, + 132,132,132,204,120,6,10,10,7,0,0,40,80,0,120,204, + 132,132,132,204,120,6,9,9,7,0,0,72,0,120,204,132, + 132,132,204,120,5,5,5,6,0,0,136,80,32,80,136,8, + 9,9,8,255,255,1,62,102,74,66,82,102,124,128,7,10, + 10,8,0,0,32,16,0,238,68,68,68,68,108,56,7,10, + 10,8,0,0,8,16,0,238,68,68,68,68,108,56,7,10, + 10,8,0,0,16,40,0,238,68,68,68,68,108,56,7,9, + 9,8,0,0,40,0,238,68,68,68,68,108,56,7,10,10, + 8,0,0,8,16,0,198,68,40,56,16,16,56,5,7,7, + 6,0,0,224,64,112,72,112,64,224,4,7,7,5,0,0, + 32,80,80,96,80,80,224,3,8,8,4,0,0,128,64,0, + 192,32,96,160,224,3,8,8,4,0,0,32,64,0,192,32, + 96,160,224,3,8,8,4,0,0,64,160,0,192,32,96,160, + 224,4,8,8,4,0,0,80,160,0,192,32,96,160,224,3, + 7,7,4,0,0,160,0,192,32,96,160,224,3,8,8,4, + 0,0,64,160,64,192,32,96,160,224,5,5,5,6,0,0, + 216,40,112,160,216,3,8,8,4,0,253,96,128,128,128,96, + 64,32,192,3,8,8,4,0,0,128,64,0,96,160,192,128, + 96,3,8,8,4,0,0,32,64,0,96,160,192,128,96,3, + 8,8,4,0,0,64,160,0,96,160,192,128,96,3,7,7, + 4,0,0,160,0,96,160,192,128,96,2,8,8,3,0,0, + 128,64,0,192,64,64,64,64,3,8,8,3,0,0,32,64, + 0,192,64,64,64,64,3,8,8,3,0,0,64,160,0,192, + 64,64,64,64,3,7,7,3,0,0,160,0,192,64,64,64, + 64,4,8,8,5,0,0,64,112,160,112,144,144,144,96,5, + 8,8,5,0,0,80,160,0,224,144,144,144,216,4,8,8, + 5,0,0,64,32,0,96,144,144,144,96,4,8,8,5,0, + 0,32,64,0,96,144,144,144,96,4,8,8,5,0,0,64, + 160,0,96,144,144,144,96,4,8,8,5,0,0,80,160,0, + 96,144,144,144,96,4,7,7,5,0,0,160,0,96,144,144, + 144,96,5,5,5,6,0,0,32,0,248,0,32,6,7,7, + 5,255,255,4,56,72,72,72,112,128,5,8,8,5,0,0, + 64,32,0,144,144,144,144,104,5,8,8,5,0,0,32,64, + 0,144,144,144,144,104,5,8,8,5,0,0,32,80,0,144, + 144,144,144,104,5,7,7,5,0,0,80,0,144,144,144,144, + 104,6,10,10,5,255,254,16,32,0,220,72,80,48,32,96, + 192,5,10,10,5,255,253,192,64,112,72,72,72,112,64,64, + 224,6,9,9,5,255,254,80,0,220,72,80,48,32,96,192 + }; +/* + Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w=11 h= 9 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=14 + Font Bounding box w=12 h=17 x=-2 y=-4 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 7 descent=-2 + Max Font ascent = 8 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR08r[1198] U8G_SECTION(".progmem.u8g_font_timR08r") = { + 0,12,17,254,252,7,1,147,3,56,32,127,254,8,253,7, + 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, + 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, + 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, + 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, + 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, + 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, + 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, + 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, + 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, + 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, + 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, + 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, + 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, + 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, + 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, + 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, + 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, + 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, + 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, + 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, + 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, + 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, + 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, + 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, + 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, + 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, + 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, + 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, + 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, + 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, + 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, + 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, + 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, + 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, + 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, + 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, + 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, + 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, + 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, + 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, + 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, + 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, + 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, + 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, + 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, + 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, + 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, + 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, + 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, + 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, + 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, + 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, + 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, + 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, + 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, + 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, + 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, + 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, + 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, + 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, + 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, + 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, + 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, + 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, + 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, + 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, + 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, + 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, + 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, + 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, + 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, + 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, + 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, + 32,64,64,64,128,6,2,2,7,0,2,100,152,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=13 h=14 x= 2 y= 8 dx=13 dy= 0 ascent=14 len=28 + Font Bounding box w=17 h=24 x=-2 y=-6 + Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =14 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR10[3359] U8G_SECTION(".progmem.u8g_font_timR10") = { + 0,17,24,254,250,10,2,4,4,92,32,255,253,14,253,10, + 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, + 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, + 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, + 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, + 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, + 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, + 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, + 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, + 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, + 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, + 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, + 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, + 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, + 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, + 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, + 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, + 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, + 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, + 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, + 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, + 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, + 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, + 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, + 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, + 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, + 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, + 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, + 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, + 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, + 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, + 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, + 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, + 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, + 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, + 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, + 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, + 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, + 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, + 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, + 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, + 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, + 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, + 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, + 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, + 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, + 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, + 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, + 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, + 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, + 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, + 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, + 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, + 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, + 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, + 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, + 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, + 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, + 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, + 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, + 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, + 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, + 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, + 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, + 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, + 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, + 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, + 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, + 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, + 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, + 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, + 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, + 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, + 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, + 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, + 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, + 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, + 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, + 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, + 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, + 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, + 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, + 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, + 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, + 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, + 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, + 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, + 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, + 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, + 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, + 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, + 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, + 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, + 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, + 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, + 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, + 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, + 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, + 98,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,3,0,1,1,10,10,5,2,253,128, + 128,0,128,128,128,128,128,128,128,6,9,9,7,0,255,4, + 124,204,144,144,160,228,120,128,7,10,10,8,0,0,28,52, + 32,32,248,32,32,32,226,188,5,7,7,7,1,1,136,112, + 136,136,136,112,136,7,10,10,7,0,0,238,68,108,40,124, + 16,124,16,16,56,1,10,10,3,1,0,128,128,128,128,0, + 0,128,128,128,128,5,13,13,7,1,253,56,88,64,96,112, + 152,136,200,112,48,16,208,224,3,2,2,5,1,8,160,160, + 10,10,20,12,1,0,30,0,97,128,78,128,146,64,144,64, + 144,64,146,64,76,128,97,128,30,0,3,6,6,4,0,4, + 224,32,160,224,0,224,6,6,6,7,0,0,36,72,144,144, + 72,36,7,4,4,9,1,2,254,2,2,2,3,1,1,4, + 0,3,224,10,10,20,12,1,0,30,0,97,128,92,128,146, + 64,156,64,148,64,146,64,82,128,97,128,30,0,4,1,1, + 4,0,8,240,4,4,4,6,1,6,96,144,144,96,7,7, + 7,8,0,0,16,16,254,16,16,0,254,4,6,6,4,0, + 4,96,144,16,32,64,240,4,6,6,4,0,4,96,144,32, + 16,144,96,3,3,3,5,1,8,32,96,128,7,10,10,7, + 0,253,204,68,68,68,68,108,118,64,64,96,7,13,13,7, + 0,253,62,116,244,244,244,116,52,20,20,20,20,20,20,1, + 2,2,4,2,3,128,128,3,3,3,5,1,253,64,32,192, + 3,6,6,4,0,4,64,192,64,64,64,224,4,6,6,5, + 0,4,96,144,144,96,0,240,6,6,6,7,1,0,144,72, + 36,36,72,144,10,10,20,10,0,0,65,0,194,0,66,0, + 68,0,68,128,233,128,10,128,20,128,23,192,32,128,10,10, + 20,10,0,0,65,0,194,0,66,0,68,0,69,128,234,64, + 8,64,16,128,17,0,35,192,10,10,20,10,0,0,97,0, + 146,0,34,0,20,0,148,128,105,128,10,128,20,128,23,192, + 32,128,5,10,10,6,0,253,32,32,0,32,32,64,128,136, + 136,112,9,14,28,11,1,0,16,0,24,0,4,0,0,0, + 8,0,8,0,20,0,20,0,34,0,34,0,62,0,65,0, + 65,0,227,128,9,14,28,11,1,0,4,0,12,0,16,0, + 0,0,8,0,8,0,20,0,20,0,34,0,34,0,62,0, + 65,0,65,0,227,128,9,14,28,11,1,0,8,0,28,0, + 34,0,0,0,8,0,8,0,20,0,20,0,34,0,34,0, + 62,0,65,0,65,0,227,128,9,14,28,11,1,0,18,0, + 42,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, + 34,0,62,0,65,0,65,0,227,128,9,13,26,11,1,0, + 36,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, + 34,0,62,0,65,0,65,0,227,128,9,14,28,11,1,0, + 24,0,36,0,24,0,0,0,8,0,8,0,20,0,20,0, + 34,0,34,0,62,0,65,0,65,0,227,128,11,10,20,13, + 1,0,31,224,12,32,20,0,20,64,39,192,36,64,60,0, + 68,32,68,32,239,224,8,13,13,10,1,253,61,99,65,129, + 128,128,128,193,98,60,8,4,24,7,14,14,9,1,0,32, + 48,8,0,254,66,64,68,124,68,64,66,66,254,7,14,14, + 9,1,0,4,12,16,0,254,66,64,68,124,68,64,66,66, + 254,7,14,14,9,1,0,16,56,68,0,254,66,64,68,124, + 68,64,66,66,254,7,13,13,9,1,0,36,36,0,254,66, + 64,68,124,68,64,66,66,254,3,14,14,5,1,0,128,192, + 32,0,224,64,64,64,64,64,64,64,64,224,3,14,14,5, + 1,0,32,96,128,0,224,64,64,64,64,64,64,64,64,224, + 5,14,14,5,0,0,32,112,136,0,112,32,32,32,32,32, + 32,32,32,112,3,13,13,5,1,0,160,160,0,224,64,64, + 64,64,64,64,64,64,224,9,10,20,10,0,0,254,0,35, + 0,33,0,32,128,248,128,32,128,32,128,33,0,35,0,254, + 0,9,14,28,11,1,0,18,0,42,0,36,0,0,0,227, + 128,97,0,81,0,89,0,73,0,77,0,69,0,69,0,67, + 0,227,0,8,14,14,10,1,0,32,48,8,0,60,102,66, + 129,129,129,129,66,102,60,8,14,14,10,1,0,4,12,16, + 0,60,102,66,129,129,129,129,66,102,60,8,14,14,10,1, + 0,16,56,68,0,60,102,66,129,129,129,129,66,102,60,8, + 14,14,10,1,0,36,84,72,0,60,102,66,129,129,129,129, + 66,102,60,8,13,13,10,1,0,36,36,0,60,102,66,129, + 129,129,129,66,102,60,7,7,7,8,1,0,130,68,40,16, + 40,68,130,9,12,24,10,0,255,0,128,31,0,49,0,35, + 0,68,128,76,128,72,128,80,128,49,0,99,0,94,0,128, + 0,8,14,14,10,1,0,32,48,8,0,231,66,66,66,66, + 66,66,66,102,60,8,14,14,10,1,0,4,12,16,0,231, + 66,66,66,66,66,66,66,102,60,8,14,14,10,1,0,16, + 56,68,0,231,66,66,66,66,66,66,66,102,60,8,13,13, + 10,1,0,36,36,0,231,66,66,66,66,66,66,66,102,60, + 9,14,28,9,0,0,2,0,6,0,8,0,0,0,227,128, + 65,0,34,0,34,0,20,0,8,0,8,0,8,0,8,0, + 28,0,6,10,10,8,1,0,224,64,120,76,68,68,76,120, + 64,224,6,10,10,7,0,0,56,108,68,72,112,88,76,68, + 84,216,6,11,11,7,1,0,64,96,16,0,112,200,24,104, + 136,200,116,6,11,11,7,1,0,8,24,32,0,112,200,24, + 104,136,200,116,6,11,11,7,1,0,32,112,136,0,112,200, + 24,104,136,200,116,6,11,11,7,1,0,72,168,144,0,112, + 200,24,104,136,200,116,6,10,10,7,1,0,80,80,0,112, + 200,24,104,136,200,116,6,11,11,7,1,0,48,72,48,0, + 112,200,24,104,136,200,116,9,7,14,11,1,0,127,0,201, + 128,31,0,104,0,136,0,204,128,119,0,6,10,10,7,1, + 253,112,200,128,128,128,196,120,32,16,96,6,11,11,7,1, + 0,64,96,16,0,112,136,248,128,128,196,120,6,11,11,7, + 1,0,8,24,32,0,112,136,248,128,128,196,120,6,11,11, + 7,1,0,32,112,136,0,112,136,248,128,128,196,120,6,10, + 10,7,1,0,80,80,0,112,136,248,128,128,196,120,3,11, + 11,3,0,0,128,192,32,0,192,64,64,64,64,64,224,3, + 11,11,3,0,0,32,96,128,0,192,64,64,64,64,64,224, + 5,11,11,3,255,0,32,112,136,0,96,32,32,32,32,32, + 112,3,10,10,3,0,0,160,160,0,192,64,64,64,64,64, + 224,5,10,10,7,1,0,216,96,144,120,216,136,136,136,216, + 112,7,11,11,7,0,0,36,84,72,0,216,108,68,68,68, + 68,238,5,11,11,7,1,0,64,96,16,0,112,216,136,136, + 136,216,112,5,11,11,7,1,0,16,48,64,0,112,216,136, + 136,136,216,112,5,11,11,7,1,0,32,112,136,0,112,216, + 136,136,136,216,112,5,11,11,7,1,0,72,168,144,0,112, + 216,136,136,136,216,112,5,10,10,7,1,0,80,80,0,112, + 216,136,136,136,216,112,7,7,7,8,1,0,16,16,0,254, + 0,16,16,7,9,9,7,0,255,2,60,108,68,68,68,108, + 120,128,7,11,11,7,0,0,32,48,8,0,204,68,68,68, + 68,108,54,7,11,11,7,0,0,8,24,32,0,204,68,68, + 68,68,108,54,7,11,11,7,0,0,16,56,68,0,204,68, + 68,68,68,108,54,7,10,10,7,0,0,40,40,0,204,68, + 68,68,68,108,54,7,14,14,7,0,253,4,12,16,0,238, + 68,68,40,40,16,48,32,160,192,6,13,13,7,0,253,192, + 64,64,88,108,68,68,68,108,88,64,64,224,7,13,13,7, + 0,253,40,40,0,238,68,68,40,40,16,48,32,160,192}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=13 h=13 x= 2 y= 8 dx=13 dy= 0 ascent=11 len=24 + Font Bounding box w=17 h=24 x=-2 y=-6 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =10 descent=-3 + X Font ascent =10 descent=-3 + Max Font ascent =11 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR10r[1571] U8G_SECTION(".progmem.u8g_font_timR10r") = { + 0,17,24,254,250,10,2,4,4,92,32,127,253,11,253,10, + 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, + 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, + 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, + 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, + 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, + 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, + 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, + 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, + 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, + 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, + 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, + 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, + 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, + 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, + 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, + 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, + 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, + 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, + 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, + 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, + 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, + 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, + 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, + 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, + 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, + 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, + 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, + 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, + 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, + 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, + 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, + 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, + 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, + 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, + 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, + 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, + 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, + 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, + 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, + 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, + 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, + 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, + 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, + 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, + 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, + 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, + 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, + 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, + 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, + 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, + 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, + 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, + 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, + 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, + 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, + 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, + 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, + 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, + 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, + 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, + 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, + 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, + 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, + 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, + 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, + 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, + 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, + 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, + 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, + 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, + 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, + 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, + 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, + 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, + 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, + 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, + 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, + 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, + 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, + 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, + 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, + 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, + 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, + 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, + 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, + 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, + 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, + 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, + 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, + 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, + 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, + 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, + 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, + 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, + 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, + 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, + 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, + 98,156,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=16 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=30 + Font Bounding box w=19 h=26 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =11 descent=-4 + Max Font ascent =15 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR12[3905] U8G_SECTION(".progmem.u8g_font_timR12") = { + 0,19,26,254,249,11,2,36,5,11,32,255,252,15,252,11, + 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, + 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, + 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, + 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, + 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, + 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, + 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, + 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, + 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, + 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, + 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, + 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, + 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, + 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, + 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, + 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, + 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, + 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, + 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, + 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, + 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, + 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, + 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, + 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, + 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, + 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, + 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, + 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, + 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, + 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, + 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, + 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, + 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, + 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, + 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, + 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, + 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, + 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, + 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, + 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, + 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, + 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, + 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, + 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, + 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, + 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, + 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, + 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, + 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, + 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, + 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, + 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, + 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, + 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, + 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, + 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, + 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, + 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, + 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, + 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, + 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, + 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, + 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, + 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, + 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, + 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, + 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, + 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, + 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, + 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, + 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, + 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, + 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, + 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, + 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, + 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, + 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, + 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, + 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, + 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, + 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, + 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, + 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, + 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, + 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, + 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, + 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, + 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, + 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, + 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, + 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, + 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, + 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, + 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, + 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, + 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, + 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, + 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, + 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, + 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, + 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, + 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, + 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, + 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, + 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, + 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, + 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, + 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, + 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, + 3,9,0,3,113,153,142,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,4,0,1,1,11, + 11,5,2,253,128,128,0,0,128,128,128,128,128,128,128,7, + 12,12,8,0,254,4,4,60,74,138,136,144,146,84,56,32, + 32,8,11,11,8,0,0,12,18,34,32,32,252,16,16,113, + 145,110,8,9,9,8,0,1,153,102,66,129,129,129,66,102, + 153,9,11,22,8,255,0,227,128,65,0,34,0,20,0,8, + 0,62,0,8,0,62,0,8,0,8,0,28,0,1,11,11, + 3,0,0,128,128,128,128,128,0,128,128,128,128,128,7,14, + 14,8,0,253,56,68,76,32,80,136,132,66,34,20,8,100, + 68,56,4,2,2,6,1,9,144,144,11,11,22,13,0,0, + 14,0,49,128,64,64,78,64,145,32,144,32,144,32,81,64, + 78,64,49,128,14,0,4,6,6,5,0,5,96,16,112,144, + 80,240,7,7,7,8,0,0,18,36,72,144,72,36,18,8, + 5,5,9,0,0,255,1,1,1,1,4,1,1,5,0,4, + 240,11,11,22,13,0,0,14,0,49,128,64,64,78,64,137, + 32,142,32,138,32,74,64,73,64,49,128,14,0,5,1,1, + 6,0,9,248,5,5,5,7,1,6,112,136,136,136,112,7, + 9,9,9,1,0,16,16,16,254,16,16,16,0,254,5,7, + 7,5,0,4,112,136,8,16,32,72,248,6,7,7,5,255, + 4,56,68,4,24,4,132,120,3,3,3,6,2,8,32,64, + 128,8,11,11,8,0,253,198,66,66,66,66,66,71,122,64, + 64,64,7,15,15,8,0,252,62,116,244,244,244,116,52,20, + 20,20,20,20,20,20,20,1,2,2,4,1,4,128,128,4, + 4,4,6,0,252,32,112,16,224,3,7,7,5,1,4,64, + 192,64,64,64,64,224,4,6,6,5,0,5,96,144,144,144, + 96,240,7,7,7,8,0,0,144,72,36,18,36,72,144,11, + 11,22,13,1,0,64,128,193,0,67,0,66,0,68,64,76, + 192,233,64,25,64,18,64,39,224,64,64,12,11,22,13,0, + 0,64,128,193,0,67,0,66,0,68,224,77,16,232,16,24, + 32,16,64,32,144,65,240,13,11,22,13,255,0,56,32,68, + 64,4,192,24,128,5,16,135,48,122,80,6,80,4,144,9, + 248,8,16,5,11,11,7,1,253,32,32,0,0,32,32,64, + 128,136,136,112,12,15,30,12,0,0,8,0,4,0,2,0, + 0,0,4,0,6,0,10,0,11,0,17,0,17,128,32,128, + 63,128,64,192,64,64,224,240,12,15,30,12,0,0,1,0, + 2,0,4,0,0,0,4,0,6,0,10,0,11,0,17,0, + 17,128,32,128,63,128,64,192,64,64,224,240,12,15,30,12, + 0,0,4,0,10,0,17,0,0,0,4,0,6,0,10,0, + 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, + 12,14,28,12,0,0,13,0,22,0,0,0,4,0,6,0, + 10,0,11,0,17,0,17,128,32,128,63,128,64,192,64,64, + 224,240,12,14,28,12,0,0,9,0,9,0,0,0,4,0, + 6,0,10,0,11,0,17,0,17,128,32,128,63,128,64,192, + 64,64,224,240,12,14,28,12,0,0,6,0,9,0,9,0, + 6,0,6,0,10,0,11,0,17,0,17,128,32,128,63,128, + 64,192,64,64,224,240,14,11,22,15,0,0,7,248,3,8, + 5,8,9,0,9,16,17,240,31,16,33,0,33,0,65,4, + 243,248,10,15,30,11,0,252,15,64,48,192,64,64,128,64, + 128,0,128,0,128,0,128,0,64,64,49,128,14,0,4,0, + 14,0,2,0,28,0,9,15,30,10,0,0,32,0,16,0, + 8,0,0,0,255,0,65,0,64,0,64,0,66,0,126,0, + 66,0,64,0,64,0,64,128,255,0,9,15,30,10,0,0, + 2,0,4,0,8,0,0,0,255,0,65,0,65,0,64,0, + 66,0,126,0,66,0,64,0,64,0,64,128,255,0,9,15, + 30,10,0,0,8,0,20,0,34,0,0,0,255,0,65,0, + 64,0,64,0,66,0,126,0,66,0,64,0,64,0,64,128, + 255,0,9,14,28,10,0,0,36,0,36,0,0,0,255,0, + 65,0,64,0,64,0,66,0,126,0,66,0,64,0,64,0, + 64,128,255,0,4,15,15,5,255,0,128,64,32,0,112,32, + 32,32,32,32,32,32,32,32,112,5,15,15,5,0,0,8, + 16,32,0,224,64,64,64,64,64,64,64,64,64,224,5,15, + 15,5,255,0,32,80,136,0,112,32,32,32,32,32,32,32, + 32,32,112,3,14,14,5,0,0,160,160,0,224,64,64,64, + 64,64,64,64,64,64,224,10,11,22,12,1,0,252,0,67, + 0,64,128,64,64,64,64,248,64,64,64,64,64,64,128,67, + 0,252,0,10,14,28,12,0,0,13,0,22,0,0,0,225, + 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, + 128,65,128,240,128,9,15,30,12,1,0,32,0,16,0,8, + 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, + 128,128,128,65,0,99,0,28,0,9,15,30,12,1,0,2, + 0,4,0,8,0,0,0,28,0,99,0,65,0,128,128,128, + 128,128,128,128,128,128,128,65,0,99,0,28,0,9,15,30, + 12,1,0,8,0,20,0,34,0,0,0,28,0,99,0,65, + 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, + 0,9,14,28,12,1,0,26,0,44,0,0,0,28,0,99, + 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, + 0,28,0,9,14,28,12,1,0,34,0,34,0,0,0,28, + 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, + 0,99,0,28,0,7,7,7,9,1,0,130,68,40,16,40, + 68,130,11,13,26,12,0,255,0,64,14,64,49,128,65,64, + 130,32,132,32,132,32,136,32,144,32,80,64,49,128,78,0, + 64,0,10,15,30,12,0,0,16,0,8,0,4,0,0,0, + 225,192,64,128,64,128,64,128,64,128,64,128,64,128,64,128, + 64,128,33,0,30,0,10,15,30,12,0,0,1,0,2,0, + 4,0,0,0,225,192,64,128,64,128,64,128,64,128,64,128, + 64,128,64,128,64,128,33,0,30,0,10,15,30,12,0,0, + 4,0,10,0,17,0,0,0,225,192,64,128,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,14, + 28,12,0,0,18,0,18,0,0,0,225,192,64,128,64,128, + 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, + 11,15,30,12,0,0,0,128,1,0,2,0,0,0,224,224, + 64,64,32,128,17,0,17,0,10,0,4,0,4,0,4,0, + 4,0,14,0,8,11,11,9,0,0,224,64,124,66,65,65, + 66,124,64,64,224,7,11,11,8,0,0,56,68,68,68,72, + 88,68,66,66,82,204,7,12,12,7,1,0,64,32,16,0, + 112,136,136,56,200,136,154,100,7,12,12,7,1,0,8,16, + 32,0,112,136,136,56,200,136,154,100,7,12,12,7,1,0, + 32,80,136,0,112,136,136,56,200,136,154,100,7,11,11,7, + 1,0,104,176,0,112,136,136,56,200,136,154,100,7,11,11, + 7,1,0,72,72,0,112,136,136,56,200,136,154,100,7,12, + 12,7,1,0,32,80,80,32,112,136,136,56,200,136,154,100, + 9,8,16,11,1,0,115,0,140,128,136,128,63,128,200,0, + 136,0,156,128,99,0,6,12,12,7,0,252,56,68,132,128, + 128,128,68,56,16,56,8,112,6,12,12,7,0,0,64,32, + 16,0,56,68,132,252,128,128,68,56,6,12,12,7,0,0, + 4,8,16,0,56,68,132,252,128,128,68,56,6,12,12,7, + 0,0,16,40,68,0,56,68,132,252,128,128,68,56,6,11, + 11,7,0,0,72,72,0,56,68,132,252,128,128,68,56,3, + 12,12,5,0,0,128,64,32,0,64,192,64,64,64,64,64, + 224,3,12,12,5,0,0,32,64,128,0,64,192,64,64,64, + 64,64,224,5,12,12,5,255,0,32,80,136,0,32,96,32, + 32,32,32,32,112,3,11,11,5,0,0,160,160,0,64,192, + 64,64,64,64,64,224,7,11,11,8,0,0,108,48,200,60, + 68,130,130,130,130,68,56,8,11,11,8,255,0,52,88,0, + 92,230,66,66,66,66,66,231,7,12,12,8,0,0,32,16, + 8,0,56,68,130,130,130,130,68,56,7,12,12,8,0,0, + 4,8,16,0,56,68,130,130,130,130,68,56,7,12,12,8, + 0,0,16,40,68,0,56,68,130,130,130,130,68,56,7,11, + 11,8,0,0,52,88,0,56,68,130,130,130,130,68,56,7, + 11,11,8,0,0,72,72,0,56,68,130,130,130,130,68,56, + 9,9,18,9,255,0,8,0,8,0,0,0,0,0,255,128, + 0,0,0,0,8,0,8,0,7,12,12,8,0,254,2,2, + 60,68,138,146,146,162,100,56,64,64,8,12,12,8,255,0, + 32,16,8,0,198,66,66,66,66,66,70,59,8,12,12,8, + 255,0,4,8,16,0,198,66,66,66,66,66,70,59,8,12, + 12,8,255,0,16,40,68,0,198,66,66,66,66,66,70,59, + 8,11,11,8,255,0,36,36,0,198,66,66,66,66,66,70, + 59,8,16,16,8,255,252,2,4,8,0,247,66,66,36,36, + 20,8,8,16,16,160,192,8,15,15,8,255,252,64,192,64, + 92,98,65,65,65,65,98,92,64,64,64,224,8,15,15,8, + 255,252,36,36,0,247,66,98,36,52,20,24,8,16,16,160, + 192}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=15 h=15 x= 2 y= 8 dx=16 dy= 0 ascent=12 len=28 + Font Bounding box w=19 h=26 x=-2 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =11 descent=-4 + X Font ascent =11 descent=-4 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR12r[1784] U8G_SECTION(".progmem.u8g_font_timR12r") = { + 0,19,26,254,249,11,2,36,5,11,32,127,252,12,252,11, + 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, + 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, + 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, + 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, + 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, + 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, + 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, + 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, + 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, + 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, + 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, + 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, + 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, + 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, + 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, + 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, + 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, + 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, + 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, + 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, + 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, + 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, + 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, + 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, + 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, + 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, + 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, + 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, + 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, + 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, + 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, + 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, + 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, + 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, + 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, + 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, + 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, + 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, + 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, + 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, + 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, + 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, + 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, + 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, + 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, + 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, + 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, + 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, + 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, + 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, + 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, + 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, + 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, + 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, + 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, + 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, + 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, + 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, + 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, + 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, + 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, + 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, + 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, + 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, + 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, + 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, + 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, + 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, + 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, + 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, + 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, + 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, + 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, + 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, + 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, + 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, + 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, + 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, + 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, + 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, + 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, + 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, + 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, + 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, + 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, + 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, + 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, + 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, + 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, + 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, + 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, + 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, + 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, + 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, + 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, + 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, + 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, + 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, + 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, + 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, + 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, + 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, + 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, + 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, + 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, + 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, + 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, + 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, + 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, + 3,9,0,3,113,153,142,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=18 h=18 x= 2 y=10 dx=18 dy= 0 ascent=18 len=39 + Font Bounding box w=22 h=29 x=-3 y=-7 + Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =18 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR14[4577] U8G_SECTION(".progmem.u8g_font_timR14") = { + 0,22,29,253,249,13,2,131,6,16,32,255,252,18,252,13, + 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, + 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, + 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, + 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, + 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, + 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, + 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, + 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, + 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, + 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, + 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, + 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, + 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, + 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, + 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, + 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, + 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, + 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, + 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, + 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, + 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, + 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, + 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, + 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, + 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, + 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, + 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, + 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, + 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, + 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, + 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, + 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, + 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, + 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, + 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, + 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, + 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, + 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, + 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, + 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, + 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, + 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, + 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, + 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, + 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, + 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, + 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, + 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, + 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, + 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, + 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, + 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, + 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, + 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, + 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, + 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, + 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, + 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, + 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, + 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, + 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, + 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, + 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, + 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, + 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, + 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, + 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, + 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, + 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, + 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, + 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, + 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, + 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, + 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, + 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, + 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, + 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, + 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, + 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, + 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, + 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, + 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, + 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, + 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, + 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, + 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, + 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, + 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, + 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, + 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, + 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, + 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, + 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, + 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, + 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, + 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, + 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, + 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, + 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, + 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, + 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, + 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, + 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, + 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, + 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, + 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, + 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, + 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, + 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, + 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, + 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, + 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, + 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, + 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, + 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, + 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, + 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, + 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, + 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, + 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, + 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, + 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, + 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, + 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, + 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, + 11,1,3,48,0,121,128,207,0,6,0,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,5, + 0,1,2,13,13,4,1,252,192,192,0,0,128,128,128,192, + 192,192,192,192,192,7,14,14,9,1,253,6,4,60,110,200, + 216,208,208,240,114,124,64,192,128,10,13,26,11,0,0,15, + 0,25,128,25,128,24,0,24,0,24,0,126,0,24,0,24, + 0,16,0,120,64,191,192,231,128,9,7,14,11,1,3,221, + 128,247,128,99,0,65,0,99,0,247,128,221,128,8,13,13, + 9,0,0,247,98,98,118,52,52,126,24,126,24,24,24,126, + 1,13,13,3,1,0,128,128,128,128,128,0,0,0,128,128, + 128,128,128,8,16,16,10,1,253,60,102,102,112,56,124,142, + 199,227,113,62,28,14,102,102,60,5,2,2,5,0,10,216, + 216,13,13,26,15,1,0,15,128,48,96,64,16,71,144,136, + 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, + 128,5,8,8,5,0,5,96,144,16,112,144,232,0,248,8, + 7,7,10,1,1,17,51,102,204,102,51,17,9,5,10,11, + 1,2,255,128,255,128,1,128,1,128,1,128,5,2,2,6, + 0,3,248,248,13,13,26,15,1,0,15,128,48,96,64,16, + 95,16,136,136,136,136,143,8,137,8,136,136,92,208,64,16, + 48,96,15,128,5,2,2,5,0,10,248,248,5,5,5,7, + 1,8,112,136,136,136,112,8,11,11,10,1,0,24,24,24, + 255,255,24,24,24,0,255,255,5,8,8,6,0,5,112,152, + 24,16,32,32,64,248,5,8,8,6,0,5,112,136,24,112, + 24,8,136,112,4,3,3,4,0,10,48,96,128,9,13,26, + 9,255,252,231,0,99,0,99,0,99,0,99,0,99,0,99, + 0,119,0,123,128,64,0,64,0,96,0,96,0,7,17,17, + 8,1,252,62,116,244,244,244,244,244,116,20,20,20,20,20, + 20,20,20,20,2,2,2,4,1,4,192,192,4,5,5,6, + 1,252,32,32,16,176,112,3,8,8,6,1,5,64,192,64, + 64,64,64,64,224,5,8,8,6,0,5,112,216,136,136,216, + 112,0,248,8,7,7,10,1,1,136,204,102,51,102,204,136, + 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, + 68,64,76,192,233,64,27,64,50,64,39,224,96,64,64,64, + 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, + 69,192,78,96,232,96,24,64,48,128,32,128,97,0,67,224, + 13,13,26,13,255,0,112,32,136,96,24,64,112,192,25,128, + 9,16,139,48,114,80,6,208,12,144,9,248,24,16,16,16, + 6,13,13,8,1,252,48,48,0,16,16,48,96,96,192,204, + 140,196,120,13,17,34,14,1,0,24,0,12,0,2,0,0, + 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, + 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, + 0,0,192,1,128,2,0,0,0,2,0,7,0,7,0,5, + 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, + 112,240,248,13,17,34,14,1,0,2,0,7,0,13,128,0, + 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, + 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, + 0,12,128,31,128,19,0,0,0,2,0,7,0,7,0,5, + 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, + 112,240,248,13,16,32,14,1,0,13,128,13,128,0,0,2, + 0,7,0,7,0,5,0,13,128,9,128,25,192,16,192,31, + 192,48,224,32,96,96,112,240,248,13,18,36,14,1,0,6, + 0,9,0,9,0,6,0,0,0,2,0,7,0,7,0,5, + 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, + 112,240,248,15,13,26,17,1,0,15,252,7,140,5,132,5, + 128,13,128,9,136,25,248,31,136,17,128,49,128,33,130,97, + 134,247,254,11,17,34,13,1,252,15,32,48,224,96,96,96, + 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, + 192,15,0,4,0,2,0,22,0,14,0,9,17,34,12,1, + 0,48,0,24,0,4,0,0,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, + 128,255,128,9,17,34,12,1,0,3,0,6,0,8,0,0, + 0,255,128,97,128,96,128,96,0,96,0,97,0,127,0,97, + 0,96,0,96,0,96,128,97,128,255,128,9,17,34,12,1, + 0,8,0,28,0,54,0,0,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, + 128,255,128,9,16,32,12,1,0,54,0,54,0,0,0,255, + 128,97,128,96,128,96,0,96,0,97,0,127,0,97,0,96, + 0,96,0,96,128,97,128,255,128,6,17,17,6,255,0,192, + 96,16,0,60,24,24,24,24,24,24,24,24,24,24,24,60, + 6,17,17,6,1,0,12,24,32,0,240,96,96,96,96,96, + 96,96,96,96,96,96,240,5,17,17,6,1,0,32,112,216, + 0,240,96,96,96,96,96,96,96,96,96,96,96,240,5,16, + 16,6,1,0,216,216,0,240,96,96,96,96,96,96,96,96, + 96,96,96,240,12,13,26,13,0,0,127,128,49,192,48,96, + 48,96,48,48,48,48,252,48,48,48,48,48,48,96,48,96, + 49,192,127,128,12,17,34,14,1,0,12,128,31,128,19,0, + 0,0,224,112,96,32,112,32,120,32,92,32,76,32,78,32, + 71,32,67,160,65,224,64,224,64,96,224,32,12,17,34,14, + 1,0,48,0,24,0,4,0,0,0,15,0,48,192,96,96, + 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, + 48,192,15,0,12,17,34,14,1,0,0,192,1,128,2,0, + 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, + 192,48,192,48,96,96,96,96,48,192,15,0,12,17,34,14, + 1,0,4,0,14,0,27,0,0,0,15,0,48,192,96,96, + 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, + 48,192,15,0,12,17,34,14,1,0,12,128,31,128,19,0, + 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, + 192,48,192,48,96,96,96,96,48,192,15,0,12,16,32,14, + 1,0,27,0,27,0,0,0,15,0,48,192,96,96,96,96, + 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, + 15,0,8,7,7,10,1,1,195,102,60,24,60,102,195,12, + 15,30,14,1,255,0,48,15,96,48,192,96,224,97,160,195, + 48,195,48,198,48,204,48,204,48,88,96,112,96,48,192,111, + 0,192,0,11,17,34,14,2,0,48,0,24,0,4,0,0, + 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, + 64,96,64,96,64,112,192,57,128,31,0,11,17,34,14,2, + 0,0,192,1,128,2,0,0,0,240,224,96,64,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,96,64,112,192,57, + 128,31,0,11,17,34,14,2,0,4,0,14,0,27,0,0, + 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, + 64,96,64,96,64,112,192,57,128,31,0,11,16,32,14,2, + 0,27,0,27,0,0,0,240,224,96,64,96,64,96,64,96, + 64,96,64,96,64,96,64,96,64,96,64,112,192,57,128,31, + 0,12,17,34,14,1,0,0,192,1,128,2,0,0,0,240, + 240,112,96,48,192,24,128,25,0,15,0,6,0,6,0,6, + 0,6,0,6,0,6,0,15,0,9,13,26,10,1,0,240, + 0,96,0,96,0,127,0,99,128,97,128,97,128,97,128,99, + 0,126,0,96,0,96,0,240,0,8,13,13,9,0,0,28, + 50,99,99,102,110,124,102,99,99,107,111,238,7,13,13,9, + 1,0,192,96,16,0,120,200,204,28,108,204,204,252,102,7, + 13,13,9,1,0,12,24,32,0,120,200,204,28,108,204,204, + 252,102,7,13,13,9,1,0,16,56,108,0,120,200,204,28, + 108,204,204,252,102,7,13,13,9,1,0,100,252,152,0,120, + 200,204,28,108,204,204,252,102,7,12,12,9,1,0,108,108, + 0,120,200,204,28,108,204,204,252,102,7,14,14,9,1,0, + 48,72,72,48,0,120,200,204,28,108,204,204,252,102,11,9, + 18,12,0,0,123,192,206,96,204,32,31,224,108,0,204,0, + 204,0,254,96,99,192,7,13,13,8,0,252,60,102,192,192, + 192,192,192,102,60,16,8,88,56,7,13,13,8,0,0,192, + 96,16,0,60,102,194,254,192,192,192,102,60,7,13,13,8, + 0,0,6,12,16,0,60,102,194,254,192,192,192,102,60,7, + 13,13,8,0,0,16,56,108,0,60,102,194,254,192,192,192, + 102,60,7,12,12,8,0,0,108,108,0,60,102,194,254,192, + 192,192,102,60,6,13,13,5,254,0,192,96,16,0,24,56, + 24,24,24,24,24,24,60,6,13,13,5,0,0,12,24,32, + 0,96,224,96,96,96,96,96,96,240,5,13,13,5,0,0, + 32,112,216,0,96,224,96,96,96,96,96,96,240,5,12,12, + 5,0,0,216,216,0,96,224,96,96,96,96,96,96,240,8, + 13,13,9,0,0,96,54,56,76,62,102,195,195,195,195,195, + 102,60,9,13,26,10,0,0,50,0,126,0,76,0,0,0, + 102,0,239,0,115,0,99,0,99,0,99,0,99,0,99,0, + 243,128,8,13,13,9,0,0,48,24,4,0,60,102,195,195, + 195,195,195,102,60,8,13,13,9,0,0,6,12,16,0,60, + 102,195,195,195,195,195,102,60,8,13,13,9,0,0,16,56, + 108,0,60,102,195,195,195,195,195,102,60,8,13,13,9,0, + 0,50,126,76,0,60,102,195,195,195,195,195,102,60,8,12, + 12,9,0,0,108,108,0,60,102,195,195,195,195,195,102,60, + 8,8,8,10,1,1,24,24,0,255,255,0,24,24,8,11, + 11,9,0,255,1,63,102,207,203,219,211,243,102,124,192,9, + 13,26,10,0,0,96,0,48,0,8,0,0,0,231,0,99, + 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, + 13,26,10,0,0,6,0,12,0,16,0,0,0,231,0,99, + 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, + 13,26,10,0,0,8,0,28,0,54,0,0,0,231,0,99, + 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, + 12,24,10,0,0,54,0,54,0,0,0,231,0,99,0,99, + 0,99,0,99,0,99,0,99,0,119,0,59,128,8,17,17, + 8,255,252,3,6,8,0,243,99,114,50,54,28,28,12,8, + 24,16,240,224,8,17,17,9,0,252,96,224,96,96,110,119, + 99,99,99,99,99,118,124,96,96,96,240,8,16,16,9,0, + 252,54,54,0,243,99,114,50,54,28,28,12,8,24,16,240, + 224}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w=18 h=17 x= 2 y=10 dx=18 dy= 0 ascent=14 len=39 + Font Bounding box w=22 h=29 x=-3 y=-7 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =14 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR14r[2156] U8G_SECTION(".progmem.u8g_font_timR14r") = { + 0,22,29,253,249,13,2,131,6,16,32,127,252,14,252,13, + 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, + 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, + 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, + 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, + 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, + 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, + 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, + 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, + 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, + 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, + 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, + 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, + 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, + 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, + 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, + 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, + 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, + 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, + 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, + 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, + 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, + 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, + 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, + 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, + 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, + 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, + 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, + 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, + 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, + 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, + 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, + 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, + 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, + 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, + 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, + 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, + 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, + 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, + 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, + 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, + 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, + 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, + 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, + 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, + 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, + 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, + 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, + 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, + 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, + 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, + 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, + 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, + 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, + 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, + 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, + 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, + 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, + 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, + 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, + 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, + 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, + 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, + 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, + 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, + 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, + 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, + 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, + 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, + 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, + 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, + 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, + 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, + 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, + 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, + 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, + 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, + 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, + 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, + 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, + 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, + 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, + 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, + 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, + 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, + 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, + 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, + 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, + 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, + 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, + 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, + 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, + 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, + 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, + 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, + 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, + 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, + 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, + 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, + 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, + 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, + 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, + 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, + 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, + 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, + 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, + 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, + 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, + 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, + 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, + 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, + 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, + 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, + 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, + 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, + 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, + 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, + 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, + 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, + 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, + 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, + 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, + 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, + 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, + 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, + 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, + 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, + 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, + 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, + 11,1,3,48,0,121,128,207,0,6,0,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=23 h=23 x= 3 y=14 dx=23 dy= 0 ascent=23 len=69 + Font Bounding box w=29 h=37 x=-4 y=-9 + Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =17 descent=-6 + Max Font ascent =23 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR18[6850] U8G_SECTION(".progmem.u8g_font_timR18") = { + 0,29,37,252,247,17,4,9,8,241,32,255,250,23,250,17, + 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, + 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, + 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, + 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, + 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, + 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, + 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, + 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, + 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, + 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, + 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, + 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, + 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, + 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, + 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, + 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, + 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, + 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, + 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, + 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, + 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, + 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, + 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, + 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, + 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, + 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, + 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, + 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, + 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, + 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, + 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, + 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, + 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, + 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, + 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, + 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, + 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, + 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, + 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, + 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, + 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, + 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, + 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, + 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, + 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, + 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, + 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, + 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, + 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, + 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, + 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, + 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, + 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, + 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, + 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, + 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, + 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, + 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, + 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, + 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, + 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, + 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, + 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, + 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, + 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, + 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, + 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, + 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, + 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, + 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, + 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, + 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, + 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, + 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, + 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, + 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, + 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, + 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, + 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, + 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, + 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, + 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, + 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, + 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, + 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, + 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, + 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, + 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, + 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, + 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, + 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, + 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, + 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, + 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, + 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, + 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, + 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, + 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, + 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, + 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, + 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, + 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, + 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, + 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, + 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, + 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, + 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, + 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, + 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, + 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, + 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, + 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, + 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, + 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, + 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, + 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, + 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, + 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, + 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, + 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, + 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, + 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, + 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, + 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, + 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, + 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, + 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, + 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, + 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, + 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, + 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, + 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, + 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, + 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, + 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, + 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, + 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, + 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, + 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, + 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, + 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, + 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, + 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, + 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, + 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, + 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, + 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, + 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, + 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, + 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, + 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, + 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, + 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, + 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, + 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, + 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, + 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, + 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, + 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, + 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, + 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, + 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, + 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, + 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, + 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, + 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, + 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, + 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, + 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, + 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, + 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, + 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, + 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, + 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, + 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, + 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, + 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, + 32,124,96,199,192,131,128,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,0,0,0,6,0,1,3,17, + 17,8,3,251,96,96,0,0,0,64,64,64,64,224,224,224, + 224,224,224,224,64,9,16,32,12,1,254,2,0,2,0,15, + 0,51,128,101,128,196,0,196,0,200,0,200,0,200,0,208, + 0,112,128,113,0,62,0,64,0,64,0,10,17,34,12,1, + 0,15,0,25,128,49,128,48,0,48,0,48,0,48,0,252, + 0,48,0,48,0,48,0,48,0,48,0,48,0,120,64,190, + 192,231,128,11,12,24,13,1,3,192,96,238,224,127,192,49, + 128,96,192,96,192,96,192,96,192,49,128,127,192,238,224,192, + 96,14,17,34,14,0,0,248,124,112,48,48,32,24,96,24, + 64,12,192,12,128,7,128,3,0,31,224,3,0,31,224,3, + 0,3,0,3,0,3,0,15,192,2,17,17,6,2,0,192, + 192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192, + 8,20,20,12,2,253,28,38,70,96,112,56,60,78,135,131, + 195,226,116,56,28,14,6,98,100,56,6,2,2,8,1,14, + 204,204,17,17,51,19,1,0,7,240,0,28,28,0,48,6, + 0,97,227,0,71,49,0,196,25,128,140,0,128,136,0,128, + 136,0,128,136,0,128,140,0,128,196,25,128,71,113,0,97, + 195,0,48,6,0,28,28,0,7,240,0,7,9,9,8,0, + 8,120,204,12,124,204,204,118,0,254,9,10,20,13,1,1, + 8,128,25,128,51,0,102,0,204,0,204,0,102,0,51,0, + 25,128,8,128,11,7,14,15,2,1,255,224,255,224,0,96, + 0,96,0,96,0,96,0,96,6,2,2,8,0,5,252,252, + 17,17,51,19,1,0,7,240,0,28,28,0,48,6,0,103, + 227,0,66,49,0,194,17,128,130,16,128,130,48,128,131,224, + 128,130,64,128,130,32,128,194,49,128,71,25,0,96,3,0, + 48,6,0,28,28,0,7,240,0,7,2,2,8,1,14,254, + 254,7,7,7,9,1,10,56,68,130,130,130,68,56,10,11, + 22,14,2,0,12,0,12,0,12,0,255,192,255,192,12,0, + 12,0,12,0,0,0,255,192,255,192,6,10,10,7,0,7, + 56,76,140,12,8,16,48,32,68,252,6,10,10,7,0,7, + 56,76,140,8,48,8,12,140,136,112,5,4,4,8,2,13, + 24,56,112,192,11,17,34,13,1,251,225,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,113,192,126,192, + 92,224,64,0,192,0,192,0,224,0,64,0,9,21,42,11, + 1,252,31,128,57,0,121,0,121,0,249,0,249,0,249,0, + 121,0,121,0,57,0,25,0,9,0,9,0,9,0,9,0, + 9,0,9,0,9,0,9,0,9,0,9,0,2,3,3,6, + 2,5,192,192,192,6,6,6,8,1,250,16,48,60,12,204, + 120,5,10,10,7,1,7,32,96,160,32,32,32,32,32,32, + 248,7,9,9,8,0,8,56,68,198,198,198,68,56,0,254, + 9,10,20,12,2,1,136,0,204,0,102,0,51,0,25,128, + 25,128,51,0,102,0,204,0,136,0,16,17,34,18,1,0, + 32,24,96,24,160,48,32,96,32,96,32,192,32,192,33,132, + 35,12,251,28,6,20,6,36,12,100,24,68,24,255,48,4, + 48,4,15,17,34,18,1,0,32,24,96,24,160,48,32,96, + 32,96,32,192,32,192,33,156,35,38,251,70,6,6,6,4, + 12,8,24,24,24,16,48,34,48,126,17,17,51,18,0,0, + 56,12,0,76,12,0,140,24,0,8,48,0,48,48,0,8, + 96,0,12,96,0,140,194,0,137,134,0,113,142,0,3,10, + 0,3,18,0,6,50,0,12,34,0,12,127,128,24,2,0, + 24,2,0,8,17,17,11,1,251,12,12,0,0,8,8,24, + 24,56,48,112,224,195,195,193,99,62,17,22,66,17,0,0, + 12,0,0,14,0,0,7,0,0,1,128,0,0,0,0,0, + 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, + 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, + 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, + 31,128,17,22,66,17,0,0,0,24,0,0,56,0,0,112, + 0,0,192,0,0,0,0,0,128,0,1,192,0,1,192,0, + 1,96,0,2,96,0,2,48,0,6,48,0,4,48,0,4, + 24,0,12,24,0,15,248,0,8,12,0,24,12,0,16,12, + 0,16,6,0,48,6,0,252,31,128,17,22,66,17,0,0, + 1,128,0,3,192,0,6,96,0,4,32,0,0,0,0,0, + 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, + 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, + 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, + 31,128,17,21,63,17,0,0,3,32,0,7,224,0,4,192, + 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, + 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, + 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, + 0,48,6,0,252,31,128,17,21,63,17,0,0,6,96,0, + 6,96,0,0,0,0,0,0,0,0,128,0,1,192,0,1, + 192,0,1,96,0,2,96,0,2,48,0,6,48,0,4,48, + 0,4,24,0,12,24,0,15,248,0,8,12,0,24,12,0, + 16,12,0,16,6,0,48,6,0,252,31,128,17,23,69,17, + 0,0,1,192,0,2,32,0,2,32,0,2,32,0,1,192, + 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, + 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, + 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, + 0,48,6,0,252,31,128,21,17,51,22,0,0,3,255,240, + 0,240,48,1,176,16,1,48,16,3,48,0,2,48,0,6, + 48,64,4,48,64,4,63,192,12,48,64,15,240,64,8,48, + 0,24,48,0,16,48,8,48,48,8,32,48,24,248,255,248, + 14,23,46,16,1,250,7,228,28,60,56,12,96,4,96,4, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, + 96,4,56,8,30,56,7,224,1,0,3,0,3,192,0,192, + 12,192,7,128,13,22,44,15,1,0,24,0,28,0,14,0, + 3,0,0,0,255,240,48,48,48,16,48,16,48,0,48,0, + 48,64,48,64,63,192,48,64,48,64,48,0,48,0,48,8, + 48,8,48,24,255,248,13,22,44,15,1,0,0,96,0,224, + 1,192,3,0,0,0,255,240,48,48,48,16,48,16,48,0, + 48,0,48,64,48,64,63,192,48,64,48,64,48,0,48,0, + 48,8,48,8,48,24,255,248,13,22,44,15,1,0,6,0, + 15,0,25,128,16,128,0,0,255,240,48,48,48,16,48,16, + 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, + 48,0,48,8,48,8,48,24,255,248,13,21,42,15,1,0, + 25,128,25,128,0,0,0,0,255,240,48,48,48,16,48,16, + 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, + 48,0,48,8,48,8,48,24,255,248,7,22,22,8,0,0, + 192,224,112,24,0,126,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,126,7,22,22,8,1,0,6,14,28,48, + 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,252,6,22,22,8,1,0,48,120,204,132,0,252,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,252,6,21, + 21,8,1,0,204,204,0,0,252,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,252,16,17,34,17,0,0,127, + 224,24,56,24,28,24,6,24,6,24,3,24,3,255,3,255, + 3,24,3,24,3,24,3,24,6,24,6,24,28,24,56,127, + 224,16,21,42,18,1,0,3,32,7,224,4,192,0,0,240, + 31,48,4,56,4,56,4,44,4,38,4,38,4,35,4,33, + 132,33,132,32,196,32,100,32,100,32,52,32,28,32,28,248, + 12,16,22,44,18,1,0,12,0,14,0,7,0,1,128,0, + 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, + 56,7,224,16,22,44,18,1,0,0,48,0,112,0,224,1, + 128,0,0,7,224,28,56,56,28,96,6,96,6,192,3,192, + 3,192,3,192,3,192,3,192,3,192,3,96,6,96,6,56, + 28,28,56,7,224,16,22,44,18,1,0,1,128,3,192,6, + 96,4,32,0,0,7,224,28,56,56,28,96,6,96,6,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, + 6,56,28,28,56,7,224,16,21,42,18,1,0,3,32,7, + 224,4,192,0,0,7,224,28,56,56,28,96,6,96,6,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, + 6,56,28,28,56,7,224,16,21,42,18,1,0,6,96,6, + 96,0,0,0,0,7,224,28,56,56,28,96,6,96,6,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, + 6,56,28,28,56,7,224,10,9,18,12,1,1,192,192,97, + 128,51,0,30,0,12,0,30,0,51,0,97,128,192,192,16, + 19,38,18,1,255,0,4,7,228,28,56,56,28,96,38,96, + 70,192,67,192,131,192,131,193,3,193,3,194,3,194,3,100, + 6,104,6,56,28,28,56,39,224,32,0,16,22,44,18,1, + 0,6,0,7,0,3,128,0,192,0,0,252,31,48,4,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,8,24,8,28,48,7,224,16,22,44, + 18,1,0,0,48,0,112,0,224,1,128,0,0,252,31,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,4,48,8,24,8,28,48,7,224,16, + 22,44,18,1,0,1,128,3,192,6,96,4,32,0,0,252, + 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, + 224,16,21,42,18,1,0,6,96,6,96,0,0,0,0,252, + 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, + 224,16,22,44,18,1,0,0,48,0,112,0,224,1,128,0, + 0,252,63,48,12,56,8,24,24,28,16,12,48,6,32,6, + 96,3,64,3,192,1,128,1,128,1,128,1,128,1,128,1, + 128,7,224,13,17,34,15,1,0,252,0,48,0,48,0,48, + 0,63,192,48,112,48,48,48,24,48,24,48,24,48,48,48, + 112,63,192,48,0,48,0,48,0,252,0,10,17,34,12,1, + 0,30,0,51,0,97,128,97,128,97,128,97,128,99,0,108, + 0,103,0,99,128,97,128,97,192,96,192,96,192,108,192,108, + 128,231,0,9,17,34,11,1,0,96,0,112,0,56,0,12, + 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, + 0,195,0,195,0,199,0,251,0,113,128,9,17,34,11,1, + 0,3,0,7,0,14,0,24,0,0,0,62,0,103,0,99, + 0,3,0,15,0,59,0,99,0,195,0,195,0,199,0,251, + 0,113,128,9,17,34,11,1,0,12,0,30,0,51,0,33, + 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, + 0,195,0,195,0,199,0,251,0,113,128,9,16,32,11,1, + 0,50,0,126,0,76,0,0,0,62,0,103,0,99,0,3, + 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, + 128,9,16,32,11,1,0,102,0,102,0,0,0,0,0,62, + 0,103,0,99,0,3,0,15,0,59,0,99,0,195,0,195, + 0,199,0,251,0,113,128,9,18,36,11,1,0,28,0,34, + 0,34,0,34,0,28,0,0,0,62,0,103,0,99,0,3, + 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, + 128,14,12,24,16,1,0,60,240,103,152,99,12,3,12,15, + 252,59,0,99,0,195,0,195,0,199,132,251,248,112,240,9, + 18,36,11,1,250,31,0,99,128,65,128,192,0,192,0,192, + 0,192,0,192,0,224,0,112,128,127,0,30,0,8,0,24, + 0,30,0,6,0,102,0,60,0,9,17,34,11,1,0,96, + 0,112,0,56,0,12,0,0,0,30,0,99,0,65,128,193, + 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, + 0,9,17,34,11,1,0,3,0,7,0,14,0,24,0,0, + 0,30,0,99,0,65,128,193,128,255,128,192,0,192,0,192, + 0,224,0,112,128,127,0,30,0,9,17,34,11,1,0,12, + 0,30,0,51,0,33,0,0,0,30,0,99,0,65,128,193, + 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, + 0,9,16,32,11,1,0,51,0,51,0,0,0,0,0,30, + 0,99,0,65,128,193,128,255,128,192,0,192,0,192,0,224, + 0,112,128,127,0,30,0,6,17,17,6,255,0,192,224,112, + 24,0,56,24,24,24,24,24,24,24,24,24,24,60,5,17, + 17,6,1,0,24,56,112,192,0,96,224,96,96,96,96,96, + 96,96,96,96,240,6,17,17,6,0,0,48,120,204,132,0, + 48,112,48,48,48,48,48,48,48,48,48,120,6,16,16,6, + 0,0,204,204,0,0,112,48,48,48,48,48,48,48,48,48, + 48,120,10,17,34,12,1,0,192,0,113,128,30,0,60,0, + 198,0,31,0,115,128,97,128,192,192,192,192,192,192,192,192, + 192,192,192,192,97,128,115,128,30,0,11,16,32,13,1,0, + 25,0,63,0,38,0,0,0,103,0,239,128,113,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,241,224, + 10,17,34,12,1,0,96,0,112,0,56,0,12,0,0,0, + 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, + 192,192,97,128,115,128,30,0,10,17,34,12,1,0,3,0, + 7,0,14,0,24,0,0,0,30,0,115,128,97,128,192,192, + 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, + 10,17,34,12,1,0,12,0,30,0,51,0,33,0,0,0, + 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, + 192,192,97,128,115,128,30,0,10,16,32,12,1,0,25,0, + 63,0,38,0,0,0,30,0,115,128,97,128,192,192,192,192, + 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,16, + 32,12,1,0,51,0,51,0,0,0,0,0,30,0,115,128, + 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, + 115,128,30,0,10,10,20,12,1,1,12,0,12,0,0,0, + 0,0,255,192,255,192,0,0,0,0,12,0,12,0,10,14, + 28,12,1,255,0,192,30,192,115,128,99,128,198,192,196,192, + 204,192,200,192,216,192,208,192,113,128,115,128,222,0,192,0, + 11,17,34,13,1,0,96,0,112,0,56,0,12,0,0,0, + 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,113,192,62,192,28,224,11,17,34,13,1,0,1,128, + 3,128,7,0,12,0,0,0,225,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,113,192,62,192,28,224, + 11,17,34,13,1,0,12,0,30,0,51,0,33,0,0,0, + 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,113,192,62,192,28,224,11,16,32,13,1,0,51,0, + 51,0,0,0,0,0,225,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,113,192,62,192,28,224,11,22, + 44,11,0,251,1,128,3,128,7,0,12,0,0,0,241,224, + 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, + 14,0,14,0,4,0,12,0,8,0,24,0,240,0,224,0, + 10,22,44,12,1,251,96,0,224,0,96,0,96,0,96,0, + 110,0,115,128,97,128,96,192,96,192,96,192,96,192,96,192, + 96,192,97,128,115,128,110,0,96,0,96,0,96,0,96,0, + 240,0,11,21,42,11,0,251,51,0,51,0,0,0,0,0, + 241,224,96,192,96,128,48,128,48,128,49,0,25,0,25,0, + 26,0,14,0,14,0,4,0,12,0,8,0,24,0,240,0, + 224,0}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 17, '1' Height: 17 + Calculated Max Values w=23 h=23 x= 3 y=13 dx=23 dy= 0 ascent=19 len=60 + Font Bounding box w=29 h=37 x=-4 y=-9 + Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 + Pure Font ascent =17 descent=-6 + X Font ascent =17 descent=-6 + Max Font ascent =19 descent=-6 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR18r[3208] U8G_SECTION(".progmem.u8g_font_timR18r") = { + 0,29,37,252,247,17,4,9,8,241,32,127,250,19,250,17, + 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, + 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, + 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, + 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, + 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, + 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, + 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, + 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, + 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, + 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, + 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, + 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, + 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, + 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, + 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, + 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, + 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, + 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, + 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, + 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, + 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, + 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, + 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, + 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, + 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, + 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, + 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, + 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, + 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, + 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, + 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, + 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, + 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, + 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, + 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, + 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, + 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, + 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, + 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, + 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, + 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, + 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, + 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, + 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, + 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, + 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, + 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, + 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, + 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, + 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, + 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, + 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, + 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, + 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, + 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, + 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, + 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, + 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, + 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, + 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, + 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, + 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, + 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, + 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, + 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, + 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, + 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, + 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, + 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, + 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, + 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, + 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, + 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, + 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, + 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, + 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, + 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, + 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, + 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, + 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, + 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, + 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, + 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, + 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, + 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, + 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, + 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, + 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, + 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, + 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, + 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, + 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, + 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, + 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, + 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, + 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, + 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, + 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, + 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, + 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, + 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, + 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, + 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, + 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, + 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, + 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, + 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, + 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, + 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, + 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, + 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, + 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, + 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, + 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, + 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, + 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, + 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, + 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, + 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, + 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, + 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, + 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, + 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, + 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, + 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, + 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, + 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, + 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, + 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, + 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, + 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, + 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, + 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, + 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, + 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, + 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, + 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, + 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, + 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, + 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, + 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, + 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, + 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, + 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, + 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, + 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, + 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, + 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, + 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, + 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, + 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, + 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, + 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, + 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, + 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, + 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, + 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, + 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, + 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, + 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, + 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, + 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, + 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, + 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, + 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, + 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, + 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, + 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, + 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, + 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, + 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, + 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, + 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, + 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, + 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, + 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, + 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, + 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, + 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, + 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, + 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, + 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, + 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, + 32,124,96,199,192,131,128,255}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=31 h=30 x= 4 y=18 dx=32 dy= 0 ascent=30 len=112 + Font Bounding box w=38 h=48 x=-5 y=-11 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =30 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR24[10419] U8G_SECTION(".progmem.u8g_font_timR24") = { + 0,38,48,251,245,23,5,140,13,213,32,255,249,30,249,23, + 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, + 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, + 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, + 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, + 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, + 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, + 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, + 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, + 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, + 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, + 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, + 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, + 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, + 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, + 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, + 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, + 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, + 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, + 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, + 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, + 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, + 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, + 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, + 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, + 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, + 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, + 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, + 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, + 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, + 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, + 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, + 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, + 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, + 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, + 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, + 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, + 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, + 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, + 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, + 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, + 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, + 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, + 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, + 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, + 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, + 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, + 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, + 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, + 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, + 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, + 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, + 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, + 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, + 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, + 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, + 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, + 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, + 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, + 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, + 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, + 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, + 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, + 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, + 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, + 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, + 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, + 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, + 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, + 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, + 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, + 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, + 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, + 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, + 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, + 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, + 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, + 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, + 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, + 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, + 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, + 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, + 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, + 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, + 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, + 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, + 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, + 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, + 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, + 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, + 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, + 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, + 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, + 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, + 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, + 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, + 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, + 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, + 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, + 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, + 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, + 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, + 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, + 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, + 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, + 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, + 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, + 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, + 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, + 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, + 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, + 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, + 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, + 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, + 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, + 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, + 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, + 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, + 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, + 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, + 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, + 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, + 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, + 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, + 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, + 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, + 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, + 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, + 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, + 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, + 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, + 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, + 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, + 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, + 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, + 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, + 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, + 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, + 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, + 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, + 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, + 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, + 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, + 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, + 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, + 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, + 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, + 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, + 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, + 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, + 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, + 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, + 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, + 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, + 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, + 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, + 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, + 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, + 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, + 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, + 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, + 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, + 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, + 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, + 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, + 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, + 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, + 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, + 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, + 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, + 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, + 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, + 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, + 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, + 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, + 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, + 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, + 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, + 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, + 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, + 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, + 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, + 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, + 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, + 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, + 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, + 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, + 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, + 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, + 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, + 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, + 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, + 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, + 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, + 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, + 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, + 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, + 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, + 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, + 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, + 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, + 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, + 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, + 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, + 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, + 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, + 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, + 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, + 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, + 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, + 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, + 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, + 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, + 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, + 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, + 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, + 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, + 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, + 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, + 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, + 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, + 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, + 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, + 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, + 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, + 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, + 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, + 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, + 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, + 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, + 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, + 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, + 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, + 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, + 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, + 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, + 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, + 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, + 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, + 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, + 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, + 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, + 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, + 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, + 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, + 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, + 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, + 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, + 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, + 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, + 18,1,7,62,3,127,135,225,254,192,124,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, + 0,1,4,22,22,11,3,249,96,240,240,96,0,0,96,96, + 96,96,96,96,96,96,96,96,96,240,240,240,240,96,12,23, + 46,17,2,252,0,64,0,64,0,128,0,128,15,128,56,224, + 113,112,97,112,225,48,195,0,194,0,194,0,230,0,228,0, + 116,16,124,48,63,224,31,192,31,0,16,0,48,0,32,0, + 32,0,15,23,46,17,1,0,1,240,3,152,6,28,6,28, + 14,24,14,0,14,0,14,0,14,0,14,0,255,224,255,224, + 15,0,7,0,7,0,7,0,7,0,6,0,6,2,126,6, + 199,252,207,248,120,240,16,17,34,17,0,3,199,227,255,255, + 62,124,120,30,112,14,224,7,224,7,192,3,192,3,192,3, + 224,7,224,7,112,14,120,30,62,124,255,255,199,227,17,23, + 69,17,0,0,254,31,128,120,7,0,56,6,0,60,4,0, + 28,12,0,30,8,0,14,24,0,15,16,0,7,48,0,7, + 160,0,3,224,0,3,192,0,63,254,0,1,192,0,1,192, + 0,1,192,0,63,254,0,1,192,0,1,192,0,1,192,0, + 1,192,0,1,192,0,7,240,0,2,23,23,7,2,0,192, + 192,192,192,192,192,192,192,192,0,0,0,0,0,192,192,192, + 192,192,192,192,192,192,12,28,56,17,2,251,31,128,49,192, + 97,192,97,192,113,128,56,0,60,0,30,0,15,0,63,128, + 99,192,193,224,192,224,192,112,224,48,112,48,120,48,60,96, + 31,192,15,0,7,128,3,192,1,192,24,224,56,96,56,96, + 56,192,31,128,9,3,6,11,1,18,227,128,227,128,227,128, + 22,23,69,25,1,0,0,252,0,3,255,0,14,1,192,24, + 0,96,48,0,48,96,0,24,96,127,24,193,199,12,195,131, + 12,195,1,12,199,0,12,199,0,12,199,0,12,199,0,12, + 199,128,12,67,129,24,97,230,24,96,124,48,48,0,48,24, + 0,96,14,1,192,7,255,0,1,252,0,9,13,26,9,0, + 10,60,0,78,0,198,0,198,0,30,0,102,0,198,0,198, + 0,239,128,123,0,0,0,0,0,255,0,13,13,26,17,1, + 1,2,8,6,24,12,48,24,96,56,224,113,192,227,128,113, + 192,56,224,24,96,12,48,6,24,2,8,16,9,18,18,1, + 4,255,255,255,255,0,3,0,3,0,3,0,3,0,3,0, + 3,0,3,8,2,2,11,1,7,255,255,22,23,69,25,1, + 0,0,254,0,3,255,0,14,1,192,24,0,96,48,0,48, + 35,252,24,96,199,24,192,195,12,192,195,12,192,195,12,192, + 198,12,192,248,12,192,220,12,192,204,12,192,206,12,64,198, + 8,96,199,24,35,227,208,48,0,48,24,0,96,14,1,192, + 3,255,0,0,252,0,10,2,4,11,0,18,255,192,255,192, + 10,10,20,13,1,13,30,0,63,0,97,128,192,192,192,192, + 192,192,192,192,97,128,63,0,30,0,16,20,40,19,1,0, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, + 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, + 1,128,0,0,255,255,255,255,9,14,28,10,0,9,60,0, + 78,0,135,0,3,0,3,0,7,0,6,0,12,0,24,0, + 16,0,32,0,64,128,255,0,254,0,9,14,28,10,0,9, + 62,0,71,0,131,0,3,0,3,0,6,0,60,0,7,0, + 3,128,1,128,1,128,193,128,227,0,126,0,7,6,6,11, + 3,17,6,14,28,48,96,192,16,22,44,17,0,249,248,124, + 56,28,56,28,56,28,56,28,56,28,56,28,56,28,56,28, + 56,28,56,28,56,60,60,124,63,223,47,152,32,0,112,0, + 112,0,112,0,112,0,112,0,32,0,13,29,58,15,1,250, + 7,248,30,32,62,32,126,32,126,32,254,32,254,32,254,32, + 254,32,126,32,126,32,62,32,30,32,14,32,2,32,2,32, + 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, + 2,32,2,32,2,32,2,32,2,32,4,4,4,8,2,7, + 96,240,240,96,6,7,7,11,2,249,32,96,120,28,12,28, + 248,6,14,14,10,2,9,48,240,48,48,48,48,48,48,48, + 48,48,48,48,252,9,13,26,10,0,10,62,0,99,0,195, + 128,193,128,193,128,193,128,193,128,225,128,99,0,62,0,0, + 0,0,0,255,128,13,13,26,16,2,1,130,0,195,0,97, + 128,48,192,56,224,28,112,14,56,28,112,56,224,48,192,97, + 128,195,0,130,0,22,23,69,25,2,0,48,0,96,240,0, + 96,48,0,192,48,1,192,48,1,128,48,3,0,48,3,0, + 48,6,0,48,14,0,48,12,16,48,24,48,48,24,112,48, + 48,112,252,96,240,0,97,176,0,193,48,1,194,48,1,134, + 48,3,12,48,3,31,252,6,0,48,12,0,48,12,0,48, + 23,23,69,25,1,0,48,0,192,240,0,192,48,1,128,48, + 3,128,48,3,0,48,6,0,48,6,0,48,12,0,48,28, + 0,48,24,240,48,49,56,48,50,28,48,96,12,252,224,12, + 0,192,28,1,128,24,3,128,48,3,0,96,6,0,64,6, + 0,128,12,1,2,24,3,252,24,3,248,24,23,69,25,0, + 0,62,0,24,71,0,24,131,0,48,3,0,112,3,0,96, + 6,0,192,60,0,192,7,1,128,3,131,128,1,131,4,1, + 134,12,193,134,28,227,12,28,126,24,60,0,24,108,0,48, + 76,0,112,140,0,97,140,0,195,12,0,199,255,1,128,12, + 3,0,12,3,0,12,11,22,44,14,1,249,6,0,15,0, + 15,0,6,0,0,0,2,0,2,0,6,0,4,0,12,0, + 24,0,56,0,48,0,112,0,112,0,224,192,224,224,224,224, + 112,96,112,96,57,192,31,0,22,30,90,24,1,0,6,0, + 0,7,0,0,3,128,0,0,192,0,0,96,0,0,48,0, + 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, + 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, + 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, + 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, + 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,1, + 128,0,3,128,0,7,0,0,12,0,0,24,0,0,48,0, + 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, + 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, + 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, + 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, + 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,48, + 0,0,120,0,0,252,0,1,206,0,3,3,0,2,1,0, + 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, + 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, + 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, + 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, + 0,240,112,0,240,252,3,252,22,28,84,24,1,0,0,224, + 128,1,249,128,3,63,0,2,14,0,0,0,0,0,48,0, + 0,48,0,0,112,0,0,120,0,0,120,0,0,252,0,0, + 220,0,0,156,0,1,142,0,1,14,0,3,15,0,3,7, + 0,2,7,0,6,7,128,6,3,128,15,255,192,12,3,192, + 24,1,192,24,1,224,48,1,224,48,0,240,112,0,240,252, + 3,252,22,28,84,24,1,0,1,199,0,1,199,0,1,199, + 0,0,0,0,0,0,0,0,48,0,0,48,0,0,112,0, + 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, + 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, + 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, + 48,1,224,48,0,240,112,0,240,252,3,252,22,30,90,24, + 1,0,0,112,0,0,248,0,1,140,0,1,4,0,1,140, + 0,0,248,0,0,112,0,0,0,0,0,48,0,0,48,0, + 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, + 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, + 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, + 48,1,224,48,0,240,112,0,240,252,3,252,28,23,92,30, + 1,0,0,255,255,224,0,31,129,224,0,31,0,96,0,55, + 0,32,0,55,0,32,0,103,0,0,0,103,0,0,0,71, + 0,128,0,199,0,128,0,199,1,128,1,135,3,128,1,135, + 255,128,3,7,3,128,3,7,1,128,7,255,0,128,6,7, + 0,128,12,7,0,0,12,7,0,16,24,7,0,16,24,7, + 0,48,48,7,0,96,48,15,129,224,254,63,255,224,20,30, + 90,22,1,249,1,255,16,7,131,240,14,0,240,28,0,112, + 56,0,48,56,0,48,112,0,16,112,0,16,240,0,0,240, + 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, + 0,112,0,0,112,0,0,56,0,0,56,0,16,28,0,48, + 14,0,96,7,131,192,1,255,0,0,64,0,0,192,0,0, + 240,0,0,56,0,0,24,0,0,56,0,1,240,0,19,30, + 90,20,1,0,3,0,0,3,128,0,1,192,0,0,96,0, + 0,48,0,0,24,0,0,0,0,255,255,192,62,3,192,28, + 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, + 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, + 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, + 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, + 90,20,1,0,0,6,0,0,14,0,0,28,0,0,48,0, + 0,96,0,0,192,0,0,0,0,255,255,192,62,3,192,28, + 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, + 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, + 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, + 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, + 90,20,1,0,0,48,0,0,120,0,0,252,0,1,206,0, + 3,3,0,2,1,0,0,0,0,255,255,192,62,3,192,28, + 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, + 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, + 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, + 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,28, + 84,20,1,0,3,142,0,3,142,0,3,142,0,0,0,0, + 0,0,0,255,255,192,62,3,192,28,0,192,28,0,64,28, + 0,64,28,0,0,28,0,0,28,0,0,28,1,0,28,1, + 0,28,3,0,31,255,0,28,3,0,28,1,0,28,1,0, + 28,0,0,28,0,0,28,0,32,28,0,32,28,0,96,28, + 0,192,62,3,192,255,255,192,9,30,60,11,1,0,96,0, + 112,0,56,0,12,0,6,0,3,0,0,0,255,128,62,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,62,0,255,128,9,30,60,11,1,0, + 1,128,3,128,7,0,12,0,24,0,48,0,0,0,255,128, + 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,62,0,255,128,10,30,60,11, + 1,0,12,0,30,0,63,0,115,128,192,192,128,64,0,0, + 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,62,0,255,128,9,28, + 56,11,1,0,227,128,227,128,227,128,0,0,0,0,255,128, + 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,62,0,255,128,22,23,69,24, + 1,0,255,254,0,62,7,128,28,1,192,28,0,224,28,0, + 112,28,0,112,28,0,56,28,0,56,28,0,60,28,0,60, + 28,0,60,255,192,60,255,192,60,28,0,60,28,0,60,28, + 0,56,28,0,56,28,0,112,28,0,112,28,0,224,28,1, + 192,62,7,128,255,254,0,22,29,87,24,1,0,0,224,128, + 1,249,128,3,63,0,2,14,0,0,0,0,0,0,0,248, + 1,252,60,0,112,30,0,32,31,0,32,31,0,32,23,128, + 32,19,192,32,19,192,32,17,224,32,16,240,32,16,248,32, + 16,120,32,16,60,32,16,30,32,16,31,32,16,15,32,16, + 7,160,16,3,224,16,1,224,16,1,224,16,0,224,56,0, + 96,254,0,32,22,30,90,24,1,0,3,0,0,3,128,0, + 1,192,0,0,96,0,0,48,0,0,24,0,0,0,0,1, + 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, + 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, + 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, + 128,1,254,0,22,30,90,24,1,0,0,1,128,0,3,128, + 0,7,0,0,12,0,0,24,0,0,48,0,0,0,0,1, + 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, + 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, + 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, + 128,1,254,0,22,30,90,24,1,0,0,48,0,0,120,0, + 0,252,0,1,206,0,3,3,0,2,1,0,0,0,0,1, + 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, + 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, + 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, + 128,1,254,0,22,28,84,24,1,0,0,224,128,1,249,128, + 3,63,0,2,14,0,0,0,0,1,254,0,7,135,128,14, + 1,192,28,0,224,56,0,112,56,0,112,112,0,56,112,0, + 56,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, + 240,0,60,240,0,60,112,0,56,112,0,56,56,0,112,56, + 0,112,28,0,224,14,1,192,7,135,128,1,254,0,22,28, + 84,24,1,0,1,199,0,1,199,0,1,199,0,0,0,0, + 0,0,0,1,254,0,7,135,128,14,1,192,28,0,224,56, + 0,112,56,0,112,112,0,56,112,0,56,240,0,60,240,0, + 60,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, + 112,0,56,112,0,56,56,0,112,56,0,112,28,0,224,14, + 1,192,7,135,128,1,254,0,16,16,32,19,1,0,64,2, + 224,7,112,14,56,28,28,56,14,112,7,224,3,192,3,192, + 7,224,14,112,28,56,56,28,112,14,224,7,64,2,22,27, + 81,24,1,254,0,0,16,0,0,48,1,254,96,7,135,192, + 14,1,192,28,1,224,56,3,112,56,2,112,112,6,56,112, + 12,56,240,8,60,240,24,60,240,48,60,240,96,60,240,64, + 60,240,192,60,240,128,60,113,128,56,115,0,56,58,0,112, + 62,0,112,28,0,224,30,1,192,55,135,128,33,254,0,96, + 0,0,64,0,0,22,30,90,24,1,0,0,192,0,0,224, + 0,0,112,0,0,24,0,0,12,0,0,6,0,0,0,0, + 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, + 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, + 195,128,1,254,0,22,30,90,24,1,0,0,1,128,0,3, + 128,0,7,0,0,12,0,0,24,0,0,48,0,0,0,0, + 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, + 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, + 195,128,1,254,0,22,30,90,24,1,0,0,24,0,0,60, + 0,0,126,0,0,231,0,1,129,128,1,0,128,0,0,0, + 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, + 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, + 195,128,1,254,0,22,28,84,24,1,0,1,199,0,1,199, + 0,1,199,0,0,0,0,0,0,0,255,129,252,62,0,112, + 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,96, + 30,0,96,14,0,64,15,0,192,7,195,128,1,254,0,22, + 30,90,24,1,0,0,0,192,0,1,192,0,3,128,0,6, + 0,0,12,0,0,24,0,0,0,0,255,192,252,63,0,56, + 30,0,48,15,0,96,15,128,192,7,128,128,3,193,128,3, + 195,0,1,227,0,0,246,0,0,252,0,0,124,0,0,56, + 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, + 0,56,0,0,56,0,0,56,0,0,124,0,1,255,0,18, + 23,69,19,1,0,255,128,0,62,0,0,28,0,0,28,0, + 0,28,0,0,31,252,0,28,31,0,28,7,128,28,3,128, + 28,3,192,28,1,192,28,1,192,28,1,192,28,3,192,28, + 3,128,28,7,128,28,31,0,31,252,0,28,0,0,28,0, + 0,28,0,0,62,0,0,255,128,0,15,23,46,17,1,0, + 7,192,12,112,24,56,24,56,56,56,56,56,56,56,56,56, + 56,48,56,96,57,192,56,120,56,28,56,30,56,14,56,14, + 56,14,56,14,56,14,59,12,59,156,59,152,249,240,13,23, + 46,15,1,0,24,0,28,0,14,0,3,0,1,128,0,192, + 0,0,0,0,31,128,49,192,112,224,112,224,96,224,3,224, + 14,224,24,224,48,224,96,224,224,224,225,224,242,232,126,248, + 60,112,13,23,46,15,1,0,0,192,1,192,3,128,6,0, + 12,0,24,0,0,0,0,0,31,128,49,192,112,224,112,224, + 96,224,3,224,14,224,24,224,48,224,96,224,224,224,225,224, + 242,232,126,248,60,112,13,23,46,15,1,0,6,0,15,0, + 31,128,57,192,96,96,64,32,0,0,0,0,31,128,49,192, + 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, + 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, + 28,16,62,48,99,224,65,192,0,0,0,0,31,128,49,192, + 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, + 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, + 56,224,56,224,56,224,0,0,0,0,0,0,31,128,49,192, + 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, + 224,224,225,224,242,232,126,248,60,112,13,23,46,15,1,0, + 7,0,15,128,24,192,16,64,24,192,15,128,7,0,0,0, + 31,128,49,192,112,224,112,224,96,224,3,224,14,224,24,224, + 48,224,96,224,224,224,225,224,242,232,126,248,60,112,19,15, + 45,22,1,0,31,159,0,49,249,192,112,224,192,112,224,224, + 96,224,224,3,255,224,14,224,0,24,224,0,48,224,0,96, + 224,0,224,224,32,225,240,96,243,120,192,126,63,128,60,31, + 0,12,22,44,15,1,249,15,128,56,192,112,224,96,224,224, + 96,192,0,192,0,192,0,192,0,224,0,224,16,112,48,124, + 96,63,192,15,0,4,0,12,0,15,0,3,128,1,128,3, + 128,31,0,12,23,46,15,1,0,48,0,56,0,28,0,6, + 0,3,0,1,128,0,0,0,0,15,128,57,192,96,224,96, + 112,192,112,255,240,192,0,192,0,192,0,224,0,224,16,112, + 48,124,96,63,192,15,0,12,23,46,15,1,0,1,128,3, + 128,7,0,12,0,24,0,48,0,0,0,0,0,15,128,57, + 192,96,224,96,112,192,112,255,240,192,0,192,0,192,0,224, + 0,224,16,112,48,124,96,63,192,15,0,12,23,46,15,1, + 0,6,0,15,0,31,128,57,192,96,96,64,32,0,0,0, + 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, + 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,12, + 21,42,15,1,0,56,224,56,224,56,224,0,0,0,0,0, + 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, + 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,7, + 23,23,9,1,0,192,224,112,24,12,6,0,0,24,248,56, + 56,56,56,56,56,56,56,56,56,56,56,254,7,23,23,9, + 1,0,6,14,28,48,96,192,0,0,24,248,56,56,56,56, + 56,56,56,56,56,56,56,56,254,10,23,46,9,0,0,12, + 0,30,0,63,0,115,128,192,192,128,64,0,0,0,0,12, + 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,127,0,9,21,42, + 9,0,0,227,128,227,128,227,128,0,0,0,0,0,0,12, + 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,127,0,14,23,46, + 17,1,0,16,0,56,0,28,112,15,240,15,0,127,128,49, + 192,0,224,7,240,24,240,48,120,112,56,96,60,224,28,224, + 28,224,28,224,28,224,28,112,24,112,56,56,48,28,96,7, + 128,16,21,42,16,0,0,14,8,31,24,49,240,32,224,0, + 0,0,0,24,240,251,248,62,60,60,28,56,28,56,28,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,254, + 127,14,23,46,16,1,0,24,0,28,0,14,0,3,0,1, + 128,0,192,0,0,0,0,7,128,24,224,48,112,112,56,96, + 56,224,28,224,28,224,28,224,28,224,28,112,24,112,56,56, + 48,28,96,7,128,14,23,46,16,1,0,0,192,1,192,3, + 128,6,0,12,0,24,0,0,0,0,0,7,128,24,224,48, + 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,112, + 24,112,56,56,48,28,96,7,128,14,23,46,16,1,0,3, + 0,7,128,15,192,28,224,48,48,32,16,0,0,0,0,7, + 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, + 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, + 16,1,0,28,16,62,48,99,224,65,192,0,0,0,0,7, + 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, + 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, + 16,1,0,56,224,56,224,56,224,0,0,0,0,0,0,7, + 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, + 28,224,28,112,24,112,56,56,48,28,96,7,128,16,17,34, + 19,1,0,1,128,3,192,3,192,1,128,0,0,0,0,0, + 0,255,255,255,255,0,0,0,0,0,0,0,0,1,128,3, + 192,3,192,1,128,14,21,42,17,1,253,0,24,0,16,0, + 48,7,160,24,224,48,240,112,184,97,184,225,28,225,28,227, + 28,226,28,230,28,116,24,116,56,60,48,28,96,31,128,48, + 0,32,0,96,0,16,23,46,17,0,0,12,0,14,0,7, + 0,1,128,0,192,0,96,0,0,0,0,248,124,56,28,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,60,60,124,31,223,15,152,16,23,46,17,0,0,0, + 96,0,224,1,192,3,0,6,0,12,0,0,0,0,0,248, + 124,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,28,56,60,60,124,31,223,15,152,16,23,46, + 17,0,0,1,128,3,192,7,224,14,112,24,24,16,8,0, + 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, + 152,16,21,42,17,0,0,28,112,28,112,28,112,0,0,0, + 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, + 152,15,30,60,17,0,249,0,24,0,56,0,112,0,192,1, + 128,3,0,0,0,0,0,254,30,120,12,56,12,60,8,28, + 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, + 192,1,128,1,128,1,128,1,0,3,0,2,0,62,0,124, + 0,56,0,15,30,60,17,0,249,24,0,248,0,56,0,56, + 0,56,0,56,0,56,0,56,0,57,240,59,248,62,124,60, + 28,56,30,56,14,56,14,56,14,56,14,56,14,56,12,56, + 28,60,24,62,48,59,224,56,0,56,0,56,0,56,0,56, + 0,56,0,255,0,15,28,56,17,1,249,28,112,28,112,28, + 112,0,0,0,0,0,0,254,30,120,12,56,12,60,8,28, + 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, + 192,1,128,1,128,1,0,1,0,3,0,2,0,62,0,124, + 0,56,0}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 0, '1' Height: 23 + Calculated Max Values w=16 h=26 x= 4 y=10 dx=19 dy= 0 ascent=23 len=52 + Font Bounding box w=38 h=48 x=-5 y=-11 + Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 + Pure Font ascent =23 descent= 0 + X Font ascent =23 descent= 0 + Max Font ascent =23 descent=-3 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR24n[696] U8G_SECTION(".progmem.u8g_font_timR24n") = { + 0,38,48,251,245,23,0,0,0,0,42,57,0,23,253,23, + 0,12,13,26,17,2,10,6,0,15,0,6,0,198,48,246, + 240,118,224,15,0,118,224,246,240,198,48,6,0,15,0,6, + 0,16,16,32,19,1,1,1,128,1,128,1,128,1,128,1, + 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, + 128,1,128,1,128,1,128,4,7,7,8,2,253,96,240,240, + 112,16,32,64,8,2,2,11,1,7,255,255,4,4,4,8, + 2,0,96,240,240,96,10,26,52,9,0,253,0,192,0,192, + 1,128,1,128,3,128,3,0,3,0,3,0,6,0,6,0, + 6,0,14,0,12,0,12,0,28,0,24,0,24,0,24,0, + 48,0,48,0,48,0,112,0,96,0,96,0,192,0,192,0, + 14,23,46,16,1,0,7,128,28,224,56,112,48,48,112,56, + 112,56,96,24,224,28,224,28,224,28,224,28,224,28,224,28, + 224,28,224,28,224,28,224,24,112,56,112,56,48,48,56,112, + 28,224,7,128,9,23,46,16,4,0,12,0,28,0,124,0, + 220,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,62,0,255,128,15,23,46,16,0,0,7,224, + 15,240,28,248,48,60,32,60,96,28,64,28,0,28,0,28, + 0,24,0,56,0,48,0,96,0,96,0,192,1,128,3,0, + 6,0,12,2,24,6,63,252,127,248,255,248,12,23,46,16, + 2,0,15,128,63,192,97,224,192,224,128,224,0,224,0,192, + 0,192,1,128,3,0,7,192,31,224,1,240,0,112,0,112, + 0,48,0,48,0,48,0,112,0,96,224,192,243,128,127,0, + 14,23,46,16,1,0,0,96,0,224,0,224,1,224,1,96, + 3,96,6,96,4,96,12,96,24,96,16,96,48,96,96,96, + 64,96,255,252,255,252,255,252,0,96,0,96,0,96,0,96, + 0,96,0,96,13,23,46,16,1,0,15,248,31,240,31,224, + 16,0,48,0,32,0,126,0,127,128,127,192,7,224,1,224, + 0,240,0,112,0,112,0,48,0,48,0,48,0,48,0,96, + 0,96,224,192,243,128,126,0,14,23,46,16,1,0,0,120, + 1,192,3,128,15,0,30,0,28,0,56,0,120,0,112,0, + 115,192,247,240,248,120,224,56,224,60,224,28,224,28,224,28, + 224,28,112,28,112,24,56,56,28,96,7,192,14,23,46,16, + 1,0,63,252,127,252,96,24,192,24,128,56,0,48,0,48, + 0,48,0,96,0,96,0,96,0,224,0,192,0,192,1,192, + 1,128,1,128,1,128,3,0,3,0,3,0,7,0,6,0, + 13,23,46,16,2,0,31,128,56,224,112,112,224,48,224,48, + 224,48,224,112,240,96,124,192,63,0,31,128,15,192,27,224, + 113,240,96,240,224,120,192,120,192,56,192,56,224,56,96,112, + 112,224,31,192,14,23,46,16,1,0,7,128,24,224,48,112, + 112,56,96,56,224,28,224,28,224,28,224,28,224,28,240,28, + 112,28,120,60,62,252,15,184,0,56,0,112,0,112,0,224, + 1,192,3,128,15,0,120,0}; +/* + Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 23, '1' Height: 23 + Calculated Max Values w=31 h=30 x= 4 y=17 dx=32 dy= 0 ascent=25 len=112 + Font Bounding box w=38 h=48 x=-5 y=-11 + Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 + Pure Font ascent =23 descent=-7 + X Font ascent =23 descent=-7 + Max Font ascent =25 descent=-7 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_timR24r[4764] U8G_SECTION(".progmem.u8g_font_timR24r") = { + 0,38,48,251,245,23,5,140,13,213,32,127,249,25,249,23, + 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, + 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, + 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, + 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, + 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, + 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, + 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, + 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, + 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, + 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, + 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, + 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, + 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, + 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, + 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, + 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, + 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, + 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, + 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, + 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, + 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, + 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, + 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, + 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, + 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, + 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, + 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, + 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, + 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, + 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, + 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, + 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, + 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, + 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, + 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, + 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, + 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, + 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, + 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, + 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, + 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, + 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, + 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, + 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, + 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, + 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, + 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, + 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, + 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, + 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, + 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, + 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, + 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, + 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, + 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, + 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, + 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, + 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, + 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, + 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, + 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, + 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, + 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, + 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, + 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, + 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, + 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, + 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, + 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, + 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, + 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, + 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, + 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, + 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, + 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, + 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, + 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, + 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, + 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, + 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, + 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, + 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, + 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, + 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, + 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, + 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, + 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, + 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, + 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, + 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, + 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, + 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, + 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, + 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, + 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, + 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, + 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, + 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, + 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, + 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, + 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, + 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, + 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, + 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, + 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, + 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, + 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, + 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, + 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, + 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, + 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, + 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, + 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, + 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, + 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, + 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, + 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, + 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, + 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, + 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, + 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, + 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, + 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, + 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, + 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, + 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, + 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, + 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, + 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, + 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, + 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, + 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, + 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, + 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, + 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, + 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, + 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, + 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, + 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, + 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, + 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, + 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, + 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, + 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, + 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, + 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, + 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, + 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, + 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, + 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, + 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, + 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, + 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, + 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, + 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, + 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, + 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, + 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, + 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, + 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, + 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, + 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, + 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, + 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, + 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, + 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, + 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, + 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, + 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, + 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, + 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, + 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, + 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, + 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, + 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, + 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, + 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, + 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, + 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, + 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, + 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, + 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, + 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, + 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, + 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, + 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, + 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, + 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, + 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, + 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, + 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, + 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, + 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, + 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, + 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, + 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, + 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, + 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, + 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, + 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, + 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, + 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, + 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, + 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, + 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, + 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, + 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, + 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, + 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, + 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, + 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, + 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, + 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, + 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, + 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, + 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, + 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, + 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, + 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, + 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, + 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, + 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, + 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, + 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, + 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, + 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, + 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, + 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, + 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, + 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, + 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, + 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, + 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, + 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, + 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, + 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, + 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, + 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, + 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, + 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, + 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, + 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, + 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, + 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, + 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, + 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, + 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, + 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, + 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, + 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, + 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, + 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, + 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, + 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, + 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, + 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, + 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, + 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, + 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, + 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, + 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, + 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, + 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, + 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, + 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, + 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, + 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, + 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, + 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, + 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, + 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, + 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, + 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, + 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, + 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, + 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, + 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, + 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, + 18,1,7,62,3,127,135,225,254,192,124,255}; +/* + Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w=11 h=13 x= 1 y=10 dx=12 dy= 0 ascent=13 len=18 + Font Bounding box w=11 h=17 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent = 9 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpssb[2656] U8G_SECTION(".progmem.u8g_font_tpssb") = { + 0,11,17,0,252,9,1,205,3,159,32,255,252,13,252,9, + 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, + 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, + 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, + 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, + 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, + 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, + 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, + 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, + 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, + 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, + 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, + 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, + 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, + 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, + 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, + 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, + 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, + 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, + 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, + 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, + 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, + 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, + 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, + 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, + 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, + 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, + 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, + 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, + 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, + 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, + 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, + 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, + 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, + 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, + 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, + 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, + 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, + 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, + 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, + 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, + 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, + 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, + 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, + 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, + 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, + 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, + 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, + 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, + 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, + 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, + 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, + 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, + 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, + 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, + 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, + 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, + 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, + 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, + 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, + 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, + 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, + 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, + 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, + 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, + 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, + 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, + 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, + 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, + 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, + 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, + 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, + 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, + 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, + 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, + 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, + 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, + 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, + 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, + 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, + 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, + 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, + 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, + 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, + 184,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,2,9,9,3,0,0,192,192,0,192,192,192,192, + 192,192,5,7,7,7,1,0,32,112,168,160,168,112,32,6, + 9,9,7,0,0,192,192,248,192,192,192,204,204,252,5,5, + 5,7,1,1,136,112,80,112,136,6,9,9,8,1,0,204, + 204,120,48,48,120,48,120,48,2,9,9,4,1,0,192,192, + 192,0,0,0,192,192,192,8,10,10,10,1,0,124,192,126, + 195,126,3,3,3,195,62,5,1,1,7,1,3,216,9,7, + 14,11,1,0,62,0,65,0,221,128,209,128,221,128,65,0, + 62,0,7,8,8,9,1,0,120,204,204,204,204,126,0,254, + 7,3,3,9,1,2,102,204,102,5,3,3,7,1,1,248, + 248,24,255,9,7,14,11,1,0,62,0,65,0,221,128,209, + 128,209,128,65,0,62,0,5,1,1,6,0,6,248,3,3, + 3,5,1,2,224,160,224,5,7,7,7,1,0,32,32,248, + 32,32,0,248,255,255,255,255,255,255,255,255,255,7,3,3, + 9,1,2,204,102,204,255,255,255,255,6,12,12,7,0,0, + 96,48,0,120,204,204,252,204,204,204,204,204,6,12,12,7, + 0,0,24,48,0,120,204,204,252,204,204,204,204,204,6,12, + 12,7,0,0,48,72,0,120,204,204,252,204,204,204,204,204, + 6,12,12,7,0,0,232,184,0,120,204,204,252,204,204,204, + 204,204,6,11,11,7,0,0,72,0,120,204,204,252,204,204, + 204,204,204,6,13,13,7,0,0,48,72,48,0,120,204,204, + 252,204,204,204,204,204,11,9,18,12,0,0,127,224,206,0, + 206,0,255,192,206,0,206,0,206,0,206,0,207,224,6,11, + 11,7,0,254,120,204,192,192,192,192,192,204,120,48,96,6, + 12,12,7,0,0,96,48,0,252,192,192,248,192,192,192,192, + 252,6,12,12,7,0,0,24,48,0,252,192,192,248,192,192, + 192,192,252,6,12,12,7,0,0,48,72,0,252,192,192,248, + 192,192,192,192,252,6,11,11,7,0,0,204,0,252,192,192, + 248,192,192,192,192,252,3,12,12,4,0,0,192,96,0,96, + 96,96,96,96,96,96,96,96,3,12,12,4,0,0,96,192, + 0,192,192,192,192,192,192,192,192,192,4,12,12,5,0,0, + 96,144,0,96,96,96,96,96,96,96,96,96,6,11,11,7, + 0,0,204,0,48,48,48,48,48,48,48,48,48,6,9,9, + 7,0,0,248,204,204,236,204,204,204,204,248,6,12,12,7, + 0,0,232,184,0,204,236,252,220,204,204,204,204,204,6,12, + 12,7,0,0,96,48,0,120,204,204,204,204,204,204,204,120, + 6,12,12,7,0,0,24,48,0,120,204,204,204,204,204,204, + 204,120,6,12,12,7,0,0,48,72,0,120,204,204,204,204, + 204,204,204,120,6,12,12,7,0,0,232,184,0,120,204,204, + 204,204,204,204,204,120,6,11,11,7,0,0,204,0,120,204, + 204,204,204,204,204,204,120,3,3,3,6,1,2,160,64,160, + 6,9,9,7,0,0,120,204,220,220,236,236,236,204,120,6, + 12,12,7,0,0,96,48,0,204,204,204,204,204,204,204,204, + 120,6,12,12,7,0,0,24,48,0,204,204,204,204,204,204, + 204,204,120,6,12,12,7,0,0,48,72,0,204,204,204,204, + 204,204,204,204,120,6,11,11,7,0,0,204,0,204,204,204, + 204,204,204,204,204,120,6,12,12,7,0,0,24,48,0,204, + 204,120,48,48,48,48,48,48,7,9,9,8,0,0,192,192, + 252,198,252,192,192,192,192,7,11,11,8,0,254,252,198,220, + 198,198,198,220,192,192,192,192,6,9,9,7,0,0,96,48, + 0,120,204,204,204,204,124,6,9,9,7,0,0,24,48,0, + 120,204,204,204,204,124,6,9,9,7,0,0,48,72,0,120, + 204,204,204,204,124,6,9,9,7,0,0,232,184,0,120,204, + 204,204,204,124,6,8,8,7,0,0,204,0,120,204,204,204, + 204,124,6,10,10,7,0,0,48,72,48,0,120,204,204,204, + 204,124,9,6,12,11,1,0,127,128,136,128,143,128,136,0, + 136,128,127,128,6,8,8,7,0,254,120,204,192,192,204,120, + 48,96,6,9,9,7,0,0,96,48,0,120,204,252,192,204, + 120,6,9,9,7,0,0,24,48,0,120,204,252,192,204,120, + 6,9,9,7,0,0,48,72,0,120,204,252,192,204,120,6, + 8,8,7,0,0,204,0,120,204,252,192,204,120,3,12,12, + 4,0,0,192,96,0,96,96,96,96,96,96,96,96,96,3, + 12,12,4,0,0,96,192,0,192,192,192,192,192,192,192,192, + 192,4,12,12,5,0,0,96,144,0,96,96,96,96,96,96, + 96,96,96,6,11,11,7,0,0,204,0,48,48,48,48,48, + 48,48,48,48,6,9,9,7,0,0,12,60,12,124,204,204, + 204,204,124,6,9,9,7,0,0,232,184,0,248,236,204,204, + 204,204,6,9,9,7,0,0,96,48,0,120,204,204,204,204, + 120,6,9,9,7,0,0,24,48,0,120,204,204,204,204,120, + 6,9,9,7,0,0,48,72,0,120,204,204,204,204,120,6, + 9,9,7,0,0,232,184,0,120,204,204,204,204,120,6,8, + 8,7,0,0,204,0,120,204,204,204,204,120,6,6,6,7, + 0,1,48,0,252,252,0,48,6,6,6,7,0,0,120,220, + 220,236,236,120,6,9,9,7,0,0,96,48,0,204,204,204, + 204,204,120,6,9,9,7,0,0,24,48,0,204,204,204,204, + 204,120,6,9,9,7,0,0,48,72,0,204,204,204,204,204, + 120,6,8,8,7,0,0,204,0,204,204,204,204,204,120,6, + 13,13,7,0,252,24,48,0,204,204,204,204,204,124,12,12, + 204,120,6,6,6,7,0,0,192,248,204,248,192,192,6,12, + 12,7,0,252,204,0,204,204,204,204,204,124,12,12,204,120 + }; +/* + Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w= 6 h= 9 x= 1 y= 3 dx= 8 dy= 0 ascent= 9 len= 9 + Font Bounding box w=11 h=17 x= 0 y=-4 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent = 9 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpssbn[230] U8G_SECTION(".progmem.u8g_font_tpssbn") = { + 0,11,17,0,252,9,0,0,0,0,42,57,0,9,255,9, + 0,5,7,7,7,1,1,32,168,112,32,112,168,32,6,6, + 6,8,1,1,48,48,252,252,48,48,3,2,2,5,1,255, + 96,192,5,2,2,7,1,3,248,248,2,1,1,4,1,0, + 192,6,9,9,8,1,0,12,24,24,48,48,48,96,96,192, + 6,9,9,7,0,0,120,204,204,204,204,204,204,204,120,6, + 9,9,7,0,0,48,112,240,48,48,48,48,48,252,6,9, + 9,7,0,0,120,204,204,12,24,48,96,192,252,6,9,9, + 7,0,0,120,204,12,56,12,12,12,204,120,6,9,9,7, + 0,0,12,204,204,252,12,12,12,12,12,6,9,9,7,0, + 0,252,192,192,248,12,12,12,204,120,6,9,9,7,0,0, + 120,204,192,248,204,204,204,204,120,6,9,9,7,0,0,252, + 12,24,48,96,96,96,96,96,6,9,9,7,0,0,120,204, + 204,120,204,204,204,204,120,6,9,9,7,0,0,120,204,204, + 204,124,12,12,204,120}; +/* + Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w=10 h=13 x= 1 y=10 dx=12 dy= 0 ascent=12 len=18 + Font Bounding box w=11 h=17 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent = 9 descent=-4 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpssbr[1346] U8G_SECTION(".progmem.u8g_font_tpssbr") = { + 0,11,17,0,252,9,1,205,3,159,32,127,252,12,252,9, + 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, + 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, + 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, + 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, + 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, + 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, + 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, + 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, + 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, + 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, + 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, + 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, + 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, + 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, + 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, + 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, + 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, + 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, + 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, + 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, + 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, + 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, + 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, + 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, + 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, + 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, + 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, + 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, + 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, + 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, + 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, + 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, + 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, + 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, + 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, + 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, + 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, + 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, + 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, + 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, + 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, + 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, + 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, + 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, + 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, + 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, + 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, + 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, + 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, + 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, + 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, + 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, + 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, + 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, + 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, + 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, + 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, + 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, + 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, + 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, + 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, + 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, + 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, + 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, + 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, + 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, + 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, + 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, + 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, + 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, + 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, + 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, + 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, + 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, + 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, + 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, + 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, + 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, + 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, + 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, + 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, + 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, + 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, + 184,255}; +/* + Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=13 len=18 + Font Bounding box w=11 h=17 x=-1 y=-4 + Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent = 9 descent=-4 + Max Font ascent =13 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpss[2605] U8G_SECTION(".progmem.u8g_font_tpss") = { + 0,11,17,255,252,9,1,192,3,136,32,255,252,13,252,9, + 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, + 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, + 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, + 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, + 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, + 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, + 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, + 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, + 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, + 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, + 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, + 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, + 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, + 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, + 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, + 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, + 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, + 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, + 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, + 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, + 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, + 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, + 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, + 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, + 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, + 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, + 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, + 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, + 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, + 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, + 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, + 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, + 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, + 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, + 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, + 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, + 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, + 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, + 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, + 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, + 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, + 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, + 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, + 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, + 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, + 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, + 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, + 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, + 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, + 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, + 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, + 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, + 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, + 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, + 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, + 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, + 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, + 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, + 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, + 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, + 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, + 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, + 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, + 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, + 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, + 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, + 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, + 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, + 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, + 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, + 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, + 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, + 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, + 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, + 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, + 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, + 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, + 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, + 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, + 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, + 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, + 0,10,232,184,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,1,9,9,2,0,0,128,128,0,128, + 128,128,128,128,128,5,7,7,7,1,0,32,112,168,160,168, + 112,32,5,9,9,7,1,0,128,128,240,128,128,128,136,136, + 248,5,5,5,7,1,1,136,112,80,112,136,5,9,9,7, + 1,0,136,136,80,32,32,248,32,248,32,1,9,9,3,1, + 0,128,128,128,0,0,0,128,128,128,6,10,10,8,1,0, + 120,128,120,132,120,4,4,4,132,120,5,1,1,7,1,3, + 136,7,7,7,9,1,0,124,130,186,162,186,130,124,6,8, + 8,8,1,0,112,136,136,136,136,116,0,252,5,3,3,7, + 1,2,72,144,72,5,2,2,7,1,2,248,8,0,0,0, + 8,0,0,7,7,7,9,1,0,124,130,186,162,162,130,124, + 5,1,1,6,0,6,248,3,3,3,5,1,2,64,160,64, + 5,7,7,7,1,0,32,32,248,32,32,0,248,255,255,255, + 0,0,0,8,0,0,255,0,0,0,8,0,0,255,255,255, + 5,3,3,7,1,2,144,72,144,255,255,255,255,5,12,12, + 6,0,0,64,32,0,112,136,136,248,136,136,136,136,136,5, + 12,12,6,0,0,16,32,0,112,136,136,248,136,136,136,136, + 136,5,12,12,6,0,0,32,80,0,112,136,136,248,136,136, + 136,136,136,5,12,12,6,0,0,232,184,0,112,136,136,248, + 136,136,136,136,136,5,11,11,6,0,0,80,0,112,136,136, + 248,136,136,136,136,136,5,13,13,6,0,0,32,80,32,0, + 112,136,136,248,136,136,136,136,136,9,9,18,10,0,0,127, + 128,136,0,136,0,255,0,136,0,136,0,136,0,136,0,143, + 128,5,9,9,6,0,254,112,136,128,128,128,136,112,32,96, + 5,12,12,6,0,0,64,32,0,248,128,128,240,128,128,128, + 128,248,5,12,12,6,0,0,16,32,0,248,128,128,240,128, + 128,128,128,248,5,12,12,6,0,0,32,80,0,248,128,128, + 240,128,128,128,128,248,5,11,11,6,0,0,80,0,248,128, + 128,240,128,128,128,128,248,2,12,12,2,0,0,128,64,0, + 64,64,64,64,64,64,64,64,64,2,12,12,2,0,0,64, + 128,0,128,128,128,128,128,128,128,128,128,3,12,12,2,255, + 0,64,160,0,64,64,64,64,64,64,64,64,64,3,11,11, + 2,255,0,160,0,64,64,64,64,64,64,64,64,64,5,9, + 9,6,0,0,240,136,136,232,136,136,136,136,240,5,12,12, + 6,0,0,232,184,0,136,136,136,200,168,152,136,136,136,5, + 12,12,6,0,0,64,32,0,112,136,136,136,136,136,136,136, + 112,5,12,12,6,0,0,16,32,0,112,136,136,136,136,136, + 136,136,112,5,12,12,6,0,0,32,80,0,112,136,136,136, + 136,136,136,136,112,5,12,12,6,0,0,232,184,0,112,136, + 136,136,136,136,136,136,112,5,11,11,6,0,0,80,0,112, + 136,136,136,136,136,136,136,112,3,3,3,6,1,2,160,64, + 160,7,9,9,8,0,0,58,68,76,84,84,84,100,68,184, + 5,12,12,6,0,0,64,32,0,136,136,136,136,136,136,136, + 136,112,5,12,12,6,0,0,16,32,0,136,136,136,136,136, + 136,136,136,112,5,12,12,6,0,0,32,80,0,136,136,136, + 136,136,136,136,136,112,5,11,11,6,0,0,80,0,136,136, + 136,136,136,136,136,136,112,5,12,12,6,0,0,16,32,0, + 136,136,80,32,32,32,32,32,32,5,9,9,6,0,0,128, + 128,240,136,240,128,128,128,128,5,11,11,6,0,254,240,136, + 176,136,136,136,176,128,128,128,128,5,9,9,6,0,0,64, + 32,0,112,136,136,136,136,120,5,9,9,6,0,0,16,32, + 0,112,136,136,136,136,120,5,9,9,6,0,0,32,80,0, + 112,136,136,136,136,120,5,9,9,6,0,0,232,184,0,112, + 136,136,136,136,120,5,8,8,6,0,0,80,0,112,136,136, + 136,136,120,5,10,10,6,0,0,32,80,32,0,112,136,136, + 136,136,120,9,6,12,10,0,0,119,0,136,128,143,128,136, + 0,136,128,119,0,5,8,8,6,0,254,112,136,128,128,136, + 112,32,64,5,6,6,6,0,0,112,136,248,128,136,112,5, + 6,6,6,0,0,112,136,248,128,136,112,5,6,6,6,0, + 0,112,136,248,128,136,112,5,6,6,6,0,0,112,136,248, + 128,136,112,2,10,10,3,0,0,128,64,0,0,64,64,64, + 64,64,64,2,10,10,3,0,0,64,128,0,0,128,128,128, + 128,128,128,3,10,10,4,0,0,64,160,0,0,64,64,64, + 64,64,64,3,9,9,4,0,0,160,0,0,64,64,64,64, + 64,64,5,9,9,6,0,0,8,56,8,120,136,136,136,136, + 120,5,9,9,6,0,0,232,184,0,176,200,136,136,136,136, + 5,9,9,6,0,0,64,32,0,112,136,136,136,136,112,5, + 9,9,6,0,0,16,32,0,112,136,136,136,136,112,5,9, + 9,6,0,0,32,80,0,112,136,136,136,136,112,5,9,9, + 6,0,0,232,184,0,112,136,136,136,136,112,5,8,8,6, + 0,0,80,0,112,136,136,136,136,112,5,5,5,6,0,1, + 32,0,248,0,32,5,6,6,6,0,0,112,152,168,168,200, + 112,5,9,9,6,0,0,64,32,0,136,136,136,136,136,112, + 5,9,9,6,0,0,16,32,0,136,136,136,136,136,112,5, + 9,9,6,0,0,32,80,0,136,136,136,136,136,112,5,8, + 8,6,0,0,80,0,136,136,136,136,136,112,5,13,13,6, + 0,252,16,32,0,136,136,136,136,136,120,8,8,136,112,5, + 6,6,5,0,0,128,240,136,240,128,128,5,12,12,6,0, + 252,80,0,136,136,136,136,136,120,8,8,136,112}; +/* + Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 0, '1' Height: 9 + Calculated Max Values w= 5 h= 9 x= 1 y= 3 dx= 7 dy= 0 ascent= 9 len= 9 + Font Bounding box w=11 h=17 x=-1 y=-4 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 9 descent= 0 + X Font ascent = 9 descent= 0 + Max Font ascent = 9 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpssn[228] U8G_SECTION(".progmem.u8g_font_tpssn") = { + 0,11,17,255,252,9,0,0,0,0,42,57,0,9,255,9, + 0,5,7,7,7,1,1,32,168,112,32,112,168,32,5,5, + 5,7,1,1,32,32,248,32,32,2,2,2,4,1,255,64, + 128,5,1,1,7,1,3,248,1,1,1,3,1,0,128,5, + 9,9,7,1,0,8,16,16,32,32,32,64,64,128,5,9, + 9,6,0,0,112,136,136,136,136,136,136,136,112,5,9,9, + 6,0,0,32,96,160,32,32,32,32,32,248,5,9,9,6, + 0,0,112,136,136,8,16,32,64,128,248,5,9,9,6,0, + 0,112,136,8,48,8,8,8,136,112,5,9,9,6,0,0, + 8,136,136,248,8,8,8,8,8,5,9,9,6,0,0,248, + 128,128,248,8,8,8,136,112,5,9,9,6,0,0,112,136, + 128,240,136,136,136,136,112,5,9,9,6,0,0,248,8,16, + 32,64,64,64,64,64,5,9,9,6,0,0,112,136,136,112, + 136,136,136,136,112,5,9,9,6,0,0,112,136,136,136,120, + 8,8,136,112}; +/* + Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 + Copyright: © www.orgdot.com + Capital A Height: 9, '1' Height: 9 + Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=12 len=16 + Font Bounding box w=11 h=17 x=-1 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent = 9 descent=-4 + X Font ascent = 9 descent=-4 + Max Font ascent =12 descent=-4 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_tpssr[1317] U8G_SECTION(".progmem.u8g_font_tpssr") = { + 0,11,17,255,252,9,1,192,3,136,32,127,252,12,252,9, + 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, + 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, + 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, + 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, + 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, + 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, + 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, + 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, + 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, + 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, + 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, + 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, + 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, + 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, + 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, + 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, + 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, + 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, + 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, + 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, + 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, + 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, + 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, + 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, + 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, + 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, + 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, + 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, + 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, + 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, + 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, + 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, + 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, + 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, + 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, + 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, + 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, + 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, + 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, + 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, + 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, + 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, + 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, + 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, + 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, + 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, + 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, + 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, + 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, + 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, + 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, + 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, + 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, + 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, + 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, + 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, + 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, + 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, + 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, + 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, + 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, + 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, + 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, + 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, + 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, + 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, + 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, + 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, + 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, + 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, + 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, + 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, + 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, + 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, + 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, + 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, + 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, + 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, + 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, + 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, + 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, + 0,10,232,184,255}; +/* + Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright julischka 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 + Font Bounding box w= 5 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 7 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_trixel_square[1236] U8G_SECTION(".progmem.u8g_font_trixel_square") = { + 0,5,9,0,254,5,1,91,2,177,32,255,254,7,254,5, + 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, + 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, + 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, + 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, + 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, + 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, + 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, + 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, + 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, + 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, + 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, + 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, + 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, + 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, + 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, + 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, + 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, + 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, + 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, + 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, + 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, + 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, + 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, + 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, + 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, + 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, + 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, + 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, + 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, + 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, + 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, + 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, + 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, + 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, + 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, + 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, + 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, + 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, + 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, + 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, + 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, + 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, + 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, + 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, + 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, + 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, + 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, + 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, + 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, + 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, + 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, + 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, + 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, + 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, + 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, + 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, + 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, + 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, + 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, + 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, + 128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,4,5,5,5,0,0,112,64,96,64,240, + 255,255,255,3,7,7,4,0,254,224,128,224,160,224,32,224, + 255,255,255,3,2,2,4,0,1,160,160,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,3,2,2,4,0,1, + 160,160,255,255,255,255,255,255,255,255,3,7,7,4,0,0, + 160,0,224,160,224,160,160,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,3,7,7,4,0,0,160,0, + 224,160,160,160,224,255,255,255,255,255,3,7,7,4,0,0, + 160,0,160,160,160,160,224,255,255,3,7,7,4,0,254,224, + 160,224,160,224,128,128,255,255,255,255,4,5,5,5,0,0, + 160,0,224,160,240,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,3,5,5,4,0,0,160,0,224,160, + 224,255,255,255,255,255,3,5,5,4,0,0,160,0,160,160, + 224,255,255,255}; +/* + Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright julischka 2008 + Capital A Height: 0, '1' Height: 5 + Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 + Font Bounding box w= 5 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 5 descent= 0 + X Font ascent = 5 descent= 0 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[178] U8G_SECTION(".progmem.u8g_font_trixel_squaren") = { + 0,5,9,0,254,5,0,0,0,0,42,57,0,5,255,5, + 0,3,3,3,4,0,2,160,64,160,3,3,3,4,0,0, + 64,224,64,1,2,2,2,0,255,128,128,3,1,1,4,0, + 1,224,1,1,1,2,0,0,128,3,5,5,4,0,0,32, + 96,64,192,128,3,5,5,4,0,0,224,160,160,160,224,2, + 5,5,3,0,0,64,192,64,64,64,3,5,5,4,0,0, + 224,160,96,192,224,3,5,5,4,0,0,224,32,96,32,224, + 3,5,5,4,0,0,160,160,224,32,32,3,5,5,4,0, + 0,224,128,224,32,224,3,5,5,4,0,0,224,128,224,160, + 224,3,5,5,4,0,0,224,32,32,32,32,3,5,5,4, + 0,0,224,160,224,160,224,3,5,5,4,0,0,224,160,224, + 32,224}; +/* + Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 + Copyright: Copyright julischka 2008 + Capital A Height: 5, '1' Height: 5 + Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 6 len= 7 + Font Bounding box w= 5 h= 9 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 5 descent=-2 + X Font ascent = 5 descent=-2 + Max Font ascent = 6 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[994] U8G_SECTION(".progmem.u8g_font_trixel_squarer") = { + 0,5,9,0,254,5,1,91,2,177,32,127,254,6,254,5, + 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, + 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, + 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, + 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, + 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, + 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, + 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, + 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, + 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, + 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, + 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, + 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, + 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, + 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, + 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, + 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, + 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, + 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, + 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, + 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, + 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, + 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, + 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, + 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, + 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, + 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, + 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, + 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, + 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, + 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, + 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, + 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, + 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, + 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, + 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, + 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, + 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, + 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, + 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, + 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, + 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, + 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, + 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, + 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, + 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, + 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, + 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, + 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, + 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, + 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, + 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, + 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, + 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, + 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, + 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, + 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, + 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, + 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, + 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, + 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, + 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, + 128,255}; +/* + Fontname: u8glib_4 + Copyright: public domain + Capital A Height: 4, '1' Height: 4 + Calculated Max Values w= 8 h= 7 x= 1 y= 4 dx= 9 dy= 0 ascent= 6 len= 7 + Font Bounding box w=10 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 4 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 6 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_u8glib_4[1660] U8G_SECTION(".progmem.u8g_font_u8glib_4") = { + 1,10,6,0,255,4,0,233,1,198,32,255,255,6,255,5, + 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, + 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, + 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, + 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, + 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, + 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, + 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, + 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, + 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, + 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, + 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, + 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, + 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, + 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, + 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, + 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, + 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, + 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, + 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, + 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, + 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, + 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, + 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, + 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, + 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, + 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, + 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, + 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, + 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, + 2,51,67,224,192,224,2,52,68,32,64,224,64,1,52,68, + 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, + 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, + 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, + 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, + 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, + 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, + 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, + 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, + 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, + 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, + 2,69,85,240,144,144,144,240,2,0,32,2,53,69,160,0, + 160,160,224,2,54,70,64,128,0,224,192,224,2,54,70,64, + 160,0,96,160,224,2,53,69,160,0,96,160,224,2,54,70, + 64,32,0,96,160,224,2,54,70,64,160,64,96,160,224,1, + 36,52,192,128,192,192,2,54,70,64,160,0,224,192,224,2, + 53,69,160,0,224,192,224,2,54,70,64,32,0,224,192,224, + 2,52,68,160,0,64,64,2,53,149,64,160,0,64,64,2, + 37,53,128,64,0,64,64,2,69,85,144,96,144,240,144,2, + 70,86,96,144,96,144,240,144,2,70,86,32,64,240,224,128, + 240,2,83,99,120,176,248,2,132,148,31,46,120,143,2,54, + 70,64,160,0,224,160,224,2,53,69,160,0,224,160,224,2, + 54,70,128,64,0,224,160,224,2,54,70,64,160,0,160,160, + 224,2,54,70,64,32,0,160,160,224,1,54,70,160,0,160, + 224,32,96,2,69,85,144,96,144,144,96,2,69,85,144,0, + 144,144,240,2,0,64,2,0,64,2,0,64,2,0,64,2, + 0,64,2,54,70,64,128,0,96,160,224,2,37,53,64,128, + 0,128,128,2,54,70,32,64,0,224,160,224,2,54,70,32, + 64,0,160,160,224,2,70,70,80,160,0,192,160,160,2,70, + 86,80,160,144,208,176,144,2,21,37,128,128,0,128,128,1, + 54,70,224,128,224,224,32,224,6,65,81,144,1,119,151,124, + 130,186,162,186,130,124,2,0,144,2,51,67,96,192,96,3, + 50,66,224,32,2,0,144,1,119,151,124,130,186,178,170,130, + 124,6,65,81,240,4,51,67,224,160,224,2,52,148,64,224, + 64,224,4,51,67,192,64,96,4,35,51,192,64,192,5,34, + 50,64,128,1,52,148,160,160,224,128,1,101,117,124,244,116, + 20,20,19,17,49,128,2,0,144,4,35,51,192,64,64,4, + 51,67,224,160,224,2,51,67,192,96,192,1,118,134,196,72, + 80,40,78,132,1,118,134,196,72,80,44,68,134,1,118,150, + 196,72,208,40,78,132,2,0,64,2,70,86,64,32,96,144, + 240,144,2,70,86,32,64,96,144,240,144,2,70,86,96,144, + 96,144,240,144,2,70,86,80,160,96,144,240,144,2,69,85, + 144,96,144,240,144,2,70,86,96,0,96,144,240,144,2,132, + 148,31,46,120,143,1,69,85,240,128,240,32,96,2,70,86, + 64,32,240,224,128,240,2,70,86,32,64,240,224,128,240,2, + 70,86,96,144,240,224,128,240,2,70,86,144,0,240,224,128, + 240,2,38,54,128,64,128,128,128,128,2,38,54,64,128,64, + 64,64,64,2,54,70,64,160,64,64,64,64,2,53,69,160, + 64,64,64,64,2,84,100,112,232,72,112,2,70,86,80,160, + 0,144,208,176,2,70,86,64,32,96,144,144,96,2,70,86, + 32,64,96,144,144,96,2,70,86,96,144,96,144,144,96,2, + 70,86,80,160,96,144,144,96,2,69,85,144,96,144,144,96, + 2,51,67,160,64,160,1,102,118,4,56,88,104,112,128,2, + 70,86,64,32,144,144,144,240,2,70,86,32,64,144,144,144, + 240,2,70,86,96,144,0,144,144,240,2,69,85,144,0,144, + 144,240,2,70,86,32,64,144,240,16,240,1,70,86,128,224, + 144,144,224,128,1,53,69,192,192,160,192,128,2,54,70,64, + 32,0,96,160,224,2,54,70,64,128,0,96,160,224,2,54, + 70,64,160,0,96,160,224,2,70,70,80,160,0,96,160,224, + 2,53,69,160,0,96,160,224,2,54,70,64,160,64,96,160, + 224,2,83,99,120,176,248,1,36,52,192,128,192,192,2,54, + 70,64,32,0,224,192,224,2,54,70,64,128,0,224,192,224, + 2,54,70,64,160,0,224,192,224,2,53,69,160,0,224,192, + 224,2,37,53,128,64,0,64,64,2,37,53,64,128,0,128, + 128,2,53,69,64,160,0,64,64,2,52,68,160,0,64,64, + 2,70,86,96,96,16,112,144,96,2,70,70,80,160,0,192, + 160,160,2,54,70,64,32,0,224,160,224,2,54,70,64,128, + 0,224,160,224,2,54,70,64,160,0,224,160,224,2,70,70, + 80,160,0,224,160,224,2,53,69,160,0,224,160,224,2,53, + 69,64,0,224,0,64,1,85,101,8,112,80,112,128,2,54, + 70,64,32,0,160,160,224,2,54,70,64,128,0,160,160,224, + 2,54,70,64,160,0,160,160,224,2,53,69,160,0,160,160, + 224,1,55,71,64,128,0,160,224,32,96,1,53,69,128,192, + 160,192,128,1,54,150,160,0,160,224,32,96}; +/* + Fontname: u8glib_4 + Copyright: public domain + Capital A Height: 4, '1' Height: 4 + Calculated Max Values w= 5 h= 6 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 6 + Font Bounding box w=10 h= 6 x= 0 y=-1 + Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 + Pure Font ascent = 4 descent=-1 + X Font ascent = 5 descent=-1 + Max Font ascent = 5 descent=-1 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[664] U8G_SECTION(".progmem.u8g_font_u8glib_4r") = { + 1,10,6,0,255,4,0,233,1,198,32,127,255,5,255,5, + 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, + 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, + 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, + 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, + 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, + 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, + 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, + 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, + 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, + 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, + 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, + 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, + 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, + 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, + 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, + 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, + 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, + 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, + 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, + 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, + 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, + 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, + 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, + 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, + 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, + 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, + 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, + 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, + 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, + 2,51,67,224,192,224,2,52,68,32,64,224,64,1,52,68, + 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, + 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, + 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, + 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, + 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, + 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, + 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, + 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, + 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, + 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, + 2,69,85,240,144,144,144,240}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4239] U8G_SECTION(".progmem.u8g_font_unifont_0_8") = { + 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, + 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, + 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, + 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, + 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, + 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, + 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, + 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, + 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, + 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, + 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, + 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, + 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, + 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, + 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, + 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, + 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, + 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, + 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, + 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, + 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, + 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, + 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, + 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, + 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, + 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, + 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, + 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, + 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, + 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, + 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, + 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, + 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, + 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, + 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, + 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, + 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, + 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, + 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, + 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, + 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, + 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, + 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, + 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, + 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, + 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, + 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, + 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, + 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, + 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, + 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, + 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, + 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, + 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, + 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, + 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, + 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, + 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, + 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, + 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, + 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, + 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, + 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, + 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, + 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, + 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, + 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, + 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, + 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, + 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, + 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, + 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, + 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, + 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, + 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, + 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, + 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, + 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, + 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, + 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, + 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, + 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, + 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, + 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, + 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, + 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,113,157,202,82,115, + 211,194,82,66,93,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,73,157,202,82,122,93,202,80,73,145,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,115,147,202,82,115,159,202,18,114, + 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,75,147,234, + 82,91,159,202,82,75,147,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,116,185,166,164,37,165,164,164,116,185,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,75,209,234,16,91,209,202, + 16,75,223,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, + 205,194,18,49,159,136,82,115,147,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,121,205,194,18,121,159,192,82,123,147,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,75,157,201,32,121, + 25,201,4,73,57,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,75,185,201,8,121,9,201,8,73,49,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,69,205,196,144,68,137,168,132,16, + 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,114,29,202, + 18,114,19,194,18,67,221,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,114,19,202,18,114,19,194,18,67,205,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,14,33,137,32,14,33,138, + 32,9,33,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, + 221,194,2,49,141,136,80,115,159,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,57,221,194,2,49,141,136,66,115,157,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,113,207,202,16,74, + 13,202,2,113,221,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,114,69,202,76,114,69,194,68,65,143,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,114,93,202,66,114,77,194,80,65, + 159,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,59,157,193, + 32,49,25,137,4,113,57,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,57,211,194,18,66,31,194,18,57,211,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,69,17,237,16,85,81,197, + 176,69,17,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, + 141,194,82,51,159,138,18,114,19,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,123,141,194,82,123,159,194,18,122,19,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,57,143,194,80,50, + 77,138,66,113,157,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,51,155,196,34,37,163,148,162,99,155,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,57,221,194,8,50,9,138,8,113, + 221,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,57,221,194, + 8,65,137,192,72,59,157,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,14,249,144,32,12,33,130,32,28,33,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,49,207,202,16,73,145,200, + 80,51,143,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, + 33,203,96,114,161,194,32,66,33,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,51,143,202,80,123,145,202,16,74,15,128, + 0,0,1,128,0,0,1,128,0,85,85,6,13,13,8,1, + 0,96,24,0,252,128,128,128,248,128,128,128,128,252,6,14, + 14,8,1,0,72,72,0,0,252,128,128,128,248,128,128,128, + 128,252,7,10,10,8,1,0,252,32,32,32,60,34,34,34, + 34,44,6,14,14,8,1,0,24,96,0,0,252,128,128,128, + 128,128,128,128,128,128,6,10,10,8,1,0,56,68,128,128, + 248,128,128,128,68,56,6,10,10,8,1,0,120,132,132,128, + 96,24,4,132,132,120,5,10,10,8,2,0,248,32,32,32, + 32,32,32,32,32,248,5,14,14,8,2,0,144,144,0,0, + 248,32,32,32,32,32,32,32,32,248,6,10,10,8,1,0, + 28,8,8,8,8,8,8,136,136,112,8,10,10,8,0,0, + 120,72,72,72,78,73,73,73,73,142,7,10,10,8,1,0, + 144,144,144,144,252,146,146,146,146,156,7,10,10,8,1,0, + 252,32,32,32,60,34,34,34,34,34,6,14,14,8,1,0, + 24,96,0,0,128,140,144,160,192,192,160,144,136,132,6,13, + 13,8,1,0,96,24,0,132,140,140,148,148,164,164,196,196, + 132,7,14,14,8,1,0,132,132,120,0,130,130,68,68,40, + 40,16,16,32,96,7,10,10,8,1,0,130,130,130,130,130, + 130,254,16,16,16,6,10,10,8,1,0,48,72,72,132,132, + 132,252,132,132,132,6,10,10,8,1,0,248,128,128,128,248, + 132,132,132,132,248,6,10,10,8,1,0,248,132,132,132,248, + 132,132,132,132,248,6,10,10,8,1,0,252,128,128,128,128, + 128,128,128,128,128,8,12,12,8,0,254,14,18,18,18,34, + 34,34,66,66,255,129,129,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,252,7,10,10,8,1,0,146,146,84, + 84,56,56,84,84,146,146,6,10,10,8,1,0,120,132,4, + 4,120,8,4,4,132,120,6,10,10,8,1,0,132,140,140, + 148,148,164,164,196,196,132,6,13,13,8,1,0,72,48,0, + 132,140,140,148,148,164,164,196,196,132,6,10,10,8,1,0, + 128,140,144,160,192,192,160,144,136,132,6,10,10,8,1,0, + 60,36,36,36,36,36,36,68,68,132,6,10,10,8,1,0, + 132,132,204,204,180,180,132,132,132,132,6,10,10,8,1,0, + 132,132,132,132,252,132,132,132,132,132,6,10,10,8,1,0, + 120,132,132,132,132,132,132,132,132,120,6,10,10,8,1,0, + 252,132,132,132,132,132,132,132,132,132,6,10,10,8,1,0, + 248,132,132,132,248,128,128,128,128,128,6,10,10,8,1,0, + 120,132,132,128,128,128,128,132,132,120,7,10,10,8,1,0, + 254,16,16,16,16,16,16,16,16,16,7,10,10,8,1,0, + 130,130,68,68,40,40,16,16,32,96,7,11,11,8,1,0, + 16,124,146,146,146,146,146,124,16,16,16,6,10,10,8,1, + 0,132,132,72,72,48,48,72,72,132,132,7,12,12,8,1, + 254,132,132,132,132,132,132,132,132,132,254,2,2,6,10,10, + 8,1,0,132,132,132,132,132,252,4,4,4,4,7,10,10, + 8,1,0,146,146,146,146,146,146,146,146,146,254,8,12,12, + 8,0,254,146,146,146,146,146,146,146,146,146,255,1,1,7, + 10,10,8,1,0,224,32,32,32,60,34,34,34,34,60,6, + 10,10,8,1,0,132,132,132,132,228,148,148,148,148,228,6, + 10,10,8,1,0,128,128,128,128,248,132,132,132,132,248,6, + 10,10,8,1,0,112,136,4,4,124,4,4,4,136,112,6, + 10,10,8,1,0,152,164,164,164,228,164,164,164,164,152,6, + 10,10,8,1,0,124,132,132,132,124,36,68,68,132,132,6, + 8,8,8,1,0,120,132,4,124,132,132,140,116,6,12,12, + 8,1,0,4,56,64,128,248,132,132,132,132,132,132,120,6, + 8,8,8,1,0,248,132,132,248,132,132,132,248,6,8,8, + 8,1,0,252,128,128,128,128,128,128,128,7,9,9,8,1, + 255,60,36,68,68,132,132,132,254,130,6,8,8,8,1,0, + 120,132,132,252,128,128,132,120,7,8,8,8,1,0,146,146, + 84,56,56,84,146,146,6,8,8,8,1,0,120,132,4,120, + 8,4,132,120,6,8,8,8,1,0,140,140,148,148,164,164, + 196,196,6,12,12,8,1,0,72,48,0,0,140,140,148,148, + 164,164,196,196,6,8,8,8,1,0,140,144,160,192,160,144, + 136,132,6,8,8,8,1,0,60,36,36,36,36,68,68,132, + 6,8,8,8,1,0,132,204,204,180,180,132,132,132,6,8, + 8,8,1,0,132,132,132,252,132,132,132,132,6,8,8,8, + 1,0,120,132,132,132,132,132,132,120,6,8,8,8,1,0, + 252,132,132,132,132,132,132,132,6,10,10,8,1,254,248,132, + 132,132,132,248,128,128,128,128,6,8,8,8,1,0,120,132, + 128,128,128,128,132,120,7,8,8,8,1,0,254,16,16,16, + 16,16,16,16,6,10,10,8,1,254,132,132,72,72,48,48, + 32,32,64,192,7,10,10,8,1,255,16,16,124,146,146,146, + 146,124,16,16,6,8,8,8,1,0,132,132,72,48,48,72, + 132,132,7,10,10,8,1,254,132,132,132,132,132,132,132,254, + 2,2,6,8,8,8,1,0,132,132,132,132,252,4,4,4, + 7,8,8,8,1,0,146,146,146,146,146,146,146,254,8,10, + 10,8,0,254,146,146,146,146,146,146,146,255,1,1,7,8, + 8,8,1,0,224,32,32,60,34,34,34,60,6,8,8,8, + 1,0,132,132,132,228,148,148,148,228,6,8,8,8,1,0, + 128,128,128,248,132,132,132,248,6,8,8,8,1,0,112,136, + 4,124,4,4,136,112,6,8,8,8,1,0,152,164,164,228, + 164,164,164,152,6,8,8,8,1,0,124,132,132,132,124,36, + 68,132,6,12,12,8,1,0,96,24,0,0,120,132,132,252, + 128,128,132,120,6,12,12,8,1,0,72,72,0,0,120,132, + 132,252,128,128,132,120,6,11,11,8,1,255,64,64,240,64, + 64,120,68,68,68,68,24,6,12,12,8,1,0,24,96,0, + 0,252,128,128,128,128,128,128,128,6,8,8,8,1,0,56, + 68,128,248,128,128,68,56,6,8,8,8,1,0,120,132,128, + 96,24,4,132,120,5,11,11,8,2,0,32,32,0,96,32, + 32,32,32,32,32,248,5,11,11,8,2,0,144,144,0,96, + 32,32,32,32,32,32,248,5,13,13,8,1,254,8,8,0, + 24,8,8,8,8,8,8,8,144,96,8,8,8,8,0,0, + 120,72,72,78,73,73,73,142,7,8,8,8,1,0,144,144, + 144,252,146,146,146,156,6,10,10,8,1,0,64,64,240,64, + 64,88,100,68,68,68,6,12,12,8,1,0,24,96,0,0, + 140,144,160,192,160,144,136,132,6,12,12,8,1,0,96,24, + 0,0,140,140,148,148,164,164,196,196,6,15,15,8,1,254, + 132,132,120,0,0,132,132,72,72,48,48,32,32,64,192,5, + 10,10,8,2,254,136,136,136,136,136,136,248,32,32,32}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 8, '1' Height: 7 + Calculated Max Values w=16 h=16 x= 9 y=11 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent= 2 + X Font ascent =13 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[3934] U8G_SECTION(".progmem.u8g_font_unifont_12_13") = { + 0,16,16,0,254,8,4,93,5,214,0,255,2,14,254,13, + 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,85,85,128, + 0,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, + 4,42,13,170,12,53,245,128,0,0,1,170,170,16,16,32, + 16,0,254,85,85,128,0,0,1,128,0,0,1,128,0,0, + 1,128,0,0,1,142,0,14,25,135,224,0,1,128,0,0, + 1,170,170,16,16,32,16,0,254,85,85,128,0,0,1,128, + 0,0,1,128,0,0,25,128,36,0,69,129,68,1,73,158, + 240,0,1,128,0,0,1,170,170,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,12,14,28,16,1,255,1,80,225,80,33,160,17,0,17, + 0,9,0,8,0,4,224,4,128,2,128,3,0,3,0,2, + 0,2,0,11,15,30,16,1,255,0,64,0,128,225,0,33, + 64,16,128,17,32,8,192,8,0,4,224,4,128,2,128,3, + 0,3,0,2,0,2,0,12,7,14,16,2,3,1,144,58, + 96,202,192,17,64,16,64,32,128,31,0,5,10,10,8,1, + 1,8,8,80,16,32,32,64,64,136,160,7,10,10,8,1, + 1,8,8,80,16,32,32,64,66,136,160,10,10,20,16,3, + 2,48,0,48,0,6,0,9,0,7,0,1,0,14,0,240, + 128,0,64,0,64,2,4,4,8,3,3,64,128,192,192,5, + 4,4,8,1,2,24,48,64,128,12,4,8,16,3,1,112, + 0,136,0,136,48,127,192,7,11,11,16,2,0,24,32,32, + 24,32,76,82,98,36,88,128,6,4,4,8,2,9,24,36, + 228,88,9,6,12,16,4,7,3,0,4,0,39,128,56,0, + 64,0,128,0,10,5,10,16,3,8,252,64,16,64,32,128, + 71,0,64,0,11,4,8,16,2,9,24,32,36,32,228,64, + 89,128,10,4,8,16,3,8,0,64,254,64,1,64,0,128, + 7,4,4,16,4,9,64,92,98,252,8,6,6,16,3,8, + 40,40,40,104,128,127,3,5,5,16,6,8,32,0,32,32, + 192,4,2,2,16,6,10,48,192,5,5,5,16,5,8,16, + 40,48,96,144,4,13,13,16,6,254,240,0,0,0,0,0, + 0,0,0,0,0,48,192,2,5,5,8,3,2,64,128,192, + 0,192,6,14,14,8,1,255,168,84,168,84,168,84,168,84, + 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, + 168,84,168,84,168,84,168,84,168,84,3,3,3,16,7,0, + 64,0,160,7,9,9,8,1,2,124,130,128,64,32,16,16, + 0,16,6,14,14,8,1,255,168,84,168,84,168,84,168,84, + 168,84,168,84,168,84,4,5,5,8,2,2,112,128,240,64, + 128,7,10,10,8,1,3,2,124,128,16,16,16,16,16,16, + 16,3,11,11,8,2,3,96,128,96,128,32,32,32,32,32, + 32,32,6,13,13,8,1,255,24,32,24,32,0,24,36,36, + 60,4,8,144,96,3,12,12,8,3,254,64,64,64,64,64, + 64,64,0,96,128,96,128,6,11,11,8,1,255,48,64,48, + 64,0,140,144,144,140,132,120,1,8,8,8,4,3,128,128, + 128,128,128,128,128,128,6,7,7,8,1,0,8,68,132,120, + 0,0,16,5,8,8,8,2,3,144,0,0,96,144,136,136, + 112,6,7,7,8,1,3,40,0,0,8,68,132,120,6,9, + 9,8,1,3,32,0,80,0,0,8,68,132,120,6,8,8, + 8,1,254,252,32,64,128,144,128,68,56,6,8,8,8,1, + 254,252,32,64,128,128,128,68,56,6,11,11,8,1,254,32, + 0,0,252,32,64,128,128,128,68,56,6,5,5,8,1,3, + 16,8,4,132,248,6,7,7,8,1,3,64,0,16,8,4, + 132,248,6,7,7,8,1,255,8,4,4,4,8,144,96,6, + 10,10,8,1,255,32,0,0,8,4,4,4,8,144,96,7, + 7,7,8,1,255,2,42,42,188,144,144,96,7,12,12,8, + 1,255,16,0,36,0,0,2,42,42,188,144,144,96,7,6, + 6,8,1,0,12,50,156,144,144,96,7,9,9,8,1,0, + 8,0,0,12,50,156,144,144,96,6,8,8,8,1,3,64, + 64,64,64,88,100,68,248,6,8,8,8,1,3,64,72,64, + 64,88,100,68,248,6,9,9,8,1,254,48,72,64,56,64, + 128,128,132,120,6,12,12,8,1,254,16,0,0,48,72,64, + 56,64,128,128,132,120,7,9,9,8,0,3,80,4,8,16, + 32,64,60,130,126,7,12,12,8,0,255,4,8,16,32,64, + 60,130,126,0,40,0,16,6,10,10,8,1,255,64,160,160, + 8,148,144,136,132,132,120,6,9,9,8,1,255,160,0,8, + 148,144,136,132,132,120,6,10,10,8,1,255,64,0,160,8, + 148,144,136,132,132,120,8,1,1,8,0,3,255,6,8,8, + 8,1,3,16,0,12,20,12,132,132,120,6,10,10,8,1, + 0,72,0,0,56,36,20,76,132,136,112,6,8,8,8,1, + 3,4,20,36,20,68,132,132,120,6,11,11,8,1,0,4, + 4,4,4,4,4,68,132,132,136,120,5,8,8,8,2,254, + 112,24,120,128,128,128,128,128,6,9,9,8,1,0,32,0, + 0,8,68,132,132,136,112,10,9,18,16,1,1,4,0,3, + 0,6,128,10,64,10,64,6,64,25,128,96,0,128,0,6, + 8,8,8,1,255,24,36,36,60,4,8,144,96,6,7,7, + 8,1,255,8,148,144,136,132,132,120,6,8,8,8,1,254, + 8,148,144,136,132,120,0,80,4,4,4,8,2,9,48,192, + 48,192,5,5,5,8,2,8,24,24,200,80,224,4,4,4, + 8,2,0,32,192,48,192,4,2,2,8,2,9,48,192,4, + 6,6,8,2,6,64,160,160,112,64,128,4,2,2,8,2, + 254,48,192,5,4,4,8,1,7,8,40,176,192,4,4,4, + 8,2,7,96,144,144,96,7,3,3,8,1,9,2,124,128, + 3,4,4,8,2,10,96,128,96,128,3,4,4,8,2,254, + 96,128,96,128,2,3,3,16,9,254,128,64,64,5,5,5, + 16,5,9,8,16,32,224,96,4,3,3,16,6,9,144,144, + 96,4,1,1,16,6,10,240,5,4,4,16,5,9,136,80, + 32,32,5,4,4,16,5,9,32,32,80,136,2,2,2,16, + 7,0,192,192,5,5,5,16,5,9,96,224,32,16,8,4, + 4,4,16,6,9,144,96,96,144,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,3,3,3, + 8,2,5,64,224,64,4,9,9,8,2,2,128,128,64,64, + 32,32,16,16,16,5,9,9,8,2,2,136,144,96,64,32, + 32,16,16,16,7,9,9,8,1,2,146,164,120,64,32,32, + 16,16,16,6,9,9,8,1,2,8,16,32,64,48,64,128, + 132,120,6,9,9,8,1,2,48,72,72,132,132,132,132,72, + 48,7,9,9,8,1,2,128,120,8,8,4,4,4,2,2, + 7,9,9,8,1,2,130,130,68,68,40,40,16,16,16,7, + 9,9,8,1,2,16,16,16,40,40,68,68,130,130,7,9, + 9,8,1,2,48,72,136,152,104,4,4,2,2,5,10,10, + 8,1,2,8,8,144,144,32,32,72,72,128,128,2,4,4, + 8,3,1,192,192,64,128,2,4,4,8,3,7,192,192,64, + 128,7,6,6,8,1,3,16,16,254,56,108,68,6,4,4, + 8,1,3,8,68,132,120,8,7,7,16,1,3,6,9,9, + 7,65,130,124,1,4,4,8,4,7,128,128,128,128,5,11, + 11,8,2,3,16,40,120,128,32,32,32,32,32,32,32,6, + 11,11,8,1,3,12,16,76,176,0,16,16,16,16,16,16, + 6,12,12,8,1,254,16,16,16,16,16,16,16,0,12,16, + 76,176,3,4,4,8,2,10,96,128,96,128,5,11,11,8, + 2,3,24,32,24,32,128,128,128,128,128,128,128,7,13,13, + 8,1,255,6,8,6,8,0,24,36,36,60,4,8,144,96, + 7,13,13,8,1,255,102,104,38,72,128,24,36,36,60,4, + 8,144,96,7,11,11,8,1,255,6,8,6,8,0,140,144, + 144,140,132,120,6,9,9,8,1,3,64,64,112,112,0,8, + 68,132,120,6,9,9,8,1,3,32,0,32,0,0,8,68, + 132,120,6,8,8,8,1,255,8,68,132,120,0,16,0,16, + 6,10,10,8,1,0,40,0,0,8,68,132,120,16,40,16, + 6,9,9,8,1,3,80,0,32,0,0,8,68,132,120,6, + 8,8,8,1,255,8,68,132,120,0,40,0,16,6,9,9, + 8,1,3,80,0,80,0,0,8,68,132,120,6,8,8,8, + 1,255,8,68,132,120,0,40,0,40,6,13,13,8,1,254, + 48,64,48,64,0,252,32,64,128,128,128,68,56,6,13,13, + 8,1,254,32,0,32,0,0,252,32,64,128,128,128,68,56, + 6,8,8,8,1,254,252,32,64,128,168,128,68,56,6,8, + 8,8,1,254,252,32,64,144,128,144,68,56,6,13,13,8, + 1,254,32,0,72,0,0,252,32,64,128,128,128,68,56,6, + 8,8,8,1,254,252,64,128,168,128,144,68,56,6,8,8, + 8,1,254,252,64,128,168,128,168,68,56,6,10,10,8,1, + 3,64,64,112,112,0,16,8,4,132,248,6,8,8,8,1, + 0,16,8,4,132,248,16,40,16,6,7,7,8,1,1,16, + 8,4,132,248,0,16,6,12,12,8,1,1,64,64,112,112, + 0,16,8,4,132,248,0,16,6,8,8,8,1,3,80,0, + 0,16,8,4,132,248,6,7,7,8,1,1,16,8,4,132, + 248,0,80,6,9,9,8,1,3,32,0,80,0,16,8,4, + 132,248,6,9,9,8,1,3,80,0,32,0,16,8,4,132, + 248,6,9,9,8,1,3,80,0,80,0,16,8,4,132,248, + 6,13,13,8,1,255,16,16,28,28,0,0,8,4,4,4, + 8,144,96,7,13,13,8,1,255,34,20,8,8,0,0,8, + 4,4,4,8,144,96,6,8,8,8,1,254,8,4,4,4, + 8,152,116,8,6,7,7,8,1,255,8,4,4,4,8,144, + 100,7,8,8,8,1,254,16,8,8,8,16,144,106,4,6, + 7,7,8,1,255,8,4,4,36,8,144,100,6,10,10,8, + 1,255,36,0,0,8,4,4,4,8,144,96,6,12,12,8, + 1,255,16,0,40,0,0,8,4,4,4,8,144,96,6,12, + 12,8,1,255,36,0,36,0,0,8,4,4,4,8,144,96, + 7,10,10,8,1,0,8,0,0,2,42,42,188,144,148,96, + 7,8,8,8,1,255,2,42,42,188,160,170,64,4,7,13, + 13,8,1,255,16,0,36,0,0,2,42,42,188,160,170,64, + 4,7,6,6,8,1,0,12,50,156,160,170,64,7,11,11, + 8,1,0,16,0,36,0,0,12,50,156,144,144,96,6,8, + 8,8,1,3,72,64,84,64,88,100,68,248,6,14,14,8, + 1,254,32,0,72,0,0,48,72,64,56,64,128,128,132,120, + 6,6,6,8,1,3,12,20,12,132,132,120,6,8,8,8, + 1,1,12,20,12,132,132,120,0,16,6,11,11,8,1,1, + 8,0,0,12,20,12,132,132,120,0,16,6,10,10,8,1, + 3,16,0,36,0,12,20,12,132,132,120,6,10,10,8,1, + 255,12,20,12,132,132,120,0,72,0,32,6,10,10,8,1, + 3,20,0,20,0,12,20,12,132,132,120,6,10,10,8,1, + 0,8,0,0,56,36,20,76,132,136,112,6,12,12,8,1, + 0,32,0,72,0,0,56,36,20,76,132,136,112,7,8,8, + 8,0,3,4,8,16,32,64,60,130,126,14,8,16,16,1, + 3,0,48,0,192,3,0,12,0,16,0,15,248,128,4,127, + 248,7,8,8,8,0,3,4,12,26,36,64,60,130,126,6, + 10,10,8,1,3,16,0,4,20,36,20,68,132,132,120,6, + 11,11,8,1,3,32,0,80,4,20,36,20,68,132,132,120, + 6,12,12,8,1,255,4,20,36,20,68,132,132,120,0,40, + 0,16,7,10,10,8,0,3,8,16,36,72,16,32,64,60, + 130,126,7,10,10,8,0,3,8,16,36,76,26,36,64,60, + 130,126,7,10,10,8,0,3,80,6,24,98,12,48,64,60, + 130,126,7,12,12,8,0,1,8,16,36,72,16,32,64,60, + 130,126,0,40,7,14,14,8,0,255,8,16,36,72,16,32, + 64,60,130,126,0,16,0,16,7,11,11,8,0,3,64,0, + 166,24,98,12,48,64,60,130,126,7,14,14,8,1,0,34, + 20,8,8,0,4,4,4,4,68,132,132,136,120,6,13,13, + 8,1,0,4,0,4,4,4,4,4,4,68,132,132,136,120, + 7,14,14,8,1,0,8,0,18,0,4,4,4,4,4,68, + 132,132,136,120,6,13,13,8,1,254,4,4,4,4,4,4, + 68,132,120,0,40,0,16,6,11,11,8,1,254,16,0,0, + 8,68,132,132,136,112,0,16,6,6,6,8,1,0,8,68, + 132,132,136,112,6,12,12,8,1,0,32,32,56,56,0,0, + 8,68,132,132,136,112,6,11,11,8,1,254,16,0,0,8, + 68,132,132,136,120,20,8,6,11,11,8,1,0,32,0,72, + 0,0,8,68,132,132,136,112,6,6,6,8,1,2,32,88, + 84,52,72,128,6,11,11,8,1,254,32,0,0,252,64,128, + 168,128,144,68,56,4,10,10,8,2,3,96,128,96,128,0, + 64,96,144,144,240,6,3,3,8,1,2,32,92,128,6,8, + 8,8,1,2,48,64,48,64,0,32,92,128,6,6,6,8, + 1,2,80,0,0,32,92,128,6,8,8,8,1,255,24,36, + 36,28,68,164,72,240,6,8,8,8,1,255,24,36,36,60, + 4,56,144,96,6,13,13,8,1,255,68,40,16,16,0,24, + 36,36,60,4,8,144,96,6,14,14,8,1,255,32,80,80, + 56,32,64,152,36,36,60,4,8,144,96,6,12,12,8,1, + 255,16,8,8,0,24,36,36,60,4,8,144,96,6,12,12, + 8,1,255,16,40,68,0,24,36,36,60,4,8,144,96,6, + 11,11,8,1,255,40,0,0,24,36,36,60,4,8,144,96, + 6,13,13,8,1,255,16,0,36,0,0,24,36,36,60,4, + 8,144,96,6,7,7,8,1,255,8,148,144,136,132,132,120, + 7,7,7,8,0,255,4,42,104,164,34,34,28,6,12,12, + 8,1,255,136,80,32,32,0,8,148,144,136,132,132,120,6, + 11,11,8,1,255,16,0,0,24,36,36,60,4,8,144,96, + 6,9,9,8,1,254,24,164,144,136,112,0,32,0,32,6, + 9,9,8,1,254,24,164,144,136,112,0,80,0,32,7,6, + 6,8,1,255,16,40,32,64,128,254,7,10,10,8,1,255, + 96,128,96,128,16,40,32,64,128,254,4,1,1,8,2,3, + 240,4,5,5,8,2,3,64,96,144,144,240,11,5,10,16, + 3,9,16,64,18,224,127,224,128,0,254,0,10,5,10,16, + 3,9,18,64,17,0,127,0,128,0,254,0,6,4,4,16, + 5,9,8,20,60,192,5,5,5,16,4,9,136,72,48,16, + 48,8,5,5,16,3,9,252,32,72,33,30,3,3,3,16, + 4,8,160,0,128,9,4,8,16,4,9,18,128,159,128,144, + 0,96,0,16,16,32,16,0,254,85,85,128,0,1,193,134, + 48,11,233,140,24,16,5,144,4,16,5,140,24,11,233,134, + 48,1,193,128,0,0,1,170,170,15,15,30,16,1,254,1, + 0,2,128,63,248,40,40,48,24,35,136,100,76,164,74,100, + 76,35,136,48,24,40,40,63,248,2,128,1,0,3,4,4, + 16,6,9,96,160,160,96,4,5,5,16,6,9,96,144,144, + 144,96,6,3,3,16,5,10,252,48,64,3,5,5,16,6, + 9,96,224,128,128,64,9,4,8,16,4,254,18,128,159,128, + 144,0,96,0,6,2,2,16,5,10,12,240,5,4,4,8, + 2,9,24,24,16,224,7,4,4,8,1,9,32,64,128,254, + 7,4,4,16,3,9,32,64,128,254,6,4,4,16,5,9, + 16,132,132,124,15,15,30,16,1,254,1,0,2,128,5,64, + 10,160,21,80,42,168,84,84,42,168,42,168,42,168,43,168, + 40,40,47,232,96,12,255,254,5,5,5,16,5,9,32,80, + 136,80,32,5,5,5,16,5,254,32,80,136,80,32,2,2, + 2,16,7,11,192,192,2,4,4,16,7,254,192,128,128,64, + 6,9,9,8,1,3,16,40,68,0,16,8,4,132,248,7, + 11,11,8,1,255,8,20,34,0,8,4,4,4,8,144,96, + 3,3,3,8,2,5,64,224,64,4,9,9,8,2,2,128, + 128,64,64,32,32,16,16,16,5,9,9,8,2,2,136,144, + 96,64,32,32,16,16,16,7,9,9,8,1,2,146,164,120, + 64,32,32,16,16,16,6,9,9,8,1,2,48,72,192,228, + 88,64,32,32,32,7,9,9,8,1,1,16,16,40,40,68, + 68,146,170,198,6,8,8,8,1,2,56,68,64,64,48,12, + 48,192,7,9,9,8,1,2,130,130,68,68,40,40,16,16, + 16,7,9,9,8,1,2,16,16,16,40,40,68,68,130,130, + 7,9,9,8,1,2,48,72,136,152,104,4,4,2,2,7, + 12,12,8,1,0,16,0,36,0,0,2,42,42,188,144,148, + 96,7,9,9,8,1,0,8,0,0,12,50,156,144,148,96, + 6,12,12,8,1,254,16,0,0,48,72,64,56,64,144,128, + 132,120,4,10,10,8,2,254,112,128,240,64,128,0,80,80, + 80,80,6,8,8,8,1,254,56,12,124,128,148,148,148,148, + 10,12,24,16,1,1,4,0,10,0,17,0,4,0,3,0, + 6,128,10,64,10,64,6,64,25,128,96,0,128,0}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 3, '1' Height: 12 + Calculated Max Values w=16 h=16 x=12 y=11 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent=-2 + X Font ascent =12 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[6498] U8G_SECTION(".progmem.u8g_font_unifont_18_19") = { + 0,16,16,0,254,3,7,129,10,5,0,255,254,14,254,12, + 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,8,4,4,16,4,9,152,91,35, + 28,2,2,2,16,7,11,192,192,2,5,5,16,12,3,192, + 192,0,192,192,14,15,30,16,2,255,32,0,31,0,0,128, + 57,252,68,192,4,192,12,192,56,192,8,192,135,192,134,192, + 78,192,60,192,0,192,0,64,15,12,24,16,1,255,57,254, + 68,192,4,192,12,192,56,192,8,192,135,192,134,192,78,192, + 60,192,0,192,0,64,15,12,24,16,1,255,57,254,68,204, + 4,204,12,204,56,204,8,204,135,204,134,204,78,204,60,204, + 0,204,0,68,16,13,26,16,0,254,255,255,0,192,0,192, + 15,192,24,0,24,0,15,224,0,48,3,48,5,176,7,224, + 0,64,0,32,16,16,32,16,0,254,3,192,6,32,1,0, + 255,255,0,192,0,192,15,192,24,0,24,0,15,224,0,48, + 3,48,5,176,7,224,0,64,0,32,16,12,24,16,0,255, + 255,255,1,128,0,192,0,192,1,192,15,128,65,128,64,192, + 32,192,16,192,9,192,7,128,16,12,24,16,0,255,255,255, + 1,128,0,192,0,192,1,192,15,156,65,178,64,226,32,194, + 16,198,9,196,7,128,16,13,26,16,0,254,255,255,1,128, + 57,128,101,152,3,152,7,248,31,136,57,136,33,156,1,184, + 1,160,0,160,0,30,16,12,24,16,0,255,255,255,0,32, + 0,32,56,32,116,248,99,204,99,12,48,12,16,120,12,192, + 2,128,0,124,16,16,32,16,0,254,0,152,0,112,0,0, + 255,255,12,48,12,48,12,48,12,48,12,96,4,0,2,0, + 1,128,0,96,0,16,0,24,0,24,16,16,32,16,0,254, + 16,0,15,224,0,16,255,255,12,48,12,48,12,48,12,48, + 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, + 16,13,26,16,0,254,255,255,12,48,12,48,12,48,12,48, + 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, + 16,16,32,16,0,254,15,0,0,128,0,64,255,255,12,48, + 12,48,12,48,12,48,12,96,4,0,2,0,1,128,0,96, + 0,16,0,24,0,24,15,15,30,16,1,255,0,76,0,60, + 0,0,57,254,68,204,4,204,12,204,56,204,8,204,135,204, + 134,204,78,204,60,204,0,204,0,68,15,15,30,16,1,255, + 2,0,1,240,0,8,57,254,68,204,4,204,12,204,56,204, + 8,204,135,204,134,204,78,204,60,204,0,204,0,68,15,15, + 30,16,1,255,1,192,0,32,0,16,57,254,68,204,4,204, + 12,204,56,204,8,204,135,204,134,204,78,204,60,204,0,204, + 0,68,15,15,30,16,1,255,0,224,1,208,0,40,57,254, + 68,204,4,204,12,204,56,204,8,204,135,204,134,204,78,204, + 60,204,0,204,0,68,16,12,24,16,0,255,255,255,1,128, + 1,128,29,128,51,224,35,144,39,152,29,152,1,152,1,152, + 1,128,0,128,16,12,24,16,0,255,255,255,8,24,8,24, + 9,216,59,56,58,24,18,56,17,216,8,24,6,24,1,152, + 0,8,16,12,24,16,0,255,255,255,1,152,1,152,1,152, + 1,152,7,152,3,152,1,152,0,152,0,24,0,24,0,8, + 16,12,24,16,0,255,255,255,12,24,12,24,7,216,2,24, + 4,24,4,56,4,120,3,216,0,24,0,24,0,8,16,11, + 22,16,0,0,255,255,0,96,0,96,15,224,24,0,24,4, + 15,206,0,100,16,96,8,96,7,192,16,12,24,16,0,255, + 255,255,0,24,0,24,0,24,31,248,3,24,6,56,6,120, + 3,216,0,24,0,24,0,8,16,13,26,16,0,254,255,255, + 0,16,0,16,60,120,112,228,96,196,32,68,31,44,12,24, + 24,56,24,100,7,134,0,6,16,12,24,16,0,255,255,255, + 0,24,0,24,0,24,3,248,17,152,8,216,8,216,7,152, + 0,24,0,24,0,8,16,12,24,16,0,255,255,255,3,24, + 3,24,31,24,48,24,48,24,31,248,1,24,13,24,22,24, + 29,24,0,136,16,12,24,16,0,255,255,255,0,24,0,24, + 7,24,5,152,33,184,33,248,33,216,19,152,15,24,0,24, + 0,8,16,11,22,16,0,0,255,255,0,192,0,192,0,192, + 7,192,12,0,24,0,24,0,24,0,12,16,7,224,16,12, + 24,16,0,255,255,255,1,128,1,128,1,128,3,128,7,96, + 12,16,8,24,8,24,8,56,4,112,3,224,16,11,22,16, + 0,0,255,255,0,24,0,24,3,248,6,0,6,0,3,240, + 0,24,4,24,2,24,1,240,16,12,24,16,0,255,255,255, + 0,96,0,96,7,224,12,0,24,0,24,192,25,160,9,16, + 5,16,3,48,1,224,16,12,24,16,0,255,255,255,25,152, + 25,152,25,152,25,152,25,152,9,152,7,24,0,24,0,24, + 0,24,0,8,16,12,24,16,0,255,255,255,0,24,0,24, + 0,24,7,248,14,24,12,24,12,24,6,24,2,24,1,24, + 0,136,13,12,24,16,3,255,227,248,216,192,204,192,76,192, + 28,192,120,192,97,192,35,192,30,192,0,192,0,192,0,64, + 16,12,24,16,0,255,255,255,0,24,0,24,0,24,1,248, + 2,0,6,0,6,24,2,40,1,240,0,8,0,4,13,12, + 24,16,3,255,115,248,200,192,192,192,192,192,96,192,28,192, + 48,192,96,192,97,192,99,192,30,192,0,64,16,12,24,16, + 0,255,255,255,0,24,0,24,0,24,7,248,6,24,6,24, + 2,24,0,24,0,24,0,24,0,8,16,12,24,16,0,255, + 255,255,0,24,0,24,0,24,7,248,6,24,6,24,2,24, + 0,24,1,24,3,152,1,8,16,12,24,16,0,255,255,255, + 6,24,6,24,6,24,6,24,6,24,2,56,1,216,0,24, + 0,24,0,24,0,8,16,12,24,16,0,255,255,255,49,128, + 49,128,49,128,49,240,49,200,19,132,15,132,1,132,1,140, + 1,140,0,128,16,12,24,16,0,255,255,255,0,24,0,24, + 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, + 0,8,14,12,24,16,2,255,227,252,216,96,200,96,76,96, + 60,96,12,96,31,224,28,96,12,96,0,96,0,96,0,32, + 16,12,24,16,0,255,255,255,6,24,6,24,6,24,6,24, + 6,24,15,248,6,24,2,24,0,24,0,24,0,8,16,12, + 24,16,0,255,255,255,3,24,3,24,3,24,3,24,6,24, + 4,56,4,120,3,216,0,24,0,24,0,8,16,12,24,16, + 0,255,255,255,0,192,0,192,0,192,3,192,3,128,3,128, + 1,0,0,128,0,64,0,32,0,24,16,12,24,16,0,255, + 255,255,0,192,0,192,0,192,3,192,3,128,3,128,1,0, + 0,128,4,64,14,32,4,24,16,12,24,16,0,255,255,255, + 0,24,0,24,28,56,58,248,49,216,49,152,24,24,8,24, + 4,24,3,24,0,8,16,11,22,16,0,0,255,255,0,48, + 0,48,0,112,14,200,25,140,49,140,49,140,49,152,19,112, + 14,0,16,13,26,16,0,254,255,255,0,48,0,48,0,112, + 14,200,25,140,49,140,49,140,49,152,19,112,14,0,0,192, + 0,192,16,12,24,16,0,255,255,255,0,24,0,24,3,216, + 15,56,12,24,12,56,4,120,3,216,0,24,0,24,0,8, + 16,12,24,16,0,255,255,255,6,24,6,24,31,24,1,152, + 1,152,25,152,21,24,30,24,2,24,1,24,0,136,16,12, + 24,16,0,255,255,255,12,24,14,24,13,24,12,152,12,88, + 12,56,6,56,1,216,0,24,0,24,0,8,16,12,24,16, + 0,255,255,255,3,24,3,24,3,24,11,24,15,24,14,248, + 4,24,4,24,2,24,1,24,0,136,16,12,24,16,0,255, + 255,255,0,24,0,24,7,248,12,0,12,0,6,240,1,152, + 3,16,3,0,1,128,0,252,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 2,2,2,16,7,255,192,192,9,11,22,16,7,0,63,128, + 64,0,64,0,96,0,48,0,24,0,8,0,12,0,12,0, + 156,0,120,0,6,13,13,16,10,254,252,48,48,48,48,48, + 48,48,48,48,48,48,16,8,14,14,16,0,0,60,98,49, + 252,48,48,48,48,48,48,48,48,48,16,9,16,32,16,7, + 254,120,0,132,0,132,0,31,128,6,0,6,0,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,2, + 0,6,3,3,16,4,255,152,68,56,6,3,3,16,6,255, + 112,136,100,4,3,3,16,6,255,96,128,112,3,5,5,16, + 6,255,96,128,96,128,96,5,3,3,16,5,10,136,72,48, + 5,3,3,16,4,10,128,112,8,5,3,3,16,4,10,224, + 16,8,6,4,4,16,3,9,112,8,228,28,6,16,16,16, + 10,254,136,120,0,252,48,48,48,48,48,48,48,48,48,48, + 48,16,8,16,16,16,8,254,128,120,4,63,12,12,12,12, + 12,12,12,12,12,12,12,4,8,16,16,16,8,254,240,8, + 4,63,12,12,12,12,12,12,12,12,12,12,12,4,9,16, + 32,16,7,254,120,0,244,0,10,0,31,128,6,0,6,0, + 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, + 6,0,2,0,5,3,3,16,6,255,224,16,8,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,14,14,28,16,1,0,0,96,0,96,0, + 0,113,8,248,240,4,0,4,24,24,60,48,36,8,36,132, + 124,135,216,121,128,48,0,1,3,3,16,8,10,128,128,128, + 4,1,1,16,6,0,240,3,3,3,16,6,10,128,64,32, + 3,3,3,16,7,10,32,64,128,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,16,13,26,16,0,254,255,255,0,192,0, + 192,14,192,25,248,17,200,19,204,14,204,0,204,0,204,4, + 192,14,64,4,0,16,13,26,16,0,254,255,255,8,24,8, + 24,9,216,59,56,58,24,18,56,17,216,8,24,4,24,0, + 152,1,200,0,128,16,13,26,16,0,254,255,255,1,152,1, + 152,1,152,1,152,7,152,3,152,1,152,0,152,0,24,0, + 152,1,200,0,128,16,13,26,16,0,254,255,255,0,24,0, + 24,0,24,3,248,17,152,8,216,8,216,7,152,0,24,0, + 152,1,200,0,128,16,13,26,16,0,254,255,255,0,24,0, + 24,3,248,6,0,6,0,3,240,0,24,4,24,3,240,0, + 0,0,192,0,192,16,13,26,16,0,254,255,255,0,96,0, + 96,7,224,12,0,24,224,25,144,25,16,13,48,7,224,0, + 0,1,128,1,128,16,13,26,16,0,254,255,255,49,128,49, + 128,49,128,49,240,49,200,19,132,15,132,1,132,1,140,9, + 140,28,128,8,0,16,13,26,16,0,254,255,255,3,24,3, + 24,3,24,3,24,6,24,4,56,4,120,3,216,0,24,1, + 24,3,136,1,0,16,13,26,16,0,254,255,255,3,0,3, + 0,51,24,75,40,7,240,15,24,51,8,67,24,3,48,3, + 28,1,16,0,14,16,13,26,16,0,254,255,255,0,32,0, + 32,30,112,49,152,49,152,16,48,8,96,4,192,0,60,0, + 192,0,192,0,60,8,5,5,16,4,255,72,146,130,68,3, + 8,6,6,16,4,254,72,146,132,67,4,3,2,12,12,16, + 7,255,128,192,192,192,192,192,192,192,192,192,192,64,5,12, + 12,16,6,255,144,216,216,216,216,216,216,216,216,216,216,72, + 8,7,7,16,4,2,60,78,199,195,227,114,60,6,13,13, + 16,5,254,112,232,204,204,76,60,24,48,96,32,16,8,4, + 9,13,26,16,4,254,252,0,226,0,1,0,1,0,1,0, + 3,0,54,0,44,0,56,0,4,0,2,0,1,0,0,128, + 8,13,13,16,4,254,252,226,2,2,60,2,1,51,46,60, + 4,2,1,12,12,24,16,2,255,128,16,64,48,32,96,16, + 192,9,128,7,0,6,0,13,0,9,128,9,128,9,128,7, + 0,8,13,13,16,4,254,192,195,195,67,62,12,12,104,88, + 120,4,2,1,8,13,13,16,4,254,60,192,128,192,124,16, + 32,35,51,15,4,4,2,11,11,22,16,3,0,128,0,135, + 0,142,192,140,64,68,96,67,224,64,32,32,32,32,64,24, + 192,7,0,10,10,20,16,3,1,255,192,32,0,64,0,128, + 0,128,0,131,0,135,128,124,128,56,128,0,128,8,12,12, + 16,4,255,56,100,98,97,32,56,72,192,192,192,32,31,5, + 4,4,16,6,3,112,136,136,112,2,2,2,16,8,6,192, + 192,15,15,30,16,1,255,2,0,1,32,0,192,57,254,68, + 192,4,192,12,192,56,192,8,192,135,192,134,192,78,192,60, + 192,0,192,0,64,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,16,12,24,16,0,255,255,255,1,152,1, + 152,1,152,1,152,7,152,3,152,1,152,0,152,0,24,0, + 24,15,248,16,12,24,16,0,255,255,255,0,24,0,24,0, + 24,3,248,17,152,8,216,8,216,7,152,0,24,0,24,31, + 248,8,13,13,16,4,254,124,226,193,1,1,3,62,60,48, + 48,48,48,16,16,13,26,16,0,254,255,255,0,24,0,24, + 3,248,6,0,6,0,3,240,0,24,4,24,2,24,1,240, + 0,0,15,254,16,12,24,16,0,255,255,255,0,24,0,24, + 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, + 15,248,6,14,14,8,1,255,168,84,168,84,168,84,168,84, + 168,84,168,84,168,84,6,4,4,16,5,9,48,180,132,120, + 5,8,8,16,11,0,96,144,96,0,192,96,48,8,4,7, + 7,16,11,1,96,144,96,0,96,144,96,6,14,14,8,1, + 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,16, + 12,24,16,0,255,255,255,0,12,64,12,67,140,71,204,71, + 236,99,44,32,108,48,124,24,220,15,140,0,4,16,13,26, + 16,0,255,0,6,255,247,0,110,64,102,70,102,79,102,79, + 102,69,102,65,102,97,102,51,230,30,102,0,34,16,15,30, + 16,0,255,32,0,31,192,0,32,255,255,0,0,15,192,24, + 96,60,48,60,48,24,48,0,96,63,192,7,0,1,192,0, + 124,16,15,30,16,0,255,32,0,31,240,0,8,255,255,30, + 0,63,12,59,30,25,56,1,248,1,240,3,144,79,16,60, + 16,16,24,0,14,16,15,30,16,0,255,16,0,15,224,0, + 16,255,255,3,0,3,0,67,0,67,16,67,56,99,108,33, + 204,48,12,24,12,14,24,3,240,16,15,30,16,0,255,16, + 0,15,224,0,16,255,255,3,0,3,0,83,0,83,16,83, + 56,83,108,73,204,40,12,36,12,18,24,15,240,15,14,28, + 16,1,255,64,0,228,0,230,206,133,204,121,204,3,204,14, + 204,120,204,96,236,120,252,14,220,3,204,1,204,0,68,14, + 14,28,16,1,255,64,0,128,0,128,0,64,0,127,192,31, + 240,0,56,15,12,24,140,56,76,56,76,56,76,16,216,3, + 240,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,14,13,26,16,1,255,0, + 48,0,248,1,140,3,12,135,140,135,140,131,12,128,12,192, + 12,64,108,96,156,51,12,14,4,14,15,30,16,1,255,0, + 8,0,16,0,16,0,216,3,236,6,52,140,52,158,52,158, + 52,140,56,192,48,65,176,98,112,60,48,24,16,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,14,13,26,16,1,255,0,240,3,24,6, + 12,14,12,142,12,134,120,192,248,64,120,96,12,48,12,24, + 12,12,24,7,240,14,15,30,16,1,255,0,8,0,16,0, + 16,7,216,8,108,28,52,28,52,156,52,137,228,131,248,193, + 224,64,48,96,48,48,112,31,224,16,12,24,16,0,255,255, + 255,0,96,0,96,1,248,7,100,60,98,48,98,60,110,7, + 108,1,224,0,224,0,32,14,13,26,16,2,255,64,0,226, + 60,227,48,197,48,121,48,1,48,6,48,120,48,126,48,1, + 176,0,112,0,48,0,16,14,12,24,16,2,255,62,124,113, + 96,224,224,224,96,252,96,70,96,6,96,6,96,28,96,120, + 96,32,96,0,32,16,12,24,16,0,255,255,255,24,24,48, + 24,56,24,31,152,1,152,6,24,12,24,31,24,1,216,0, + 56,0,8,12,13,26,16,2,255,32,0,35,192,22,64,12, + 64,15,128,140,0,136,32,136,112,199,176,64,48,96,48,48, + 96,31,128,16,12,24,16,0,255,255,255,24,0,24,0,28, + 0,27,0,24,252,24,12,24,12,24,12,24,24,28,48,15, + 192,16,12,24,16,0,255,255,255,24,0,24,0,28,0,27, + 224,24,56,24,104,28,200,15,16,0,96,1,248,0,14,16, + 12,24,16,0,255,255,255,1,240,3,28,70,15,76,2,76, + 196,79,36,102,44,32,44,48,100,24,196,15,131,16,12,24, + 16,0,255,255,231,0,102,0,102,1,230,7,102,60,102,48, + 102,60,102,7,126,1,238,0,230,0,34,14,13,26,16,1, + 255,7,0,13,128,25,176,49,248,57,204,185,140,145,184,129, + 140,193,204,199,248,111,176,121,128,48,128,16,15,30,16,0, + 255,16,0,15,192,0,32,255,255,24,0,24,0,24,0,24, + 96,24,240,24,112,24,48,24,96,24,192,15,128,7,0,16, + 15,30,16,0,255,16,0,15,0,0,128,255,255,0,128,0, + 128,0,192,1,192,1,96,35,48,58,24,20,24,24,24,12, + 48,7,224,16,12,24,16,0,255,255,255,3,0,3,0,67, + 0,67,16,67,56,99,108,33,204,48,12,24,12,14,24,3, + 240,16,12,24,16,0,255,255,255,24,0,24,0,24,0,24, + 96,24,240,24,112,24,48,24,96,24,192,15,128,7,0,13, + 13,26,16,3,255,28,96,62,120,97,96,192,224,192,224,224, + 96,224,96,64,96,0,96,0,96,0,96,0,96,0,32,16, + 12,24,16,0,255,255,255,0,0,65,248,67,12,67,132,67, + 134,99,134,33,6,48,6,24,12,12,28,7,240,15,13,26, + 16,1,255,60,0,98,62,241,48,241,48,97,48,1,48,6, + 48,120,48,126,48,1,176,0,112,0,48,0,16,16,12,24, + 16,0,255,255,255,12,0,12,0,12,120,12,240,13,224,13, + 96,15,96,14,96,14,96,12,48,8,28,12,13,26,16,4, + 255,96,0,240,240,224,192,128,192,99,192,30,192,56,192,224, + 192,248,192,14,192,3,192,1,192,0,64,16,12,24,16,0, + 255,255,255,0,24,0,24,0,24,0,24,30,24,63,152,60, + 216,56,120,0,56,0,24,0,8,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,15,13,26, + 16,1,255,14,48,31,190,48,240,96,112,240,240,155,176,14, + 48,24,48,32,48,0,48,0,48,0,48,0,16,16,12,24, + 16,0,255,255,255,16,0,56,120,12,100,6,98,12,98,24, + 110,48,108,63,96,1,224,0,96,0,32,16,12,24,16,0, + 255,255,255,0,24,0,24,0,120,3,216,7,24,28,24,31, + 24,1,216,0,120,0,56,0,8,16,12,24,16,0,255,255, + 255,0,0,66,16,71,8,71,12,70,20,99,230,32,6,48, + 6,24,12,12,28,7,240,16,12,24,16,0,255,255,255,12, + 24,28,24,14,24,3,24,3,24,3,24,15,216,30,120,12, + 56,0,24,0,8,16,12,24,16,0,255,255,255,8,48,28, + 48,6,48,3,48,6,48,12,48,24,48,31,176,0,240,0, + 48,0,16,16,12,24,16,0,255,255,255,0,24,0,120,3, + 216,7,24,28,24,31,24,1,216,2,120,7,56,7,24,2, + 8,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,16,12,24,16,0,255,255,255,0,6,0, + 6,28,22,62,62,99,102,65,198,65,198,64,134,124,6,60, + 6,24,2,6,14,14,8,1,255,168,84,168,84,168,84,168, + 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, + 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, + 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,15, + 13,26,16,1,255,112,204,249,238,143,60,143,28,31,140,63, + 204,25,140,0,12,0,12,0,12,0,12,0,12,0,4,16, + 12,24,16,0,255,255,255,28,24,14,24,7,152,1,216,6, + 120,28,24,31,24,1,216,0,120,0,56,0,8,16,12,24, + 16,0,255,255,255,16,12,56,12,28,12,6,12,2,204,1, + 236,3,28,102,12,60,12,24,12,0,4,16,12,24,16,0, + 255,255,255,0,0,15,192,24,96,60,48,60,48,24,48,0, + 96,63,192,7,0,1,192,0,124,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,2,2,2,16,7,255,192,192,14,12,24,16,0,255,240, + 0,8,0,15,192,28,96,60,48,60,48,24,48,0,96,63, + 192,7,0,1,192,0,124,5,10,10,16,11,255,48,184,112, + 48,48,48,48,48,48,16,13,14,28,16,0,255,15,128,63, + 224,96,16,96,8,32,0,248,0,48,0,48,0,48,0,48, + 0,48,0,48,0,48,0,16,0,12,14,28,16,4,255,63, + 0,65,128,128,192,190,64,65,64,1,240,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,64,6,5,5,16,5, + 254,4,104,144,104,4,6,5,5,16,6,254,96,128,112,8, + 4,5,5,5,16,5,254,24,96,128,96,24,3,5,5,16, + 6,255,96,128,96,128,64,6,14,14,8,1,255,168,84,168, + 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, + 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,5, + 9,9,16,0,255,248,24,48,96,64,64,64,88,56,5,12, + 12,16,0,255,128,112,8,248,24,48,96,64,64,64,88,56, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,16,10,20,16,0,255,0,6, + 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, + 56,2,16,13,26,16,0,255,0,128,0,112,0,8,0,4, + 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, + 56,2,5,3,3,16,6,0,192,48,8,8,12,12,16,4, + 255,56,92,204,236,216,192,96,56,12,6,3,1,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,8,13,13, + 16,8,255,128,112,8,4,23,14,6,6,6,6,6,6,2, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 16,13,26,16,0,254,255,255,3,0,67,16,67,56,99,108, + 35,204,49,140,24,12,14,24,3,240,0,0,0,192,0,192, + 16,13,26,16,0,254,255,255,12,0,12,0,12,0,12,48, + 12,120,12,56,12,48,7,224,3,192,0,0,1,128,1,128, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,16,13,26,16,0,254,255,255,4,24,14,24, + 3,24,1,152,3,24,6,24,12,24,15,216,0,120,1,24, + 3,136,1,0,15,15,30,16,1,254,64,0,228,0,230,206, + 133,204,121,204,3,204,14,204,120,204,96,236,120,252,14,220, + 123,204,97,204,120,68,14,0,8,14,14,16,4,255,128,124, + 3,121,197,205,158,128,124,3,121,197,205,158,7,5,5,16, + 5,255,124,2,114,202,220,10,6,12,16,5,255,3,128,112, + 64,10,64,77,64,173,128,176,0,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,10,11,22,16,3,0,30,0,63,0,97,128,192,192,192, + 192,192,192,192,192,192,192,97,128,63,0,30,0,9,12,24, + 16,4,0,64,0,64,0,96,0,56,0,14,0,3,0,1, + 128,97,128,225,128,225,128,195,0,126,0,10,11,22,16,3, + 0,224,0,56,0,14,0,3,0,3,0,227,0,126,0,28, + 0,6,0,1,128,0,64,12,12,24,16,2,255,131,192,132, + 96,136,48,140,48,142,48,142,48,134,48,64,48,64,96,32, + 96,17,192,15,0,11,13,26,16,2,255,31,0,63,128,96, + 192,64,64,96,192,49,128,31,0,96,192,192,96,192,96,224, + 224,127,192,31,0,11,13,26,16,2,255,7,0,30,0,57, + 96,112,192,97,128,195,0,198,0,198,0,198,0,198,0,99, + 96,48,192,31,128,12,12,24,16,2,255,28,0,12,0,12, + 0,140,0,140,96,140,160,141,176,199,48,64,48,96,48,48, + 96,31,192,9,13,26,16,4,255,60,0,126,0,195,0,195, + 0,199,0,127,0,59,0,3,0,3,0,3,0,3,0,3, + 0,1,128,13,13,26,16,1,255,224,0,96,0,96,0,96, + 8,103,240,127,192,112,96,96,96,96,96,96,96,112,192,63, + 128,30,0,12,15,30,16,2,254,128,0,128,0,96,0,60, + 0,15,0,3,192,0,224,0,48,60,48,66,48,225,48,225, + 48,225,96,65,192,1,0,16,12,24,16,0,255,255,255,0, + 24,0,24,0,120,3,216,7,152,28,120,31,24,1,216,0, + 120,0,56,0,8,16,13,26,16,0,254,255,255,0,24,0, + 24,0,120,3,216,7,24,28,24,31,24,1,216,28,120,7, + 56,1,136,0,64,9,8,16,16,3,3,224,0,248,0,124, + 0,14,0,3,0,1,0,0,128,0,128,12,13,26,16,1, + 255,48,0,120,0,204,0,12,0,31,240,12,0,12,96,12, + 240,12,240,12,48,12,96,7,192,3,128,9,8,16,16,3, + 2,0,128,0,128,1,0,3,0,14,0,124,0,248,0,224, + 0,12,9,18,16,2,2,56,16,124,16,226,32,242,96,242, + 192,98,192,7,128,15,0,14,0,12,13,26,16,2,255,0, + 16,0,16,0,16,56,16,124,16,126,16,62,16,6,48,12, + 96,248,224,193,192,127,128,30,0,2,13,13,16,8,255,128, + 192,192,192,192,192,192,192,192,192,192,192,64,11,13,26,16, + 2,255,224,0,96,0,96,192,97,192,99,192,98,192,102,192, + 108,192,120,192,112,192,96,192,0,192,0,96,11,10,20,16, + 3,1,31,0,63,128,96,192,192,96,192,96,192,96,192,96, + 96,192,63,128,31,0,14,9,18,16,1,255,0,4,2,4, + 135,8,135,8,66,16,96,48,48,96,31,192,15,0,6,14, + 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, + 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, + 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, + 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, + 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, + 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, + 168,84}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 8 + Calculated Max Values w=16 h=16 x= 4 y= 1 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent= 0 + X Font ascent =14 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[4628] U8G_SECTION(".progmem.u8g_font_unifont_2_3") = { + 0,16,16,0,254,10,4,220,7,27,0,255,0,14,254,14, + 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,6,11,11,8,1,0,120,0,0, + 120,132,4,124,132,132,140,116,6,14,14,8,1,0,132,132, + 120,0,48,72,72,132,132,252,132,132,132,132,6,13,13,8, + 1,0,132,132,120,0,0,120,132,4,124,132,132,140,116,7, + 12,12,8,1,254,48,72,72,132,132,252,132,132,132,132,8, + 6,7,10,10,8,1,254,120,132,4,124,132,132,140,116,8, + 6,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, + 128,128,132,132,120,6,12,12,8,1,0,24,96,0,0,120, + 132,128,128,128,128,132,120,6,14,14,8,1,0,48,72,0, + 0,120,132,132,128,128,128,128,132,132,120,6,12,12,8,1, + 0,48,72,0,0,120,132,128,128,128,128,132,120,6,14,14, + 8,1,0,32,32,0,0,120,132,132,128,128,128,128,132,132, + 120,6,12,12,8,1,0,32,32,0,0,120,132,128,128,128, + 128,132,120,6,14,14,8,1,0,72,48,0,0,120,132,132, + 128,128,128,128,132,132,120,6,12,12,8,1,0,72,48,0, + 0,120,132,128,128,128,128,132,120,6,14,14,8,1,0,144, + 96,0,0,240,136,132,132,132,132,132,132,136,240,6,14,14, + 8,1,0,72,48,0,4,4,4,116,140,132,132,132,132,140, + 116,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, + 120,7,12,12,8,1,0,4,30,4,4,116,140,132,132,132, + 132,140,116,6,13,13,8,1,0,120,0,0,252,128,128,128, + 248,128,128,128,128,252,6,11,11,8,1,0,120,0,0,120, + 132,132,252,128,128,132,120,6,14,14,8,1,0,132,132,120, + 0,252,128,128,128,248,128,128,128,128,252,6,12,12,8,1, + 0,132,132,120,0,120,132,132,252,128,128,132,120,6,14,14, + 8,1,0,32,32,0,0,252,128,128,128,248,128,128,128,128, + 252,6,12,12,8,1,0,32,32,0,0,120,132,132,252,128, + 128,132,120,6,12,12,8,1,254,252,128,128,128,248,128,128, + 128,128,252,16,12,6,10,10,8,1,254,120,132,132,252,128, + 128,132,120,32,24,6,14,14,8,1,0,72,48,0,0,252, + 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,72, + 48,0,0,120,132,132,252,128,128,132,120,6,14,14,8,1, + 0,48,72,0,0,120,132,132,128,128,156,132,132,140,116,6, + 14,14,8,1,254,48,72,0,4,116,136,136,136,112,64,120, + 132,132,120,6,14,14,8,1,0,132,132,120,0,120,132,132, + 128,128,156,132,132,140,116,6,15,15,8,1,254,132,132,120, + 0,4,116,136,136,136,112,64,120,132,132,120,6,14,14,8, + 1,0,32,32,0,0,120,132,132,128,128,156,132,132,140,116, + 6,14,14,8,1,254,32,32,0,4,116,136,136,136,112,64, + 120,132,132,120,6,12,12,8,1,254,120,132,132,128,128,156, + 132,132,140,116,16,96,6,14,14,8,1,254,24,32,0,4, + 116,136,136,136,112,64,120,132,132,120,6,14,14,8,1,0, + 48,72,0,0,132,132,132,132,252,132,132,132,132,132,6,14, + 14,8,1,0,96,144,0,128,128,128,184,196,132,132,132,132, + 132,132,8,10,10,8,0,0,66,66,255,66,66,126,66,66, + 66,66,7,11,11,8,0,1,64,240,64,64,92,98,66,66, + 66,66,66,6,14,14,8,1,0,100,152,0,0,124,16,16, + 16,16,16,16,16,16,124,6,12,12,8,1,0,100,152,0, + 0,48,16,16,16,16,16,16,124,5,13,13,8,2,0,240, + 0,0,248,32,32,32,32,32,32,32,32,248,5,11,11,8, + 2,0,240,0,0,96,32,32,32,32,32,32,248,6,14,14, + 8,1,0,132,132,120,0,124,16,16,16,16,16,16,16,16, + 124,6,12,12,8,1,0,132,132,120,0,48,16,16,16,16, + 16,16,124,5,12,12,8,2,254,248,32,32,32,32,32,32, + 32,32,248,32,24,5,13,13,8,2,254,32,32,0,96,32, + 32,32,32,32,32,248,32,24,5,14,14,8,2,0,32,32, + 0,0,248,32,32,32,32,32,32,32,32,248,5,8,8,8, + 2,0,96,32,32,32,32,32,32,248,6,10,10,8,1,0, + 132,132,132,132,132,132,4,4,132,120,5,14,14,8,2,254, + 136,136,0,0,136,136,136,136,136,136,104,8,136,112,7,14, + 14,8,1,0,24,36,0,0,62,8,8,8,8,8,8,136, + 136,112,6,14,14,8,1,254,24,36,0,0,24,8,8,8, + 8,8,8,8,144,96,7,12,12,8,0,254,66,68,72,80, + 96,96,80,72,68,66,32,192,7,12,12,8,0,254,64,64, + 68,72,80,96,80,72,68,66,32,192,6,8,8,8,1,0, + 132,136,144,224,224,144,136,132,6,14,14,8,1,0,48,192, + 0,0,128,128,128,128,128,128,128,128,128,252,5,14,14,8, + 2,0,48,192,0,0,96,32,32,32,32,32,32,32,32,248, + 6,12,12,8,1,254,128,128,128,128,128,128,128,128,128,252, + 16,96,5,12,12,8,2,254,96,32,32,32,32,32,32,32, + 32,248,32,192,6,14,14,8,1,0,72,48,0,0,128,128, + 128,128,128,128,128,128,128,252,5,14,14,8,2,0,144,96, + 0,0,96,32,32,32,32,32,32,32,32,248,6,10,10,8, + 1,0,128,128,128,128,136,136,128,128,128,252,5,10,10,8, + 1,0,96,32,32,32,40,40,32,32,32,248,7,10,10,8, + 0,0,64,64,72,80,96,192,64,64,64,126,5,10,10,8, + 2,0,96,32,40,48,96,160,32,32,32,248,6,14,14,8, + 1,0,24,96,0,0,132,196,196,164,164,148,148,140,140,132, + 6,12,12,8,1,0,24,96,0,0,184,196,132,132,132,132, + 132,132,7,12,12,8,0,254,66,98,98,82,82,74,74,70, + 70,66,32,192,7,10,10,8,0,254,92,98,66,66,66,66, + 66,66,32,192,6,14,14,8,1,0,72,48,0,0,132,196, + 196,164,164,148,148,140,140,132,6,12,12,8,1,0,72,48, + 0,0,184,196,132,132,132,132,132,132,6,13,13,8,1,0, + 192,64,64,128,0,184,196,132,132,132,132,132,132,6,10,10, + 8,1,0,184,196,132,132,132,132,132,132,132,152,6,10,10, + 8,1,254,184,196,132,132,132,132,132,132,4,24,6,13,13, + 8,1,0,120,0,0,120,132,132,132,132,132,132,132,132,120, + 6,11,11,8,1,0,120,0,0,120,132,132,132,132,132,132, + 120,6,14,14,8,1,0,132,132,120,0,120,132,132,132,132, + 132,132,132,132,120,6,12,12,8,1,0,132,132,120,0,120, + 132,132,132,132,132,132,120,7,14,14,8,1,0,102,136,0, + 0,120,132,132,132,132,132,132,132,132,120,7,12,12,8,1, + 0,102,136,0,0,120,132,132,132,132,132,132,120,7,10,10, + 8,1,0,110,144,144,144,156,144,144,144,144,110,7,8,8, + 8,1,0,108,146,146,158,144,144,146,108,6,14,14,8,1, + 0,24,96,0,0,248,132,132,132,248,144,136,136,132,132,6, + 12,12,8,1,0,24,96,0,0,184,196,132,128,128,128,128, + 128,7,12,12,8,0,254,124,66,66,66,124,72,68,68,66, + 66,32,192,7,10,10,8,0,254,92,98,66,64,64,64,64, + 64,32,192,6,14,14,8,1,0,72,48,0,0,248,132,132, + 132,248,144,136,136,132,132,6,12,12,8,1,0,72,48,0, + 0,184,196,132,128,128,128,128,128,6,14,14,8,1,0,24, + 96,0,0,120,132,132,128,96,24,4,132,132,120,6,12,12, + 8,1,0,24,96,0,0,120,132,128,96,24,132,132,120,6, + 14,14,8,1,0,48,72,0,0,120,132,132,128,96,24,4, + 132,132,120,6,12,12,8,1,0,48,72,0,0,120,132,128, + 96,24,4,132,120,6,12,12,8,1,254,120,132,132,128,96, + 24,4,132,132,120,16,96,6,10,10,8,1,254,120,132,128, + 96,24,4,132,120,16,96,6,14,14,8,1,0,72,48,0, + 0,120,132,132,128,96,24,4,132,132,120,6,12,12,8,1, + 0,72,48,0,0,120,132,128,96,24,4,132,120,7,12,12, + 8,1,254,254,16,16,16,16,16,16,16,16,16,16,96,5, + 12,12,8,1,254,32,32,248,32,32,32,32,32,32,24,16, + 96,7,14,14,8,1,0,72,48,0,0,254,16,16,16,16, + 16,16,16,16,16,5,14,14,8,1,0,72,48,0,0,32, + 32,248,32,32,32,32,32,32,24,7,10,10,8,1,0,254, + 16,16,20,24,48,80,16,16,16,5,10,10,8,1,0,32, + 32,248,32,40,48,96,160,32,24,6,14,14,8,1,0,100, + 152,0,0,132,132,132,132,132,132,132,132,132,120,6,12,12, + 8,1,0,100,152,0,0,132,132,132,132,132,132,140,116,6, + 13,13,8,1,0,120,0,0,132,132,132,132,132,132,132,132, + 132,120,6,11,11,8,1,0,120,0,0,132,132,132,132,132, + 132,140,116,6,14,14,8,1,0,132,132,120,0,132,132,132, + 132,132,132,132,132,132,120,6,13,13,8,1,0,132,132,120, + 0,0,132,132,132,132,132,132,140,116,6,14,14,8,1,0, + 48,72,48,0,132,132,132,132,132,132,132,132,132,120,6,12, + 12,8,1,0,48,72,48,0,132,132,132,132,132,132,140,116, + 7,14,14,8,1,0,102,136,0,0,132,132,132,132,132,132, + 132,132,132,120,7,12,12,8,1,0,102,136,0,0,132,132, + 132,132,132,132,140,116,6,12,12,8,1,254,132,132,132,132, + 132,132,132,132,132,120,32,24,7,10,10,8,1,254,132,132, + 132,132,132,132,140,116,8,6,6,14,14,8,1,0,48,72, + 0,0,132,132,132,132,180,180,204,204,132,132,7,12,12,8, + 1,0,48,72,0,0,130,146,146,146,146,146,146,108,7,14, + 14,8,1,0,48,72,0,0,130,130,68,68,40,16,16,16, + 16,16,6,14,14,8,1,254,48,72,0,0,132,132,132,132, + 132,76,52,4,4,120,7,14,14,8,1,0,72,72,0,0, + 130,130,68,68,40,16,16,16,16,16,6,14,14,8,1,0, + 24,96,0,0,252,4,4,8,16,32,64,128,128,252,6,12, + 12,8,1,0,24,96,0,0,252,4,8,16,32,64,128,252, + 6,14,14,8,1,0,32,32,0,0,252,4,4,8,16,32, + 64,128,128,252,6,12,12,8,1,0,32,32,0,0,252,4, + 8,16,32,64,128,252,6,14,14,8,1,0,72,48,0,0, + 252,4,4,8,16,32,64,128,128,252,6,12,12,8,1,0, + 72,48,0,0,252,4,8,16,32,64,128,252,4,11,11,8, + 2,0,48,64,64,64,192,64,64,64,64,64,64,7,11,11, + 8,0,0,64,240,64,92,98,66,66,66,66,98,92,7,10, + 10,8,0,0,124,162,162,34,60,34,34,34,34,60,6,10, + 10,8,1,0,252,128,128,128,248,132,132,132,132,248,6,10, + 10,8,1,0,252,128,128,184,196,132,132,132,196,184,6,10, + 10,8,1,0,192,64,64,64,120,68,68,68,68,120,6,8, + 8,8,1,0,192,64,64,64,120,68,68,120,6,10,10,8, + 1,0,120,132,132,4,4,4,4,132,132,248,7,12,12,8, + 1,0,6,8,120,136,136,128,128,128,128,136,136,112,7,10, + 10,8,1,0,6,8,120,136,128,128,128,128,136,112,7,10, + 10,8,0,0,120,68,66,66,242,66,66,66,68,120,7,10, + 10,8,0,0,120,164,162,34,34,34,34,34,36,56,6,10, + 10,8,1,0,252,4,4,4,124,132,132,132,132,124,6,10, + 10,8,1,0,252,4,4,116,140,132,132,132,140,116,6,10, + 10,8,1,254,120,132,132,132,132,72,48,8,8,112,6,10, + 10,8,1,0,252,4,4,4,124,4,4,4,4,252,6,10, + 10,8,1,0,48,72,132,4,4,252,132,132,72,48,6,10, + 10,8,1,0,120,132,132,128,112,128,128,132,132,120,7,11, + 11,8,1,255,62,32,32,32,60,32,32,32,32,32,192,5, + 12,12,8,1,255,24,32,32,32,248,32,32,32,32,32,32, + 192,7,11,11,8,1,0,6,120,136,136,128,128,184,136,136, + 152,104,6,10,10,8,1,0,132,132,132,72,72,48,48,72, + 72,48,6,11,11,8,1,0,128,128,128,128,228,148,148,148, + 148,148,136,5,10,10,8,1,0,224,32,32,32,32,32,32, + 32,32,24,5,10,10,8,2,0,248,32,32,32,248,32,32, + 32,32,248,6,10,10,8,1,0,140,148,160,160,192,192,160, + 144,136,132,6,11,11,8,1,0,96,128,128,136,144,160,192, + 160,144,136,132,5,10,10,8,2,0,96,32,32,32,248,32, + 32,32,32,248,6,10,10,8,1,0,72,80,32,96,144,48, + 72,72,132,132,7,10,10,8,1,0,146,146,146,146,146,146, + 146,146,146,110,7,11,11,8,0,255,34,34,50,50,42,42, + 38,38,34,34,192,6,10,10,8,1,254,184,196,132,132,132, + 132,132,132,4,4,6,10,10,8,1,0,120,132,132,132,252, + 132,132,132,132,120,6,11,11,8,1,0,4,116,136,136,136, + 136,136,136,136,136,112,6,9,9,8,1,0,4,116,136,136, + 136,136,136,136,112,6,12,12,8,1,254,108,148,148,148,148, + 148,148,148,148,100,4,4,6,10,10,8,1,254,108,148,148, + 148,148,148,148,100,4,4,7,10,10,8,1,0,124,162,162, + 34,60,32,32,32,32,32,7,11,11,8,1,254,6,184,200, + 136,136,136,136,200,176,128,128,7,10,10,8,1,0,224,64, + 120,68,68,120,80,72,68,66,6,10,10,8,1,0,120,132, + 132,4,24,96,128,132,132,120,6,8,8,8,1,0,120,132, + 4,24,96,128,132,120,6,10,10,8,1,0,252,128,64,32, + 16,16,32,64,128,252,5,12,12,8,1,255,64,160,160,96, + 32,32,32,32,32,32,32,24,5,12,12,8,1,254,32,32, + 248,32,32,32,32,32,32,24,8,48,7,10,10,8,1,0, + 126,144,144,16,16,16,16,16,16,16,5,11,11,8,1,0, + 24,32,32,32,248,32,32,32,32,32,24,7,11,11,8,1, + 255,254,16,16,16,16,16,16,16,16,16,12,7,12,12,8, + 1,0,2,2,140,136,136,136,136,136,136,136,136,112,7,10, + 10,8,1,0,2,2,140,136,136,136,136,136,152,104,6,10, + 10,8,1,0,132,72,72,132,132,132,132,132,72,48,6,10, + 10,8,1,0,152,132,132,132,132,132,132,136,144,96,7,10, + 10,8,1,0,98,162,34,20,20,8,8,8,8,8,7,11, + 11,8,1,254,6,136,136,136,136,136,72,56,8,8,112,6, + 10,10,8,1,0,252,4,8,16,120,32,64,128,128,252,6, + 8,8,8,1,0,252,8,16,120,32,64,128,252,6,10,10, + 8,1,0,252,8,16,32,56,4,4,4,140,120,6,10,10, + 8,1,0,252,64,32,16,112,128,128,128,196,120,6,10,10, + 8,1,254,248,64,32,16,112,128,128,128,132,120,6,10,10, + 8,1,254,124,8,16,56,4,4,120,128,132,120,6,10,10, + 8,1,0,120,132,132,8,16,252,64,128,128,252,6,10,10, + 8,1,0,252,64,64,64,120,4,4,4,132,120,6,8,8, + 8,1,0,252,64,64,120,4,4,132,120,5,10,10,8,1, + 0,32,32,248,32,32,48,8,8,136,112,6,10,10,8,1, + 254,184,196,132,132,136,144,160,192,128,128,1,11,11,8,3, + 0,128,128,128,128,128,128,128,128,128,128,128,3,11,11,8, + 2,0,160,160,160,160,160,160,160,160,160,160,160,5,11,11, + 8,1,0,32,32,32,32,248,32,248,32,32,32,32,1,10, + 10,8,4,0,128,128,128,128,128,128,128,0,128,128,7,14, + 14,8,1,0,10,4,0,0,206,162,162,162,164,164,168,168, + 168,206,7,12,12,8,1,0,10,4,192,160,174,162,162,164, + 164,168,168,206,7,12,12,8,1,0,10,36,32,32,110,162, + 162,164,164,168,168,110,7,10,10,8,1,0,142,130,130,130, + 130,130,130,146,146,236,7,13,13,8,1,254,2,130,128,134, + 130,130,130,130,130,130,242,4,24,8,13,13,8,0,254,1, + 97,32,35,33,33,33,33,33,33,249,2,12,7,10,10,8, + 1,0,150,146,146,210,210,178,178,154,154,148,7,13,13,8, + 1,254,2,146,144,214,210,210,178,178,178,146,146,36,24,7, + 13,13,8,1,254,2,2,0,166,210,146,146,146,146,146,146, + 36,24,6,14,14,8,1,0,72,48,0,0,48,72,72,132, + 132,252,132,132,132,132,6,12,12,8,1,0,72,48,0,0, + 120,132,4,124,132,132,140,116,5,14,14,8,2,0,144,96, + 0,0,248,32,32,32,32,32,32,32,32,248,5,12,12,8, + 2,0,144,96,0,0,96,32,32,32,32,32,32,248,6,14, + 14,8,1,0,72,48,0,0,120,132,132,132,132,132,132,132, + 132,120,6,12,12,8,1,0,72,48,0,0,120,132,132,132, + 132,132,132,120,6,14,14,8,1,0,72,48,0,0,132,132, + 132,132,132,132,132,132,132,120,6,12,12,8,1,0,72,48, + 0,0,132,132,132,132,132,132,140,116,6,14,14,8,1,0, + 120,0,72,0,132,132,132,132,132,132,132,132,132,120,6,13, + 13,8,1,0,120,0,72,72,0,132,132,132,132,132,132,140, + 116,6,14,14,8,1,0,24,96,0,72,0,132,132,132,132, + 132,132,132,132,120,6,14,14,8,1,0,24,96,0,72,72, + 0,132,132,132,132,132,132,140,116,6,14,14,8,1,0,72, + 48,0,72,0,132,132,132,132,132,132,132,132,120,6,14,14, + 8,1,0,72,48,0,72,72,0,132,132,132,132,132,132,140, + 116,6,14,14,8,1,0,96,24,0,72,0,132,132,132,132, + 132,132,132,132,120,6,14,14,8,1,0,96,24,0,72,72, + 0,132,132,132,132,132,132,140,116,6,8,8,8,1,0,120, + 132,4,4,252,132,132,120,6,14,14,8,1,0,120,0,72, + 0,48,72,72,132,132,252,132,132,132,132,6,13,13,8,1, + 0,120,0,72,72,0,120,132,4,124,132,132,140,116,6,14, + 14,8,1,0,120,0,48,0,48,72,72,132,132,252,132,132, + 132,132,6,13,13,8,1,0,120,0,32,32,0,120,132,4, + 124,132,132,140,116,7,13,13,8,1,0,120,0,0,62,80, + 144,144,254,144,144,144,144,158,7,11,11,8,1,0,120,0, + 0,124,146,18,126,144,144,146,124,7,10,10,8,1,0,120, + 132,132,128,128,156,132,158,132,124,7,11,11,8,1,254,4, + 116,136,136,136,112,64,120,158,132,120,6,14,14,8,1,0, + 72,48,0,0,120,132,132,128,128,156,132,132,140,116,6,14, + 14,8,1,254,72,48,0,4,116,136,136,136,112,64,120,132, + 132,120,6,14,14,8,1,0,72,48,0,0,132,136,144,160, + 192,192,160,144,136,132,6,14,14,8,1,0,144,96,0,0, + 128,128,136,144,160,192,160,144,136,132,6,12,12,8,1,254, + 120,132,132,132,132,132,132,132,132,120,32,24,6,10,10,8, + 1,254,120,132,132,132,132,132,132,120,32,24,6,15,15,8, + 1,254,120,0,0,120,132,132,132,132,132,132,132,132,120,32, + 24,6,13,13,8,1,254,120,0,0,120,132,132,132,132,132, + 132,120,32,24,6,14,14,8,1,0,72,48,0,0,252,8, + 16,32,56,4,4,4,140,120,6,14,14,8,1,254,72,48, + 0,0,124,8,16,32,56,4,4,4,132,120,6,14,14,8, + 1,254,36,24,0,0,24,8,8,8,8,8,8,8,144,96, + 7,10,10,8,1,0,206,162,162,162,164,164,168,168,168,206, + 7,10,10,8,1,0,192,160,174,162,162,164,164,168,168,206, + 7,11,11,8,1,0,32,32,32,110,162,162,164,164,168,168, + 110,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, + 156,132,132,140,116,6,14,14,8,1,254,24,96,0,4,116, + 136,136,136,112,64,120,132,132,120,6,10,10,8,1,0,144, + 144,144,148,244,148,148,148,148,136,6,11,11,8,1,255,184, + 196,132,132,136,144,160,192,128,128,128,6,13,13,8,1,0, + 96,24,0,132,196,196,164,164,148,148,140,140,132,6,11,11, + 8,1,0,96,24,0,184,196,132,132,132,132,132,132,6,14, + 14,8,1,0,24,96,48,72,48,48,72,72,132,252,132,132, + 132,132,6,14,14,8,1,0,24,96,0,48,72,48,0,120, + 132,4,124,132,140,116,7,14,14,8,1,0,12,48,0,0, + 62,80,144,144,254,144,144,144,144,158,7,12,12,8,1,0, + 12,48,0,0,124,146,18,126,144,144,146,124,6,15,15,8, + 1,255,24,96,0,4,116,136,140,148,148,164,164,196,68,184, + 128,6,13,13,8,1,255,24,96,0,4,120,140,148,148,164, + 164,196,120,128}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 12 + Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent= 0 + X Font ascent =12 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[3783] U8G_SECTION(".progmem.u8g_font_unifont_4_5") = { + 0,16,16,0,254,10,4,176,6,163,0,255,0,14,254,12, + 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,7,12,12,8,0,0,204,34,0, + 0,60,66,2,62,66,66,70,58,6,14,14,8,1,0,120, + 132,132,0,48,72,72,132,132,252,132,132,132,132,6,12,12, + 8,1,0,120,132,132,0,120,132,4,124,132,132,140,116,7, + 14,14,8,0,0,204,34,0,0,126,64,64,64,124,64,64, + 64,64,126,7,12,12,8,0,0,204,34,0,0,60,66,66, + 126,64,64,66,60,6,14,14,8,1,0,120,132,132,0,252, + 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,120, + 132,132,0,120,132,132,252,128,128,132,120,7,14,14,8,0, + 0,204,34,0,0,62,8,8,8,8,8,8,8,8,62,7, + 12,12,8,0,0,204,34,0,0,24,8,8,8,8,8,8, + 62,6,14,14,8,1,0,120,132,132,0,124,16,16,16,16, + 16,16,16,16,124,6,12,12,8,1,0,120,132,132,0,48, + 16,16,16,16,16,16,124,7,14,14,8,0,0,204,34,0, + 0,60,66,66,66,66,66,66,66,66,60,7,12,12,8,0, + 0,204,34,0,0,60,66,66,66,66,66,66,60,6,14,14, + 8,1,0,120,132,132,0,120,132,132,132,132,132,132,132,132, + 120,6,12,12,8,1,0,120,132,132,0,120,132,132,132,132, + 132,132,120,7,14,14,8,0,0,204,34,0,0,124,66,66, + 66,124,72,68,68,66,66,7,12,12,8,0,0,204,34,0, + 0,92,98,66,64,64,64,64,64,6,14,14,8,1,0,120, + 132,132,0,248,132,132,132,248,144,136,136,132,132,6,12,12, + 8,1,0,120,132,132,0,184,196,132,128,128,128,128,128,7, + 14,14,8,0,0,204,34,0,0,66,66,66,66,66,66,66, + 66,66,60,7,12,12,8,0,0,204,34,0,0,66,66,66, + 66,66,66,70,58,6,14,14,8,1,0,120,132,132,0,132, + 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,120, + 132,132,0,132,132,132,132,132,132,140,116,6,12,12,8,1, + 254,120,132,132,128,96,24,4,132,132,120,16,32,6,10,10, + 8,1,254,120,132,128,96,24,4,132,120,16,32,7,12,12, + 8,1,254,254,16,16,16,16,16,16,16,16,16,4,8,5, + 12,12,8,1,254,32,32,248,32,32,32,32,32,32,24,64, + 128,6,10,10,8,1,0,120,132,132,4,24,104,4,4,4, + 120,6,8,8,8,1,0,120,132,4,24,100,4,24,96,6, + 13,13,8,1,0,72,48,0,132,132,132,132,252,132,132,132, + 132,132,6,13,13,8,1,0,72,48,0,128,128,128,184,196, + 132,132,132,132,132,6,10,10,8,1,254,184,196,132,132,132, + 132,132,132,4,4,7,13,13,8,1,254,4,4,4,116,140, + 132,132,132,132,142,118,4,8,6,10,10,8,1,0,16,72, + 132,132,72,120,132,132,132,120,5,8,8,8,2,0,72,136, + 144,96,144,136,136,112,6,12,12,8,1,254,252,4,4,8, + 16,32,64,128,128,252,4,8,6,10,10,8,1,254,252,4, + 8,16,32,64,128,252,4,8,6,12,12,8,1,0,16,0, + 48,72,72,132,132,252,132,132,132,132,6,10,10,8,1,0, + 16,0,120,132,4,124,132,132,140,116,6,12,12,8,1,254, + 252,128,128,128,248,128,128,128,128,252,16,96,6,10,10,8, + 1,254,120,132,132,252,128,128,132,120,16,96,6,14,14,8, + 1,0,120,0,72,0,120,132,132,132,132,132,132,132,132,120, + 6,12,12,8,1,0,120,0,72,0,120,132,132,132,132,132, + 132,120,6,14,14,8,1,0,120,0,100,152,0,120,132,132, + 132,132,132,132,132,120,6,13,13,8,1,0,120,0,100,152, + 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,16, + 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, + 0,16,0,120,132,132,132,132,132,132,120,6,14,14,8,1, + 0,120,0,16,0,120,132,132,132,132,132,132,132,132,120,6, + 12,12,8,1,0,120,0,16,0,120,132,132,132,132,132,132, + 120,7,12,12,8,1,0,124,0,130,130,68,68,40,16,16, + 16,16,16,6,12,12,8,1,254,120,0,132,132,132,132,132, + 76,52,4,4,120,4,12,12,8,2,254,96,32,32,32,32, + 32,32,32,48,48,64,128,7,10,10,8,1,254,184,196,132, + 132,132,132,134,134,4,8,6,12,12,8,1,254,32,32,248, + 32,32,32,32,32,44,28,16,32,5,10,10,8,1,254,24, + 8,8,8,8,8,8,8,144,96,7,11,11,8,0,0,16, + 16,16,84,186,146,146,146,146,186,84,7,10,10,8,0,254, + 84,186,146,146,146,146,186,84,16,16,7,11,11,8,0,0, + 2,26,36,44,74,82,126,98,66,66,194,7,12,12,8,0, + 255,2,60,70,74,72,80,80,96,98,66,124,128,7,11,11, + 8,0,255,2,4,60,74,80,80,96,96,66,124,128,6,10, + 10,8,1,0,64,64,64,64,240,64,64,64,64,124,7,12, + 12,8,1,0,2,4,254,24,24,16,16,48,48,80,80,144, + 7,10,10,8,1,254,120,132,128,96,24,4,132,120,18,12, + 6,10,10,8,1,254,252,4,8,16,32,64,128,192,32,28, + 6,10,10,8,1,0,120,132,132,4,8,16,16,16,16,16, + 6,8,8,8,1,0,120,132,132,4,8,16,16,16,6,10, + 10,8,1,0,120,68,68,68,120,68,244,68,68,120,7,10, + 10,8,0,0,68,68,68,68,68,254,68,68,68,56,6,10, + 10,8,1,0,48,48,48,72,72,72,72,132,132,132,6,14, + 14,8,1,254,8,8,252,144,144,160,248,160,160,192,192,252, + 128,128,7,10,10,8,0,255,2,60,70,74,126,80,96,66, + 124,128,7,10,10,8,1,0,62,8,8,8,8,62,8,136, + 136,112,7,13,13,8,1,254,8,8,0,24,8,8,62,8, + 8,8,8,144,96,7,12,12,8,1,254,112,136,136,136,136, + 136,136,136,152,104,8,6,7,10,10,8,1,254,104,152,136, + 136,136,136,152,104,8,6,6,10,10,8,1,0,120,68,68, + 68,248,80,72,72,68,68,6,8,8,8,1,0,88,100,68, + 224,64,64,64,64,7,10,10,8,1,0,130,130,68,254,40, + 16,16,16,16,16,7,10,10,8,1,254,68,68,68,254,68, + 36,28,4,4,56,6,8,8,8,1,0,184,196,132,132,248, + 128,132,120,6,8,8,8,1,0,116,140,132,132,132,140,148, + 100,6,8,8,8,1,0,152,164,196,132,132,132,196,184,6, + 11,11,8,1,0,112,128,128,184,196,132,132,132,132,196,184, + 6,8,8,8,1,0,120,132,4,4,4,4,132,120,6,9, + 9,8,1,255,120,132,128,128,128,152,164,120,128,7,12,12, + 8,1,255,8,8,8,104,152,136,136,136,136,152,104,6,7, + 11,11,8,1,0,6,8,8,104,152,136,136,136,136,152,104, + 6,8,8,8,1,0,120,132,132,252,4,4,132,120,6,8, + 8,8,1,0,120,132,4,4,252,132,132,120,7,8,8,8, + 1,0,114,140,8,8,248,136,136,112,6,8,8,8,1,0, + 120,132,128,120,128,128,132,120,6,8,8,8,1,0,120,132, + 4,120,4,4,132,120,7,8,8,8,1,0,114,140,8,112, + 8,8,136,112,6,8,8,8,1,0,120,132,132,184,132,132, + 132,120,7,10,10,8,1,254,24,8,8,8,62,8,8,8, + 144,96,7,11,11,8,1,254,6,104,152,136,136,136,152,104, + 8,136,112,6,10,10,8,1,254,116,140,132,132,132,140,116, + 4,132,120,6,8,8,8,1,0,120,132,128,128,156,132,132, + 124,6,10,10,8,1,254,132,132,132,72,72,48,48,72,72, + 48,6,8,8,8,1,0,132,132,72,72,48,48,72,48,6, + 11,11,8,1,254,132,132,132,132,132,132,140,116,4,4,4, + 6,11,11,8,1,0,112,128,128,184,196,132,132,132,132,132, + 132,6,11,11,8,1,0,112,128,128,184,196,132,132,132,132, + 132,152,5,11,11,8,2,0,32,32,0,96,32,32,248,32, + 32,32,248,3,8,8,8,3,0,128,128,128,128,128,128,128, + 96,5,8,8,8,2,0,248,32,32,32,32,32,32,248,6, + 10,10,8,1,0,48,16,16,16,116,152,16,16,16,124,6, + 10,10,8,1,0,48,16,16,112,144,124,16,16,16,124,4, + 11,11,8,3,255,192,64,64,64,64,64,64,64,64,64,48, + 7,12,12,8,1,254,96,32,62,34,36,40,44,34,34,250, + 18,12,7,8,8,8,1,0,146,146,146,146,146,146,146,110, + 7,10,10,8,1,254,146,146,146,146,146,146,146,110,2,2, + 7,9,9,8,1,255,236,146,146,146,146,146,146,130,12,7, + 9,9,8,1,255,44,50,34,34,34,34,34,34,192,7,9, + 9,8,1,255,176,200,136,136,136,136,136,136,6,6,8,8, + 8,1,0,132,132,196,164,148,140,132,132,6,8,8,8,1, + 0,120,132,132,252,132,132,132,120,7,8,8,8,1,0,110, + 144,144,156,144,144,144,110,7,8,8,8,1,0,124,130,130, + 146,146,146,146,108,7,12,12,8,1,254,16,16,124,146,146, + 146,146,146,146,124,16,16,6,8,8,8,1,0,4,4,4, + 4,4,132,140,116,6,10,10,8,1,0,4,4,4,4,4, + 4,4,132,140,116,7,9,9,8,1,255,8,8,8,8,8, + 136,152,104,6,6,10,10,8,1,254,184,196,132,128,128,128, + 128,128,128,128,6,9,9,8,1,255,184,196,132,128,128,128, + 128,128,96,6,8,8,8,1,0,120,132,132,128,128,128,128, + 128,6,8,8,8,1,0,120,132,132,4,4,4,4,4,6, + 8,8,8,1,0,248,132,132,248,136,132,132,132,6,8,8, + 8,1,0,132,132,132,136,248,132,132,248,6,10,10,8,1, + 254,120,132,128,96,24,4,132,248,128,96,5,12,12,8,1, + 255,24,32,32,32,32,32,32,32,32,32,32,192,5,12,12, + 8,1,255,24,32,32,32,32,32,32,248,32,32,32,192,5, + 9,9,8,1,255,192,32,32,32,32,32,32,32,24,6,12, + 12,8,1,255,12,16,16,16,16,16,16,16,16,112,156,96, + 5,10,10,8,1,0,192,32,32,32,32,32,32,248,32,32, + 6,11,11,8,1,255,32,32,248,32,32,32,32,32,32,32, + 28,7,8,8,8,1,0,68,68,68,254,68,68,76,52,6, + 8,8,8,1,0,132,72,132,132,132,132,72,48,6,8,8, + 8,1,0,152,132,132,132,132,136,144,96,6,8,8,8,1, + 0,48,48,72,72,72,132,132,132,7,8,8,8,1,0,108, + 146,146,146,146,146,146,130,6,10,10,8,1,254,120,128,128, + 176,200,132,132,132,132,132,7,8,8,8,1,0,130,130,68, + 40,16,16,16,16,7,10,10,8,1,254,248,16,16,32,32, + 64,64,248,8,6,7,9,9,8,1,255,252,4,8,16,32, + 76,146,252,32,6,10,10,8,1,254,124,8,16,32,56,4, + 4,4,132,120,6,10,10,8,1,254,124,8,16,32,56,4, + 4,100,148,120,6,10,10,8,1,0,120,132,132,4,8,16, + 16,16,16,16,6,10,10,8,1,0,120,132,132,128,64,32, + 32,32,32,32,6,10,10,8,1,0,16,16,16,16,16,8, + 4,132,132,120,6,10,10,8,1,254,120,132,128,128,128,128, + 128,128,132,120,6,8,8,8,1,0,120,132,132,180,180,132, + 132,120,6,8,8,8,1,0,248,132,132,248,132,132,132,248, + 6,8,8,8,1,0,120,132,132,116,132,132,132,120,7,8, + 8,8,1,0,118,136,128,128,152,136,136,120,5,8,8,8, + 2,0,136,136,136,248,136,136,136,136,6,13,13,8,1,254, + 8,8,0,24,8,8,8,8,8,8,124,144,96,6,10,10, + 8,1,254,132,68,36,20,12,20,36,68,4,4,6,8,8, + 8,1,0,128,128,128,128,128,128,128,252,7,11,11,8,1, + 254,6,104,152,136,136,136,136,152,104,8,8,6,10,10,8, + 1,0,120,132,132,4,8,16,16,124,16,16,6,10,10,8, + 1,0,120,132,132,128,64,32,32,248,32,32,7,11,11,8, + 1,0,32,32,32,126,162,164,164,168,168,176,126,7,13,13, + 8,1,254,32,32,32,126,162,164,168,172,162,162,98,18,12, + 7,12,12,8,1,255,32,32,32,126,162,164,168,176,180,170, + 124,8,7,10,10,8,1,0,64,64,236,80,80,72,68,66, + 66,60,7,13,13,8,1,254,6,72,72,248,72,72,72,72, + 72,72,56,8,48,7,11,11,8,1,255,64,64,236,82,80, + 80,80,84,90,60,8,7,12,12,8,1,254,96,144,128,220, + 162,162,162,162,162,162,4,24,6,10,10,8,2,0,128,128, + 128,156,160,160,152,132,132,248,6,10,10,8,1,0,128,128, + 128,128,252,136,144,160,192,252,7,11,11,8,1,0,130,146, + 146,146,108,0,130,146,146,146,108,6,10,10,8,1,0,252, + 132,132,132,0,0,252,132,132,132,5,10,10,8,1,254,200, + 72,72,72,72,72,88,40,8,8,7,10,10,8,1,254,200, + 72,72,72,72,72,88,40,8,6,5,6,6,8,2,4,128, + 128,176,200,136,136,5,7,7,8,2,4,112,136,128,176,200, + 136,136,4,7,7,8,2,4,16,0,16,16,16,144,96,5, + 5,5,8,2,5,176,200,128,128,128,5,5,5,8,1,5, + 8,8,8,152,104,7,6,6,8,1,4,8,8,8,152,104, + 6,5,6,6,8,1,4,136,144,240,136,136,240,5,4,4, + 8,1,6,136,168,168,80,5,5,5,8,1,5,136,136,120, + 8,112,3,3,3,8,2,7,32,64,128,6,3,3,8,1, + 7,36,72,144,2,4,4,8,3,6,64,128,128,192,2,4, + 4,8,3,6,192,64,64,128,2,4,4,8,3,6,192,128, + 128,64,4,6,6,8,2,5,192,32,16,16,32,192,4,6, + 6,8,2,5,48,64,128,128,64,48,6,7,7,8,1,4, + 120,132,4,4,56,32,32,6,7,7,8,1,4,120,132,128, + 128,112,16,16,4,7,7,8,2,4,16,32,64,128,64,32, + 16,4,7,7,8,2,4,128,64,32,16,32,64,128,7,4, + 4,8,1,6,16,40,68,130,7,4,4,8,1,6,130,68, + 40,16,4,2,2,8,2,8,96,144,4,2,2,8,2,8, + 144,96,1,3,3,8,4,7,128,128,128,4,1,1,8,2, + 9,240,4,2,2,8,2,8,48,192,4,2,2,8,2,8, + 192,48,1,4,4,8,4,0,128,128,128,128,4,1,1,8, + 2,0,240,4,2,2,8,2,255,192,48,4,2,2,8,2, + 255,48,192,3,6,6,8,2,1,224,64,0,0,64,224,3, + 2,2,8,2,4,224,64,4,6,6,8,2,2,192,32,16, + 16,32,192,4,6,6,8,2,2,48,64,128,128,64,48,5, + 5,5,8,1,2,32,32,32,32,248,5,5,5,8,1,2, + 248,32,32,32,32,5,5,5,8,1,2,32,32,248,32,32, + 5,1,1,8,1,4,248,6,3,3,8,1,9,132,132,120, + 2,2,2,8,3,10,192,192,4,3,3,8,2,9,96,144, + 96,3,2,2,8,4,254,128,96,6,2,2,8,1,10,100, + 152,7,2,2,8,1,10,102,136,7,4,4,8,0,3,32, + 96,162,28,6,5,5,8,1,5,132,72,48,72,132,5,6, + 6,8,1,4,136,80,32,80,80,32,3,6,6,8,2,6, + 192,64,64,64,64,224,5,5,5,8,1,5,120,128,112,8, + 240,5,5,5,8,1,5,136,80,32,80,136,5,5,5,8, + 1,7,120,128,128,112,16,5,11,11,8,1,0,248,8,8, + 8,8,8,8,8,8,8,8,5,11,11,8,1,0,8,8, + 248,8,8,8,8,8,8,8,8,5,11,11,8,1,0,8, + 8,8,8,8,248,8,8,8,8,8,5,11,11,8,1,0, + 8,8,8,8,8,8,8,8,248,8,8,5,11,11,8,1, + 0,8,8,8,8,8,8,8,8,8,8,248,5,6,6,8, + 1,0,128,128,128,128,128,248,4,7,7,8,1,0,128,128, + 128,240,128,128,128,5,3,3,8,1,0,136,80,32,6,3, + 3,8,1,9,252,0,252,6,4,4,8,1,8,204,68,68, + 136,5,3,3,8,1,255,136,80,32,5,3,3,8,1,255, + 32,80,136,3,5,5,8,3,255,32,64,128,64,32,3,5, + 5,8,3,255,128,64,32,64,128,4,3,3,8,2,255,96, + 144,96,3,3,3,8,2,9,128,64,32,6,3,3,8,1, + 9,144,72,36,6,3,3,8,1,9,36,72,144,6,2,2, + 8,1,254,100,152,2,7,7,8,3,4,192,192,0,0,0, + 192,192,3,4,4,8,2,7,224,128,128,128,3,4,4,8, + 2,7,224,32,32,32,3,4,4,8,2,0,128,128,128,224, + 3,4,4,8,2,0,32,32,32,224,6,3,3,8,1,254, + 132,132,252,6,3,3,8,1,254,128,128,252,6,5,5,8, + 1,3,32,64,252,64,32}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 3, '1' Height: 10 + Calculated Max Values w=16 h=16 x=14 y=12 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 3 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[3556] U8G_SECTION(".progmem.u8g_font_unifont_67_75") = { + 0,16,16,0,254,3,2,120,4,26,16,255,0,14,254,10, + 0,6,5,5,8,1,4,32,64,252,64,32,5,6,6,8, + 2,3,32,112,168,32,32,32,6,5,5,8,1,3,16,8, + 252,8,16,5,6,6,8,2,3,32,32,32,168,112,32,8, + 5,5,8,0,3,36,66,255,66,36,5,9,9,8,2,1, + 32,112,168,32,32,32,168,112,32,6,6,6,8,1,3,240, + 192,160,144,8,4,6,6,6,8,1,3,60,12,20,36,64, + 128,6,6,6,8,1,3,128,64,36,20,12,60,6,6,6, + 8,1,2,4,8,144,160,192,240,7,9,9,8,1,1,8, + 8,40,72,254,72,40,8,8,7,9,9,8,1,1,32,32, + 40,36,254,36,40,32,32,7,5,5,8,1,3,32,76,242, + 64,32,7,5,5,8,1,3,8,100,158,4,8,8,5,5, + 8,0,3,36,72,255,72,36,5,9,9,8,2,1,32,112, + 168,32,112,168,32,32,32,8,5,5,8,0,3,36,18,255, + 18,36,5,9,9,8,2,1,32,32,32,168,112,32,168,112, + 32,7,5,5,8,1,3,34,68,248,68,34,7,5,5,8, + 1,3,136,68,62,68,136,6,5,5,8,1,3,36,68,252, + 68,36,5,6,6,8,2,3,32,112,168,32,32,248,6,5, + 5,8,1,3,144,136,252,136,144,5,6,6,8,2,3,248, + 32,32,168,112,32,5,10,10,8,2,0,32,112,168,32,32, + 32,168,112,32,248,7,6,6,8,1,3,4,34,66,252,64, + 32,7,6,6,8,1,3,64,136,132,126,4,8,7,6,6, + 8,1,3,4,42,74,252,72,40,7,6,6,8,1,3,64, + 168,164,126,36,40,8,5,5,8,0,3,36,90,231,66,36, + 8,9,9,8,0,1,8,8,44,74,255,74,44,8,8,6, + 10,10,8,1,0,128,128,144,176,208,144,16,84,56,16,5, + 10,10,8,1,0,32,64,240,72,40,8,8,8,8,8,5, + 10,10,8,2,0,32,16,120,144,160,128,128,128,128,128,5, + 10,10,8,1,0,8,8,8,8,8,40,72,240,64,32,5, + 10,10,8,2,0,128,128,128,128,128,160,144,120,16,32,7, + 5,5,8,1,1,248,8,42,28,8,5,8,8,8,1,2, + 8,8,8,40,72,248,64,32,8,5,5,8,0,3,30,33, + 169,113,32,8,5,5,8,0,3,120,132,149,142,4,6,8, + 8,8,1,3,252,0,240,192,160,144,8,4,6,11,11,8, + 1,0,160,192,252,192,160,0,20,12,252,12,20,6,6,6, + 8,1,2,92,152,148,132,132,120,6,6,6,8,1,2,232, + 100,164,132,132,120,6,3,3,8,1,5,32,64,252,6,3, + 3,8,1,3,252,64,32,3,6,6,8,4,3,128,192,160, + 128,128,128,3,6,6,8,2,3,32,96,160,32,32,32,6, + 3,3,8,1,5,16,8,252,6,3,3,8,1,3,252,8, + 16,3,6,6,8,4,2,128,128,128,160,192,128,3,6,6, + 8,2,3,32,32,32,160,96,32,6,11,11,8,1,0,16, + 8,252,8,16,0,32,64,252,64,32,8,6,6,8,0,3, + 36,116,164,37,46,36,6,11,11,8,1,0,32,64,252,64, + 32,0,16,8,252,8,16,6,11,11,8,1,0,32,64,252, + 64,32,0,32,64,252,64,32,8,6,6,8,0,3,36,126, + 165,36,36,36,6,11,11,8,1,0,16,8,252,8,16,0, + 16,8,252,8,16,8,6,6,8,0,3,36,36,36,165,126, + 36,6,7,7,8,1,2,32,64,252,0,252,8,16,6,7, + 7,8,1,2,16,8,252,0,252,64,32,7,9,9,8,0, + 1,8,8,40,126,136,126,40,8,8,8,9,9,8,0,1, + 8,8,44,126,137,126,44,8,8,7,9,9,8,1,1,32, + 32,40,252,34,252,40,32,32,6,5,5,8,1,3,32,124, + 128,124,32,5,6,6,8,2,3,32,80,216,80,80,80,6, + 5,5,8,1,3,16,248,4,248,16,5,6,6,8,2,3, + 80,80,80,216,80,32,8,5,5,8,0,3,36,126,129,126, + 36,5,8,8,8,2,2,32,80,216,80,80,216,80,32,6, + 6,6,8,1,3,240,160,208,168,20,8,6,6,6,8,1, + 3,60,20,44,84,160,64,6,6,6,8,1,3,8,20,168, + 208,160,240,6,6,6,8,1,3,64,160,84,44,20,60,7, + 7,7,8,0,2,16,62,64,254,64,62,16,7,7,7,8, + 1,2,16,248,4,254,4,248,16,8,5,5,8,0,3,32, + 66,245,72,32,8,5,5,8,0,3,4,66,175,18,4,5, + 10,10,8,2,0,32,112,168,32,32,248,32,248,32,32,5, + 10,10,8,2,0,32,32,248,32,248,32,32,168,112,32,7, + 5,5,8,1,3,32,64,238,64,32,5,10,10,8,2,0, + 32,112,168,0,32,32,32,0,32,32,7,5,5,8,1,3, + 8,4,238,4,8,5,10,10,8,2,0,32,32,0,32,32, + 32,0,168,112,32,6,5,5,8,1,3,160,192,252,192,160, + 6,5,5,8,1,3,20,12,252,12,20,8,7,7,8,0, + 2,16,48,95,129,95,48,16,7,10,10,8,1,0,16,40, + 68,238,40,40,40,40,40,56,8,7,7,8,0,2,8,12, + 250,129,250,12,8,7,10,10,8,1,0,56,40,40,40,40, + 40,238,68,40,16,7,12,12,8,1,0,16,40,68,238,40, + 40,40,40,56,0,56,56,7,12,12,8,1,0,16,40,68, + 198,68,68,68,68,68,198,130,254,7,12,12,8,1,0,16, + 40,124,198,68,68,68,68,68,198,130,254,7,12,12,8,1, + 0,16,56,84,214,84,84,84,84,84,214,146,254,7,14,14, + 8,1,0,16,40,84,238,68,198,68,68,68,68,68,68,68, + 124,7,14,14,8,1,0,16,40,84,238,68,198,68,68,68, + 68,68,198,130,254,7,7,7,8,1,2,16,216,244,130,244, + 216,16,7,9,9,8,1,0,254,128,184,176,168,132,130,128, + 128,7,9,9,8,1,0,2,2,130,66,42,26,58,2,254, + 5,11,11,8,2,0,32,80,216,80,80,80,80,80,216,80, + 32,13,5,10,16,1,3,14,32,17,16,255,248,17,16,14, + 32,8,10,10,8,0,0,36,46,53,36,36,36,36,172,116, + 36,8,15,15,8,0,254,4,2,255,2,4,4,2,255,2, + 4,4,2,255,2,4,8,5,5,8,0,3,36,68,255,68, + 36,8,5,5,8,0,3,36,34,255,34,36,11,5,10,16, + 2,3,36,128,68,64,255,224,68,64,36,128,12,5,10,16, + 1,3,37,0,69,0,255,240,69,0,37,0,12,5,10,16, + 2,3,10,64,10,32,255,240,10,32,10,64,13,5,10,16, + 1,3,37,32,69,16,255,248,69,16,37,32,8,5,5,8, + 0,3,32,96,191,96,32,8,5,5,8,0,3,4,6,253, + 6,4,12,5,10,16,2,3,32,64,96,96,191,208,96,96, + 32,64,16,8,16,16,0,6,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,16,2,4,16,0,254,255,255, + 255,255,16,4,8,16,0,254,255,255,255,255,255,255,255,255, + 16,6,12,16,0,254,255,255,255,255,255,255,255,255,255,255, + 255,255,16,8,16,16,0,254,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,16,10,20,16,0,254,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,16,12,24,16,0,254,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 16,14,28,16,0,254,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,16,16,32,16,0,254,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,14,16,32,16,0,254,255,252, + 255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252, + 255,252,255,252,255,252,255,252,255,252,255,252,255,252,12,16, + 32,16,0,254,255,240,255,240,255,240,255,240,255,240,255,240, + 255,240,255,240,255,240,255,240,255,240,255,240,255,240,255,240, + 255,240,255,240,10,16,32,16,0,254,255,192,255,192,255,192, + 255,192,255,192,255,192,255,192,255,192,255,192,255,192,255,192, + 255,192,255,192,255,192,255,192,255,192,8,16,16,16,0,254, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 6,16,16,16,0,254,252,252,252,252,252,252,252,252,252,252, + 252,252,252,252,252,252,4,16,16,16,0,254,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,240,2,16,16,16, + 0,254,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,8,16,16,16,8,254,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,15,16,32,16,0,254,136,136, + 34,34,136,136,34,34,136,136,34,34,136,136,34,34,136,136, + 34,34,136,136,34,34,136,136,34,34,136,136,34,34,16,16, + 32,16,0,254,170,170,85,85,170,170,85,85,170,170,85,85, + 170,170,85,85,170,170,85,85,170,170,85,85,170,170,85,85, + 170,170,85,85,16,16,32,16,0,254,238,238,187,187,238,238, + 187,187,238,238,187,187,238,238,187,187,238,238,187,187,238,238, + 187,187,238,238,187,187,238,238,187,187,16,2,4,16,0,12, + 255,255,255,255,2,16,16,16,14,254,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,8,8,8,16,0,254, + 255,255,255,255,255,255,255,255,8,8,8,16,8,254,255,255, + 255,255,255,255,255,255,8,8,8,16,0,6,255,255,255,255, + 255,255,255,255,16,16,32,16,0,254,255,0,255,0,255,0, + 255,0,255,0,255,0,255,0,255,0,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,16,16,32,16,0,254, + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, + 16,16,32,16,0,254,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,0,255,0,255,0,255,0,255,0, + 255,0,255,0,255,0,16,16,32,16,0,254,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,0,255,0,255, + 0,255,0,255,0,255,0,255,0,255,0,255,8,8,8,16, + 8,6,255,255,255,255,255,255,255,255,16,16,32,16,0,254, + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, + 16,16,32,16,0,254,0,255,0,255,0,255,0,255,0,255, + 0,255,0,255,0,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,7,7,7,8,1,1,254,254,254,254, + 254,254,254,7,7,7,8,1,1,254,130,130,130,130,130,254, + 7,7,7,8,1,1,124,130,130,130,130,130,124,7,7,7, + 8,1,1,254,130,186,186,186,130,254,7,7,7,8,1,1, + 254,130,254,130,254,130,254,7,7,7,8,1,1,254,170,170, + 170,170,170,254,7,7,7,8,1,1,254,170,254,170,254,170, + 254,7,7,7,8,1,1,254,166,146,202,166,146,254,7,7, + 7,8,1,1,254,202,146,166,202,146,254,7,7,7,8,1, + 1,254,170,214,170,214,170,254,4,4,4,8,2,4,240,240, + 240,240,4,4,4,8,2,4,240,144,144,240,7,4,4,8, + 1,4,254,254,254,254,7,4,4,8,1,4,254,130,130,254, + 4,7,7,8,2,2,240,240,240,240,240,240,240,4,7,7, + 8,2,2,240,144,144,144,144,144,240,8,3,3,8,0,4, + 63,126,252,8,3,3,8,0,4,63,66,252,6,6,6,8, + 1,3,48,48,120,120,252,252,6,6,6,8,1,3,48,48, + 72,72,132,252,6,3,3,8,1,3,48,120,252,6,3,3, + 8,1,3,48,72,252,6,6,6,8,1,3,192,240,252,252, + 240,192,6,6,6,8,1,3,192,176,140,140,176,192,4,4, + 4,8,2,4,192,240,240,192,4,4,4,8,2,4,192,176, + 176,192,6,5,5,8,1,3,192,240,252,240,192,6,5,5, + 8,1,3,192,176,140,176,192,6,6,6,8,1,3,252,252, + 120,120,48,48,6,6,6,8,1,3,252,132,72,72,48,48, + 6,3,3,8,1,3,252,120,48,6,3,3,8,1,3,252, + 72,48,6,6,6,8,1,3,12,60,252,252,60,12,6,6, + 6,8,1,3,12,52,196,196,52,12,4,4,4,8,2,4, + 48,240,240,48,4,4,4,8,2,4,48,208,208,48,6,5, + 5,8,1,3,12,60,252,60,12,6,5,5,8,1,3,12, + 52,196,52,12,7,7,7,8,1,2,16,56,124,254,124,56, + 16,7,7,7,8,1,2,16,40,68,130,68,40,16,7,7, + 7,8,1,2,16,40,84,186,84,40,16,7,7,7,8,1, + 2,56,68,178,186,154,68,56,6,10,10,8,1,1,48,48, + 72,72,132,132,72,72,48,48,7,7,7,8,1,2,56,68, + 130,130,130,68,56,7,7,7,8,1,2,40,0,130,0,130, + 0,40,7,7,7,8,1,2,56,108,170,170,170,108,56,7, + 7,7,8,1,2,56,68,146,170,146,68,56,7,7,7,8, + 1,2,56,124,254,254,254,124,56,7,7,7,8,1,2,56, + 100,226,226,226,100,56,7,7,7,8,1,2,56,76,142,142, + 142,76,56,7,7,7,8,1,2,56,68,130,130,254,124,56, + 7,7,7,8,1,2,56,124,254,130,130,68,56,7,7,7, + 8,1,2,56,92,158,158,130,68,56,7,7,7,8,1,2, + 56,76,142,142,254,124,56,4,7,7,8,1,2,48,112,240, + 240,240,112,48,4,7,7,8,4,2,192,224,240,240,240,224, + 192,8,16,16,8,0,254,255,255,255,255,255,255,231,195,195, + 231,255,255,255,255,255,255,8,16,16,8,0,254,255,255,255, + 255,255,231,219,189,189,219,231,255,255,255,255,255,8,8,8, + 8,0,6,255,255,255,255,255,231,219,189,8,8,8,8,0, + 254,189,219,231,255,255,255,255,255,4,4,4,8,1,5,48, + 64,128,128,4,4,4,8,4,5,192,32,16,16,4,4,4, + 8,4,2,16,16,32,192,4,4,4,8,1,2,128,128,64, + 48,7,4,4,8,1,5,56,68,130,130,7,4,4,8,1, + 2,130,130,68,56,6,6,6,8,1,255,4,12,28,60,124, + 252,6,6,6,8,1,255,128,192,224,240,248,252,6,6,6, + 8,1,6,252,248,240,224,192,128,6,6,6,8,1,6,252, + 124,60,28,12,4,5,5,5,8,1,2,112,136,136,136,112, + 6,6,6,8,1,3,252,228,228,228,228,252,6,6,6,8, + 1,3,252,156,156,156,156,252,6,6,6,8,1,3,252,244, + 228,196,132,252,6,6,6,8,1,3,252,132,140,156,188,252, + 7,6,6,8,1,3,254,146,146,146,146,254,7,7,7,8, + 1,2,16,40,40,68,84,130,254,6,6,6,8,1,2,48, + 48,104,104,228,252,6,7,7,8,1,2,48,48,88,88,156, + 156,252,8,8,8,8,0,2,60,66,129,129,129,129,66,60, + 6,6,6,8,1,0,252,164,228,132,132,252,6,6,6,8, + 1,0,252,132,132,228,164,252,6,6,6,8,1,0,252,132, + 132,156,148,252,6,6,6,8,1,0,252,148,156,132,132,252, + 8,8,8,8,0,0,60,82,145,241,129,129,66,60,8,8, + 8,8,0,0,60,66,129,129,241,145,82,60,8,8,8,8, + 0,0,60,66,129,129,143,137,74,60,8,8,8,8,0,0, + 60,74,137,143,129,129,66,60,6,6,6,8,1,6,252,136, + 144,160,192,128,6,6,6,8,1,6,252,68,36,20,12,4, + 6,6,6,8,1,255,128,192,160,144,136,252,6,6,6,8, + 1,255,252,132,132,132,132,252,6,6,6,8,1,255,252,252, + 252,252,252,252,4,4,4,8,2,0,240,144,144,240,4,4, + 4,8,2,0,240,240,240,240,6,6,6,8,1,255,4,12, + 20,36,68,252}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 14 + Calculated Max Values w=16 h=16 x= 4 y= 5 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-1 + X Font ascent =14 descent=-1 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[7240] U8G_SECTION(".progmem.u8g_font_unifont_72_73") = { + 0,16,16,0,254,10,4,144,6,240,0,255,255,14,254,14, + 255,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,14,5,10,16,1,4,115,36,132, + 164,100,188,20,164,227,36,13,5,10,16,1,4,119,72,130, + 72,98,48,18,72,226,72,13,5,10,16,1,4,247,72,130, + 72,242,48,130,72,242,72,14,5,10,16,1,4,243,124,132, + 144,244,144,132,144,243,16,14,5,10,16,1,4,244,152,132, + 164,246,164,133,172,244,156,13,5,10,16,1,4,99,72,148, + 80,244,96,148,80,147,72,14,5,10,16,1,4,231,160,148, + 32,231,160,148,32,231,188,10,5,10,16,1,4,241,192,138, + 0,241,128,136,64,243,128,11,5,10,16,1,4,139,224,136, + 128,248,128,136,128,136,128,11,5,10,16,1,4,131,224,130, + 0,131,224,130,0,250,0,11,5,10,16,1,4,139,224,136, + 128,136,128,80,128,32,128,11,5,10,16,1,4,251,224,130, + 0,251,224,130,0,130,0,11,5,10,16,1,4,123,192,130, + 32,131,192,130,64,122,32,11,5,10,16,1,4,121,192,130, + 32,114,32,10,32,241,192,11,5,10,16,1,4,123,224,128, + 128,112,128,8,128,243,224,12,5,10,16,1,4,228,112,148, + 64,148,112,148,64,231,112,13,5,10,16,1,4,227,16,148, + 48,148,16,148,16,227,56,13,5,10,16,1,4,227,48,148, + 8,148,16,148,32,227,56,13,5,10,16,1,4,227,48,148, + 8,148,48,148,8,227,48,13,5,10,16,1,4,227,8,148, + 24,148,40,148,56,227,8,14,5,10,16,1,4,147,36,212, + 168,212,176,183,168,148,164,14,5,10,16,1,4,104,164,133, + 52,98,44,18,36,226,36,13,5,10,16,1,4,247,112,130, + 72,242,112,130,72,242,112,13,5,10,16,1,4,102,72,137, + 104,143,88,137,72,105,72,11,5,10,16,1,4,250,32,131, + 96,250,160,130,32,250,32,14,5,10,16,1,4,116,184,132, + 164,100,184,20,164,227,56,14,5,10,16,1,4,243,156,132, + 32,243,32,128,160,247,28,9,5,10,16,1,4,243,128,132, + 0,243,0,128,128,135,0,9,5,10,16,1,4,115,128,132, + 0,179,0,144,128,119,0,9,5,10,16,1,4,227,128,148, + 0,227,0,160,128,151,0,9,5,10,16,1,4,147,128,148, + 0,147,0,144,128,103,0,9,5,10,16,1,4,119,0,132, + 128,103,0,20,0,228,0,14,5,10,16,1,4,231,160,148, + 32,151,160,148,32,231,188,6,10,10,8,1,0,40,48,32, + 96,184,36,36,36,36,56,6,2,2,8,1,0,132,252,6, + 9,9,8,1,1,144,208,176,144,0,32,32,32,60,7,7, + 7,8,1,2,2,20,42,84,168,80,128,6,11,11,8,1, + 0,120,132,132,128,64,32,16,16,0,16,16,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 5,10,10,8,2,0,56,40,40,40,32,32,160,160,160,224, + 5,10,10,8,2,0,8,8,8,8,8,248,136,136,136,136, + 5,10,10,8,2,0,136,136,136,136,136,248,32,32,32,32, + 5,10,10,8,2,0,32,32,32,32,32,248,136,136,136,136, + 5,10,10,8,2,0,248,168,168,168,32,32,168,168,168,248, + 5,5,5,8,2,5,136,216,168,216,136,6,8,8,8,1, + 1,28,220,220,192,192,220,220,28,8,10,10,8,0,0,3, + 3,3,27,24,24,216,192,192,192,7,10,10,8,1,0,14, + 174,174,160,160,160,160,160,160,160,7,9,9,8,1,0,218, + 218,218,218,218,218,218,218,218,8,10,10,8,0,0,160,160, + 80,40,40,20,20,10,5,5,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,15,15,30,16, + 0,255,7,192,24,48,32,8,65,4,67,4,133,2,129,2, + 129,2,129,2,129,2,65,4,71,196,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,71,196,72,36, + 128,34,128,34,128,194,131,2,132,2,72,36,79,228,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 71,196,72,36,128,34,128,34,128,194,128,34,128,34,72,36, + 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,64,68,64,196,129,66,130,66,132,66,136,66, + 159,242,64,68,65,244,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,79,228,72,4,136,2,143,194, + 128,34,128,34,128,34,72,36,71,196,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,71,196,72,36, + 136,2,136,2,143,194,136,34,136,34,72,36,71,196,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 79,228,72,36,128,66,128,66,128,130,129,2,129,2,66,4, + 66,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,71,196,72,36,136,34,136,34,135,194,136,34, + 136,34,72,36,71,196,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,71,196,72,36,136,34,136,34, + 135,226,128,34,128,34,72,36,71,196,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,72,228,89,20, + 137,18,137,18,137,18,137,18,137,18,73,20,92,228,32,8, + 24,48,7,192,14,14,28,16,1,255,31,224,32,16,72,72, + 152,196,136,68,136,68,136,68,136,68,136,68,136,68,156,228, + 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, + 73,200,154,36,139,36,136,36,136,196,137,4,138,4,138,20, + 159,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, + 32,16,73,200,154,36,136,36,136,36,136,196,136,36,138,36, + 138,36,157,196,64,8,32,16,31,224,14,14,28,16,1,255, + 31,224,32,16,72,72,152,196,136,196,137,68,137,68,138,68, + 143,244,136,68,156,228,64,8,32,16,31,224,14,14,28,16, + 1,255,31,224,32,16,75,40,154,196,138,4,138,196,139,36, + 136,36,136,36,138,36,157,196,64,8,32,16,31,224,14,14, + 28,16,1,255,31,224,32,16,72,200,153,36,138,4,138,196, + 139,36,138,36,138,36,138,36,157,196,64,8,32,16,31,224, + 14,14,28,16,1,255,31,224,32,16,75,232,154,36,136,36, + 136,68,136,132,136,132,136,132,136,132,157,196,64,8,32,16, + 31,224,14,14,28,16,1,255,31,224,32,16,73,200,154,36, + 138,36,138,36,137,196,138,36,138,36,138,36,157,196,64,8, + 32,16,31,224,14,14,28,16,1,255,31,224,32,16,73,200, + 154,36,138,36,138,36,137,228,136,36,136,36,138,36,157,196, + 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, + 88,200,165,36,133,36,133,36,137,36,145,36,161,36,165,36, + 188,196,64,8,32,16,31,224,15,14,28,16,0,255,64,4, + 129,2,129,2,129,2,129,2,129,2,129,2,129,2,129,2, + 129,2,129,2,129,2,129,2,64,4,15,14,28,16,0,255, + 64,4,135,130,136,66,136,66,128,66,128,66,128,66,128,130, + 131,2,132,2,136,66,136,66,143,194,64,4,15,14,28,16, + 0,255,64,4,135,130,136,66,136,66,128,66,128,130,131,2, + 128,130,128,66,128,66,136,66,136,66,135,130,64,4,15,14, + 28,16,0,255,65,132,130,130,130,130,130,130,132,130,132,130, + 136,130,136,130,143,226,128,130,128,130,128,130,128,130,64,4, + 15,14,28,16,0,255,64,4,143,194,136,2,136,2,136,2, + 139,130,140,66,136,66,128,66,128,66,136,66,136,66,135,130, + 64,4,15,14,28,16,0,255,64,4,135,130,136,66,136,66, + 136,2,136,2,139,130,140,66,136,66,136,66,136,66,136,66, + 135,130,64,4,15,14,28,16,0,255,64,4,143,226,136,34, + 136,34,128,66,128,130,128,130,128,130,129,2,129,2,129,2, + 129,2,129,2,64,4,15,14,28,16,0,255,64,4,135,130, + 136,66,136,66,136,66,136,66,135,130,136,66,136,66,136,66, + 136,66,136,66,135,130,64,4,15,14,28,16,0,255,64,4, + 135,130,136,66,136,66,136,66,136,66,136,194,135,66,128,66, + 128,66,136,66,136,66,135,130,64,4,15,14,28,16,0,255, + 64,4,136,226,137,18,137,18,137,18,137,18,137,18,137,18, + 137,18,137,18,137,18,137,18,136,226,64,4,15,14,28,16, + 0,255,64,4,136,34,136,34,136,34,136,34,136,34,136,34, + 136,34,136,34,136,34,136,34,136,34,136,34,64,4,15,14, + 28,16,0,255,64,4,145,226,146,18,146,18,144,18,144,18, + 144,34,144,194,145,2,146,2,146,18,146,18,147,242,64,4, + 15,14,28,16,0,255,64,4,145,226,146,18,146,18,144,18, + 144,34,144,194,144,34,144,18,144,18,146,18,146,18,145,226, + 64,4,15,14,28,16,0,255,64,4,144,98,144,162,144,162, + 144,162,145,34,145,34,146,34,146,34,147,250,144,34,144,34, + 144,34,64,4,15,14,28,16,0,255,64,4,147,242,146,2, + 146,2,146,2,146,226,147,18,146,18,144,18,144,18,146,18, + 146,18,145,226,64,4,15,14,28,16,0,255,64,4,145,226, + 146,18,146,18,146,2,146,2,146,226,147,18,146,18,146,18, + 146,18,146,18,145,226,64,4,15,14,28,16,0,255,64,4, + 147,242,146,18,146,18,144,34,144,66,144,66,144,66,144,130, + 144,130,144,130,144,130,144,130,64,4,15,14,28,16,0,255, + 64,4,145,226,146,18,146,18,146,18,146,18,145,226,146,18, + 146,18,146,18,146,18,146,18,145,226,64,4,15,14,28,16, + 0,255,64,4,145,226,146,18,146,18,146,18,146,18,146,50, + 145,210,144,18,144,18,146,18,146,18,145,226,64,4,15,14, + 28,16,0,255,64,4,156,114,162,138,162,138,130,138,130,138, + 132,138,136,138,144,138,160,138,162,138,162,138,190,114,64,4, + 6,14,14,16,4,255,32,96,160,32,32,32,32,32,32,32, + 32,32,32,36,9,14,28,16,3,255,120,0,132,0,132,0, + 4,0,4,0,4,0,8,0,48,0,64,0,128,0,128,0, + 132,0,132,0,252,128,9,14,28,16,3,255,120,0,132,0, + 132,0,4,0,4,0,8,0,48,0,8,0,4,0,4,0, + 132,0,132,0,132,0,120,128,10,15,30,16,3,254,24,0, + 40,0,40,0,40,0,72,0,72,0,72,0,136,0,136,0, + 254,0,8,0,8,0,8,0,8,64,8,0,9,14,28,16, + 3,255,252,0,128,0,128,0,128,0,128,0,128,0,184,0, + 196,0,132,0,4,0,4,0,132,0,132,0,120,128,9,14, + 28,16,3,255,120,0,132,0,132,0,132,0,128,0,128,0, + 184,0,196,0,132,0,132,0,132,0,132,0,132,0,120,128, + 10,14,28,16,3,255,254,0,130,0,130,0,4,0,8,0, + 8,0,8,0,16,0,16,0,16,0,16,0,16,0,16,0, + 16,64,9,14,28,16,3,255,120,0,132,0,132,0,132,0, + 132,0,72,0,48,0,72,0,132,0,132,0,132,0,132,0, + 132,0,120,128,9,14,28,16,3,255,120,0,132,0,132,0, + 132,0,132,0,132,0,140,0,116,0,4,0,4,0,132,0, + 132,0,132,0,120,128,13,14,28,16,0,255,35,192,100,32, + 164,32,36,32,36,32,36,32,36,32,36,32,36,32,36,32, + 36,32,36,32,36,32,35,200,12,14,28,16,0,255,32,128, + 97,128,162,128,32,128,32,128,32,128,32,128,32,128,32,128, + 32,128,32,128,32,128,32,128,32,144,14,14,28,16,0,255, + 35,192,100,32,164,32,32,32,32,32,32,32,32,64,33,128, + 34,0,36,0,36,0,36,32,36,32,39,228,14,14,28,16, + 0,255,35,192,100,32,164,32,32,32,32,32,32,64,33,128, + 32,64,32,32,32,32,36,32,36,32,36,32,35,196,13,14, + 28,16,0,255,32,192,97,64,161,64,33,64,34,64,34,64, + 34,64,36,64,36,64,39,240,32,64,32,64,32,64,32,72, + 14,14,28,16,0,255,39,224,100,0,164,0,36,0,36,0, + 36,0,37,192,38,32,36,32,32,32,32,32,36,32,36,32, + 35,196,14,14,28,16,0,255,35,192,100,32,164,32,36,32, + 36,0,36,0,37,192,38,32,36,32,36,32,36,32,36,32, + 36,32,35,196,14,14,28,16,0,255,39,240,100,16,164,16, + 32,32,32,64,32,64,32,64,32,128,32,128,32,128,32,128, + 32,128,32,128,32,132,14,14,28,16,0,255,35,192,100,32, + 164,32,36,32,36,32,34,64,33,128,34,64,36,32,36,32, + 36,32,36,32,36,32,35,196,14,14,28,16,0,255,35,192, + 100,32,164,32,36,32,36,32,36,32,36,96,35,160,32,32, + 32,32,36,32,36,32,36,32,35,196,13,14,28,16,1,255, + 113,192,138,32,138,32,10,32,10,32,10,32,50,32,66,32, + 130,32,130,32,130,32,138,32,138,32,249,200,14,14,28,16, + 1,255,48,48,64,8,128,4,128,4,135,132,136,68,128,68, + 135,196,136,68,136,68,135,180,128,4,64,8,48,48,14,14, + 28,16,1,255,48,48,72,8,152,4,136,4,139,132,140,68, + 136,36,136,36,136,36,140,68,155,132,128,4,64,8,48,48, + 14,14,28,16,1,255,48,48,64,8,128,4,128,4,135,132, + 136,68,144,4,144,4,144,36,136,68,135,132,128,4,64,8, + 48,48,14,14,28,16,1,255,48,48,64,72,128,196,128,68, + 135,68,136,196,144,68,144,68,144,68,136,196,135,100,128,4, + 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, + 128,4,143,132,144,68,144,68,159,196,144,4,144,68,143,132, + 128,4,64,8,48,48,14,14,28,16,1,255,48,48,65,136, + 130,196,130,4,143,132,130,4,130,4,130,4,130,4,130,4, + 135,4,128,4,64,8,48,48,14,14,28,16,1,255,48,48, + 64,8,128,4,128,100,135,132,136,68,136,68,159,132,144,4, + 143,196,144,36,144,36,79,200,48,48,14,14,28,16,1,255, + 48,48,72,8,152,4,136,4,137,196,142,68,136,68,136,68, + 136,68,136,68,156,228,128,4,64,8,48,48,14,14,28,16, + 1,255,49,48,65,8,128,4,128,4,129,4,131,4,129,4, + 129,4,129,4,129,4,131,132,128,4,64,8,48,48,14,14, + 28,16,1,255,49,48,65,8,128,4,128,4,129,4,131,4, + 129,4,129,4,129,4,129,4,129,4,137,4,70,8,48,48, + 14,14,28,16,1,255,48,48,72,8,152,4,136,4,137,196, + 136,132,137,4,143,4,137,132,136,196,156,228,128,4,64,8, + 48,48,14,14,28,16,1,255,48,48,66,8,134,4,130,4, + 130,4,130,4,130,4,130,4,130,4,130,4,135,4,128,4, + 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, + 128,4,150,196,187,68,146,68,146,68,146,68,146,68,187,100, + 128,4,64,8,48,48,14,14,28,16,1,255,48,48,64,8, + 128,4,128,4,137,196,158,68,136,68,136,68,136,68,136,68, + 156,228,128,4,64,8,48,48,14,14,28,16,1,255,48,48, + 64,8,128,4,128,4,143,132,144,68,144,68,144,68,144,68, + 144,68,143,132,128,4,64,8,48,48,14,14,28,16,1,255, + 48,48,64,8,128,4,128,4,139,132,156,68,136,36,136,36, + 136,36,140,68,139,132,136,4,92,8,48,48,14,14,28,16, + 1,255,48,48,64,8,128,4,128,4,135,68,136,196,144,68, + 144,68,144,68,136,196,135,68,128,68,64,232,48,48,14,14, + 28,16,1,255,48,48,64,8,128,4,128,4,137,196,158,100, + 136,4,136,4,136,4,136,4,156,4,128,4,64,8,48,48, + 14,14,28,16,1,255,48,48,64,8,128,4,128,4,135,196, + 136,36,136,4,135,196,128,36,136,36,135,196,128,4,64,8, + 48,48,14,14,28,16,1,255,48,48,64,8,128,4,130,4, + 130,4,143,132,130,4,130,4,130,4,130,68,131,132,128,4, + 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, + 128,4,136,68,152,196,136,68,136,68,136,68,136,196,143,100, + 128,4,64,8,48,48,14,14,28,16,1,255,48,48,64,8, + 128,4,128,4,156,116,136,36,132,68,132,68,130,132,130,132, + 129,4,128,4,64,8,48,48,14,14,28,16,1,255,48,48, + 64,8,128,4,128,4,191,116,146,36,146,36,137,68,139,68, + 132,132,132,132,128,4,64,8,48,48,14,14,28,16,1,255, + 48,48,64,8,128,4,128,4,156,228,136,68,132,132,131,4, + 132,132,136,68,156,228,128,4,64,8,48,48,14,14,28,16, + 1,255,48,48,64,8,128,4,128,4,184,228,144,68,136,132, + 133,4,130,4,130,4,135,4,128,4,64,8,48,48,14,14, + 28,16,1,255,48,48,64,8,128,4,128,4,135,228,132,68, + 136,132,129,4,130,4,132,36,143,196,128,4,64,8,48,48, + 15,15,30,16,0,255,7,192,24,48,33,8,66,132,68,68, + 132,66,132,66,135,194,132,66,132,66,68,68,76,100,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 79,132,68,68,132,34,132,66,135,130,132,66,132,34,68,68, + 79,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,67,196,68,36,132,2,132,2,132,2,132,2, + 132,2,68,36,67,196,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,79,132,68,68,132,34,132,34, + 132,34,132,34,132,34,68,68,79,132,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,79,228,68,36, + 132,2,132,2,135,130,132,2,132,2,68,36,79,228,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 79,228,68,36,132,2,132,2,135,130,132,2,132,2,68,4, + 78,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,67,196,68,36,132,2,132,2,132,226,132,34, + 132,34,68,100,67,164,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,78,228,68,68,132,66,132,66, + 135,194,132,66,132,66,68,68,78,228,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,67,132,65,4, + 129,2,129,2,129,2,129,2,129,2,65,4,67,132,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 65,196,64,132,128,130,128,130,128,130,128,130,128,130,72,132, + 71,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,78,100,68,68,132,130,133,2,134,2,133,2, + 132,130,68,68,78,100,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,78,4,68,4,132,2,132,2, + 132,2,132,2,132,2,68,36,79,196,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,76,100,70,196, + 134,194,133,66,133,66,132,66,132,66,68,68,78,228,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 76,100,68,68,134,66,134,66,133,66,133,66,132,194,68,196, + 76,100,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,67,132,68,68,136,34,136,34,136,34,136,34, + 136,34,68,68,67,132,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,79,132,68,68,132,66,132,66, + 135,130,132,2,132,2,68,4,78,4,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,67,132,68,68, + 136,34,136,34,136,34,136,34,137,162,68,68,67,164,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 79,132,68,68,132,66,132,66,135,130,133,2,132,130,68,68, + 78,36,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,67,132,68,68,132,2,132,2,131,130,128,66, + 128,66,68,68,67,132,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,79,228,73,36,129,2,129,2, + 129,2,129,2,129,2,65,4,67,132,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,78,228,68,68, + 132,66,132,66,132,66,132,66,132,66,68,68,67,132,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 76,100,68,68,132,66,132,66,130,130,130,130,130,130,65,4, + 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,76,100,69,68,133,66,133,66,133,66,133,66, + 134,194,68,68,68,68,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,78,228,68,68,132,66,130,130, + 129,2,130,130,132,66,68,68,78,228,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,78,228,68,68, + 132,66,130,130,129,2,129,2,129,2,65,4,67,132,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 79,228,72,36,128,66,128,130,129,2,130,2,132,2,72,36, + 79,228,32,8,24,48,7,192,14,14,28,16,1,255,31,224, + 32,16,64,8,128,4,143,132,144,68,128,68,143,196,144,68, + 144,68,143,180,64,8,32,16,31,224,14,14,28,16,1,255, + 31,224,40,16,88,8,136,4,139,132,140,68,136,36,136,36, + 136,36,140,68,155,132,64,8,32,16,31,224,14,14,28,16, + 1,255,31,224,32,16,64,8,128,4,135,132,136,68,144,4, + 144,4,144,4,136,100,135,132,64,8,32,16,31,224,14,14, + 28,16,1,255,31,224,32,80,64,200,128,68,135,68,136,196, + 144,68,144,68,144,68,144,68,143,164,64,8,32,16,31,224, + 14,14,28,16,1,255,31,224,32,16,64,8,128,4,135,132, + 136,68,144,36,159,228,144,4,136,36,135,196,64,8,32,16, + 31,224,14,14,28,16,1,255,31,224,35,144,66,200,130,4, + 143,132,130,4,130,4,130,4,130,4,130,4,135,4,64,8, + 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, + 128,196,135,132,136,68,136,68,143,132,144,4,159,196,144,36, + 80,40,47,208,31,224,14,14,28,16,1,255,31,224,40,16, + 88,8,136,4,139,196,140,68,136,68,136,68,136,68,136,68, + 156,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, + 33,16,65,8,128,4,129,4,131,4,129,4,129,4,129,4, + 129,4,131,132,64,8,32,16,31,224,14,14,28,16,1,255, + 31,224,33,16,65,8,128,4,129,4,131,4,129,4,129,4, + 129,4,129,4,129,4,89,8,38,16,31,224,14,14,28,16, + 1,255,31,224,40,16,88,8,136,4,137,228,136,132,139,4, + 141,132,136,196,136,100,156,244,64,8,32,16,31,224,14,14, + 28,16,1,255,31,224,34,16,70,8,130,4,130,4,130,4, + 130,4,130,4,130,4,130,4,135,4,64,8,32,16,31,224, + 14,14,28,16,1,255,31,224,32,16,64,8,128,4,150,196, + 187,68,146,68,146,68,146,68,146,68,187,100,64,8,32,16, + 31,224,14,14,28,16,1,255,31,224,32,16,64,8,128,4, + 139,196,156,68,136,68,136,68,136,68,136,68,156,228,64,8, + 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, + 128,4,135,196,136,36,136,36,136,36,136,36,136,36,135,196, + 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, + 64,8,128,4,139,132,156,68,136,36,136,36,136,36,140,68, + 139,132,72,8,40,16,31,224,14,14,28,16,1,255,31,224, + 32,16,64,8,128,4,135,68,136,196,144,68,144,68,144,68, + 136,196,135,68,64,72,32,80,31,224,14,14,28,16,1,255, + 31,224,32,16,64,8,128,4,137,196,158,100,136,4,136,4, + 136,4,136,4,156,4,64,8,32,16,31,224,14,14,28,16, + 1,255,31,224,32,16,64,8,128,4,135,196,136,36,140,4, + 131,132,128,100,136,36,135,196,64,8,32,16,31,224,14,14, + 28,16,1,255,31,224,32,16,64,8,130,4,130,4,143,132, + 130,4,130,4,130,4,130,68,131,132,64,8,32,16,31,224, + 14,14,28,16,1,255,31,224,32,16,64,8,128,4,136,68, + 152,196,136,68,136,68,136,68,136,68,143,164,64,8,32,16, + 31,224,14,14,28,16,1,255,31,224,32,16,64,8,128,4, + 156,116,136,36,132,68,132,68,130,132,130,132,129,4,64,8, + 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, + 128,4,247,116,162,36,162,36,147,68,149,68,136,132,136,132, + 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, + 64,8,128,4,184,228,136,132,133,4,130,4,133,4,136,132, + 184,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, + 32,16,64,8,128,4,184,228,144,68,136,132,133,4,130,4, + 130,4,135,4,64,8,32,16,31,224,14,14,28,16,1,255, + 31,224,32,16,64,8,128,4,143,196,136,68,144,132,131,4, + 132,4,136,68,159,132,64,8,32,16,31,224,16,15,30,16, + 0,254,7,224,24,24,32,4,67,194,68,34,132,33,132,33, + 132,33,132,33,132,33,68,34,67,194,32,4,24,24,7,224, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,188, + 231,60,247,188,247,188,227,28,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, + 231,220,247,188,247,124,227,28,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, + 231,220,247,60,247,220,227,60,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,246,188, + 230,188,246,28,247,188,227,188,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,28, + 231,124,247,60,247,220,227,60,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, + 230,252,246,60,246,220,227,60,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,246,60, + 231,188,247,188,247,124,227,124,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, + 230,220,247,60,246,220,227,60,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, + 230,220,247,28,247,220,227,60,127,248,127,248,63,240,15,192, + 14,13,26,16,1,255,15,192,63,240,127,248,127,248,231,156, + 251,108,247,108,239,108,227,156,127,248,127,248,63,240,15,192, + 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, + 144,137,161,133,160,133,160,133,145,201,80,10,76,50,35,196, + 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, + 76,50,80,10,145,137,160,69,160,133,161,5,145,201,80,10, + 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, + 24,24,35,196,76,50,80,10,145,137,160,69,161,133,160,69, + 145,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, + 0,254,7,224,24,24,35,196,76,50,80,10,146,137,162,133, + 163,197,160,133,144,137,80,10,76,50,35,196,24,24,7,224, + 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, + 145,201,161,5,161,133,160,69,145,137,80,10,76,50,35,196, + 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, + 76,50,80,10,145,137,162,5,163,133,162,69,145,137,80,10, + 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, + 24,24,35,196,76,50,80,10,145,201,160,69,160,69,160,133, + 144,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, + 0,254,7,224,24,24,35,196,76,50,80,10,145,137,162,69, + 161,133,162,69,145,137,80,10,76,50,35,196,24,24,7,224, + 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, + 145,137,162,69,161,197,160,69,145,137,80,10,76,50,35,196, + 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, + 76,50,80,10,146,105,166,149,162,149,162,149,151,105,80,10, + 76,50,35,196,24,24,7,224,14,13,26,16,1,255,15,192, + 63,240,127,248,127,248,252,252,251,124,251,124,251,124,252,252, + 127,248,127,248,63,240,15,192}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 6, '1' Height: 3 + Calculated Max Values w= 8 h=10 x= 2 y= 4 dx= 8 dy= 0 ascent=11 len=10 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 + Pure Font ascent = 6 descent= 0 + X Font ascent = 8 descent= 0 + Max Font ascent =11 descent= 0 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_75r[580] U8G_SECTION(".progmem.u8g_font_unifont_75r") = { + 0,16,16,0,254,6,1,137,0,0,32,79,0,11,0,8, + 0,7,7,7,8,1,1,254,254,254,254,254,254,254,7,7, + 7,8,1,1,254,130,130,130,130,130,254,7,7,7,8,1, + 1,124,130,130,130,130,130,124,7,7,7,8,1,1,254,130, + 186,186,186,130,254,7,7,7,8,1,1,254,130,254,130,254, + 130,254,7,7,7,8,1,1,254,170,170,170,170,170,254,7, + 7,7,8,1,1,254,170,254,170,254,170,254,7,7,7,8, + 1,1,254,166,146,202,166,146,254,7,7,7,8,1,1,254, + 202,146,166,202,146,254,7,7,7,8,1,1,254,170,214,170, + 214,170,254,4,4,4,8,2,4,240,240,240,240,4,4,4, + 8,2,4,240,144,144,240,7,4,4,8,1,4,254,254,254, + 254,7,4,4,8,1,4,254,130,130,254,4,7,7,8,2, + 2,240,240,240,240,240,240,240,4,7,7,8,2,2,240,144, + 144,144,144,144,240,8,3,3,8,0,4,63,126,252,8,3, + 3,8,0,4,63,66,252,6,6,6,8,1,3,48,48,120, + 120,252,252,6,6,6,8,1,3,48,48,72,72,132,252,6, + 3,3,8,1,3,48,120,252,6,3,3,8,1,3,48,72, + 252,6,6,6,8,1,3,192,240,252,252,240,192,6,6,6, + 8,1,3,192,176,140,140,176,192,4,4,4,8,2,4,192, + 240,240,192,4,4,4,8,2,4,192,176,176,192,6,5,5, + 8,1,3,192,240,252,240,192,6,5,5,8,1,3,192,176, + 140,176,192,6,6,6,8,1,3,252,252,120,120,48,48,6, + 6,6,8,1,3,252,132,72,72,48,48,6,3,3,8,1, + 3,252,120,48,6,3,3,8,1,3,252,72,48,6,6,6, + 8,1,3,12,60,252,252,60,12,6,6,6,8,1,3,12, + 52,196,196,52,12,4,4,4,8,2,4,48,240,240,48,4, + 4,4,8,2,4,48,208,208,48,6,5,5,8,1,3,12, + 60,252,60,12,6,5,5,8,1,3,12,52,196,52,12,7, + 7,7,8,1,2,16,56,124,254,124,56,16,7,7,7,8, + 1,2,16,40,68,130,68,40,16,7,7,7,8,1,2,16, + 40,84,186,84,40,16,7,7,7,8,1,2,56,68,178,186, + 154,68,56,6,10,10,8,1,1,48,48,72,72,132,132,72, + 72,48,48,7,7,7,8,1,2,56,68,130,130,130,68,56, + 7,7,7,8,1,2,40,0,130,0,130,0,40,7,7,7, + 8,1,2,56,108,170,170,170,108,56,7,7,7,8,1,2, + 56,68,146,170,146,68,56,7,7,7,8,1,2,56,124,254, + 254,254,124,56}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 8 + Calculated Max Values w=16 h=16 x= 3 y= 6 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent= 0 + X Font ascent =10 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_76[2532] U8G_SECTION(".progmem.u8g_font_unifont_76") = { + 0,16,16,0,254,10,2,68,4,220,32,159,0,14,254,10, + 0,7,12,12,8,1,0,16,146,68,0,56,124,124,56,0, + 68,146,16,8,4,4,8,0,6,32,118,255,126,7,8,8, + 8,1,2,56,124,254,16,16,16,16,32,16,16,32,16,0, + 254,139,200,3,192,47,241,4,36,138,80,40,18,10,80,73, + 148,4,33,71,224,8,16,16,136,120,30,16,136,8,16,7, + 224,7,11,11,8,1,0,68,68,72,72,80,82,4,96,144, + 144,96,7,6,6,8,1,3,16,16,254,56,108,68,7,7, + 7,8,1,3,16,16,238,68,84,108,68,5,9,9,8,2, + 0,8,16,32,64,128,64,40,24,56,6,8,8,8,1,0, + 252,132,136,144,160,148,140,156,8,8,8,8,0,0,60,66, + 129,153,153,129,66,60,8,6,6,8,0,2,24,36,36,102, + 165,66,8,6,6,8,0,2,66,165,102,36,36,24,5,6, + 6,8,1,2,8,16,96,144,144,96,7,9,9,8,1,0, + 12,18,18,12,16,96,144,144,96,7,6,6,8,1,1,124, + 198,0,84,198,254,7,7,7,8,1,1,124,130,186,124,146, + 130,254,7,7,7,8,1,0,254,130,130,130,130,130,254,7, + 8,8,8,1,0,8,254,138,138,202,178,130,254,7,7,7, + 8,1,0,254,130,170,146,170,130,254,5,10,10,8,2,0, + 136,136,80,80,32,32,80,80,136,136,7,12,12,8,1,2, + 10,160,8,130,56,124,254,16,16,16,16,32,12,13,26,16, + 2,0,36,128,73,0,73,0,36,128,36,128,73,0,0,0, + 127,32,255,208,191,80,128,80,128,224,127,0,11,13,26,16, + 2,0,4,0,10,0,17,0,32,128,64,64,128,32,128,32, + 128,32,128,32,128,32,128,32,128,32,255,224,11,13,26,16, + 2,0,4,0,14,0,31,0,63,128,127,192,255,224,255,224, + 255,224,255,224,255,224,255,224,255,224,255,224,13,13,26,16, + 1,255,5,0,15,128,15,128,103,48,242,120,127,240,242,120, + 98,48,4,0,4,0,4,0,8,0,16,0,14,15,30,16, + 1,254,102,24,79,24,223,176,159,160,255,160,255,32,255,56, + 126,228,127,36,127,40,63,152,63,144,31,176,15,32,6,0, + 7,4,4,8,1,2,252,62,62,28,7,4,4,8,1,2, + 126,248,248,112,7,4,4,8,1,2,252,34,50,28,4,7, + 7,8,2,2,16,16,112,208,144,144,96,7,4,4,8,1, + 2,126,136,152,112,4,7,7,8,2,0,96,144,144,208,112, + 16,16,8,12,12,8,0,0,231,165,126,129,165,165,129,90, + 90,66,189,231,4,10,10,8,2,0,224,16,16,32,32,64, + 64,128,128,112,13,13,26,16,1,0,31,192,32,32,69,16, + 141,136,157,200,189,232,255,248,130,8,135,8,143,136,95,208, + 32,32,31,192,15,13,26,16,0,255,4,64,8,32,16,16, + 16,16,19,144,12,96,62,248,68,68,133,66,131,130,2,128, + 4,64,24,48,13,15,30,16,1,254,6,0,2,0,255,248, + 71,16,63,224,2,0,26,192,34,32,31,192,18,64,15,128, + 10,128,7,0,10,128,2,0,5,8,8,8,2,0,112,136, + 80,32,248,32,32,32,5,9,9,8,2,0,32,112,32,248, + 32,48,96,32,32,6,10,10,8,1,0,56,36,36,56,32, + 168,112,32,112,168,5,9,9,8,2,0,32,112,32,248,32, + 32,32,32,32,7,7,7,8,1,0,56,16,146,254,146,16, + 56,8,9,9,8,0,1,30,33,64,194,199,194,64,33,30, + 11,11,22,16,2,0,21,0,27,0,0,0,85,64,164,160, + 164,160,164,160,149,32,78,64,31,0,4,0,11,12,24,16, + 3,255,4,0,21,0,36,128,78,64,213,96,213,96,206,96, + 228,224,223,96,142,32,21,0,4,0,8,8,8,8,0,0, + 12,2,57,121,13,62,99,193,7,8,8,8,1,0,124,146, + 146,146,186,214,146,124,13,12,24,16,1,0,31,192,32,32, + 64,16,64,16,152,72,188,8,254,24,239,56,255,248,127,240, + 63,224,31,192,13,10,20,16,1,0,255,248,255,248,0,0, + 0,0,255,248,255,248,0,0,0,0,255,248,255,248,13,10, + 20,16,1,0,248,248,248,248,0,0,0,0,255,248,255,248, + 0,0,0,0,255,248,255,248,13,10,20,16,1,0,255,248, + 255,248,0,0,0,0,248,248,248,248,0,0,0,0,255,248, + 255,248,13,10,20,16,1,0,248,248,248,248,0,0,0,0, + 248,248,248,248,0,0,0,0,255,248,255,248,13,10,20,16, + 1,0,255,248,255,248,0,0,0,0,255,248,255,248,0,0, + 0,0,248,248,248,248,13,10,20,16,1,0,248,248,248,248, + 0,0,0,0,255,248,255,248,0,0,0,0,248,248,248,248, + 13,10,20,16,1,0,255,248,255,248,0,0,0,0,248,248, + 248,248,0,0,0,0,248,248,248,248,13,10,20,16,1,0, + 248,248,248,248,0,0,0,0,248,248,248,248,0,0,0,0, + 248,248,248,248,7,7,7,8,1,0,146,124,124,238,124,124, + 146,8,10,10,8,0,1,60,66,129,165,129,153,165,129,66, + 60,8,9,9,8,0,1,60,66,129,165,129,165,153,66,60, + 8,9,9,8,0,1,60,126,255,219,255,219,231,126,60,7, + 7,7,8,1,2,146,84,56,238,56,84,146,6,10,10,8, + 2,0,224,48,24,20,20,20,20,24,48,224,6,10,10,8, + 1,0,28,48,96,160,160,160,160,96,48,28,5,11,11,8, + 2,0,136,136,112,136,136,136,112,32,248,32,32,5,9,9, + 8,2,0,112,136,136,136,112,32,248,32,32,5,10,10,8, + 2,1,32,32,248,32,32,112,136,136,136,112,7,8,8,8, + 1,1,14,6,10,112,136,136,136,112,6,10,10,8,1,0, + 4,4,4,116,140,12,20,252,4,4,6,10,10,8,1,0, + 64,64,224,64,88,100,68,72,72,72,7,9,9,8,1,0, + 214,84,124,84,214,16,56,40,56,8,11,11,8,0,255,8, + 89,203,73,73,73,62,8,62,8,8,6,10,10,8,1,0, + 248,132,132,132,248,128,128,128,128,252,7,10,10,8,1,0, + 68,170,40,40,16,16,16,16,16,16,7,7,7,8,1,0, + 130,68,56,68,68,68,56,7,10,10,8,1,0,130,124,40, + 40,40,40,40,40,124,130,7,8,8,8,1,0,124,146,144, + 96,12,18,146,124,8,9,9,8,0,0,28,34,34,18,116, + 148,148,101,2,7,10,10,8,1,0,168,248,170,174,170,170, + 170,170,12,248,7,6,6,8,1,1,56,68,68,238,0,254, + 7,10,10,8,1,0,168,248,168,168,168,168,168,168,170,6, + 7,7,7,8,1,0,30,6,138,82,32,80,136,6,10,10, + 8,1,0,128,240,144,144,156,20,28,16,16,96,6,6,6, + 8,1,2,84,168,0,0,84,168,6,9,9,8,1,0,132, + 132,72,72,252,72,72,132,132,7,13,13,8,1,0,16,56, + 146,186,198,130,68,68,68,130,130,130,254,7,11,11,8,1, + 0,16,56,198,130,68,68,68,130,130,130,254,7,9,9,8, + 1,0,170,254,130,130,68,68,130,130,254,7,10,10,8,1, + 0,16,40,68,68,68,68,40,238,130,254,6,11,11,8,1, + 0,4,60,68,132,132,116,36,68,132,132,252,6,8,8,8, + 1,0,48,72,72,48,72,72,132,252,7,13,13,8,1,0, + 16,56,146,186,254,254,124,124,124,254,254,254,254,7,11,11, + 8,1,0,16,56,254,238,124,124,124,254,254,254,254,7,8, + 8,8,1,0,170,254,254,124,124,254,254,254,7,10,10,8, + 1,0,16,56,108,68,108,124,56,254,254,254,6,11,11,8, + 1,0,4,60,108,252,252,124,60,124,252,252,252,6,8,8, + 8,1,0,48,120,120,48,120,120,252,252,7,10,10,8,1, + 0,16,16,56,124,254,254,254,124,16,56,7,9,9,8,1, + 0,108,146,130,130,130,68,40,16,16,5,10,10,8,2,0, + 32,32,80,80,136,136,80,80,32,32,7,10,10,8,1,0, + 56,56,56,16,254,254,214,16,16,56,7,10,10,8,1,0, + 16,16,40,68,130,130,130,124,16,56,7,9,9,8,1,0, + 108,254,254,254,254,124,56,16,16,5,10,10,8,2,0,32, + 32,112,112,248,248,112,112,32,32,7,10,10,8,1,0,56, + 40,56,16,238,186,214,16,16,56,8,11,11,8,0,0,8, + 81,146,146,146,73,73,73,82,129,126,4,10,10,8,1,0, + 16,16,16,16,16,16,16,112,240,224,6,10,10,8,1,0, + 16,24,20,20,16,16,16,112,240,224,8,11,11,8,0,0, + 28,23,17,17,17,17,113,241,231,15,14,8,11,11,8,0, + 0,28,23,17,29,23,17,113,241,231,15,14,6,12,12,8, + 1,0,128,128,128,128,128,184,204,140,136,144,160,192,6,11, + 11,8,1,0,128,128,156,252,228,132,156,252,228,4,4,6, + 13,13,8,1,255,8,72,76,124,248,200,72,76,124,248,200, + 72,64,7,10,10,8,1,0,40,16,16,146,124,146,16,16, + 16,40,7,10,10,8,1,0,56,40,16,214,186,214,16,16, + 40,16,16,16,32,16,0,254,3,184,4,165,8,179,5,9, + 18,5,40,9,68,31,238,0,40,15,48,73,36,201,13,101, + 22,19,37,120,60,192,0,64,15,16,32,16,0,254,3,128, + 4,64,4,64,8,32,0,40,57,24,27,56,41,0,33,8, + 67,132,64,4,128,34,128,66,126,252,0,64,0,32,15,16, + 32,16,0,254,3,128,4,64,4,64,8,32,0,40,59,24, + 24,184,41,0,34,8,67,132,64,4,128,34,128,66,126,252, + 0,64,0,32,15,16,32,16,0,254,3,128,4,64,4,64, + 8,32,0,40,57,24,24,184,43,0,32,136,67,4,64,4, + 128,34,128,66,126,252,0,64,0,32,15,16,32,16,0,254, + 3,128,4,64,4,64,8,32,0,40,58,152,26,184,43,128, + 32,136,64,132,64,4,128,34,128,66,126,252,0,64,0,32, + 15,16,32,16,0,254,3,128,4,64,4,64,8,32,0,40, + 59,152,26,56,43,0,32,136,67,4,64,4,128,34,128,66, + 126,252,0,64,0,32,15,16,32,16,0,254,3,128,4,64, + 4,64,8,32,0,40,57,152,26,56,43,128,34,72,65,132, + 64,4,128,34,128,66,126,252,0,64,0,32,15,16,32,16, + 0,254,3,128,4,64,4,64,8,32,0,40,59,152,24,184, + 41,0,33,8,65,4,64,4,128,34,128,66,126,252,0,64, + 0,32,15,16,32,16,0,254,3,128,4,64,4,64,8,32, + 0,40,56,24,24,56,40,0,32,8,64,4,64,4,128,34, + 128,66,126,252,0,64,0,32,16,16,32,16,0,254,3,184, + 7,189,15,191,7,15,18,7,56,15,124,31,254,0,56,15, + 48,79,36,207,13,231,31,243,61,248,60,192,0,64,15,16, + 32,16,0,254,7,192,15,224,60,120,123,188,119,172,127,204, + 199,142,231,254,215,238,223,238,111,108,118,220,124,60,62,248, + 15,96,7,192,15,16,32,16,0,254,7,192,24,48,32,8, + 67,132,68,84,64,52,184,114,152,2,168,18,160,18,80,148, + 73,36,67,196,33,8,24,176,7,192,13,12,24,16,0,255, + 7,0,24,192,32,32,64,16,77,144,146,72,146,72,77,144, + 64,16,32,32,24,192,7,0,12,11,22,16,2,0,24,0, + 24,0,16,0,30,0,16,0,95,128,128,128,128,64,129,64, + 66,48,60,0}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 11, '1' Height: 11 + Calculated Max Values w=16 h=16 x= 4 y= 4 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =11 descent= 0 + X Font ascent =11 descent=-1 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_77[1587] U8G_SECTION(".progmem.u8g_font_unifont_77") = { + 0,16,16,0,254,11,3,99,5,215,32,99,0,14,254,11, + 255,9,9,18,16,3,1,255,128,128,128,128,128,128,128,136, + 128,128,128,128,128,128,128,255,128,9,9,18,16,3,1,255, + 128,128,128,128,128,160,128,128,128,130,128,128,128,128,128,255, + 128,9,9,18,16,3,1,255,128,128,128,160,128,128,128,136, + 128,128,128,130,128,128,128,255,128,9,9,18,16,3,1,255, + 128,128,128,162,128,128,128,128,128,128,128,162,128,128,128,255, + 128,9,9,18,16,3,1,255,128,128,128,162,128,128,128,136, + 128,128,128,162,128,128,128,255,128,9,9,18,16,3,1,255, + 128,128,128,162,128,128,128,162,128,128,128,162,128,128,128,255, + 128,13,12,24,16,0,255,7,0,24,192,32,32,64,16,64, + 16,128,200,128,200,64,16,64,16,32,32,24,192,7,0,13, + 12,24,16,0,255,7,0,24,192,32,32,64,16,64,16,152, + 200,152,200,64,16,64,16,32,32,24,192,7,0,13,12,24, + 16,0,255,7,0,31,192,63,224,127,240,127,240,255,56,255, + 56,127,240,127,240,63,224,15,128,7,0,13,12,24,16,0, + 255,7,0,31,192,63,224,127,240,127,240,231,56,231,56,127, + 240,127,240,63,224,15,128,7,0,13,2,4,16,1,4,255, + 248,255,248,13,2,4,16,1,4,248,248,248,248,13,6,12, + 16,1,2,255,248,255,248,0,0,0,0,255,248,255,248,13, + 6,12,16,1,2,248,248,248,248,0,0,0,0,255,248,255, + 248,13,6,12,16,1,2,255,248,255,248,0,0,0,0,248, + 248,248,248,13,6,12,16,1,2,248,248,248,248,0,0,0, + 0,248,248,248,248,6,11,11,8,1,0,224,156,132,132,228, + 156,128,128,128,128,128,6,11,11,8,1,0,224,252,252,252, + 252,156,128,128,128,128,128,16,14,28,16,0,255,7,50,95, + 124,62,126,124,31,248,39,116,67,34,129,1,0,2,128,4, + 64,8,32,16,16,32,8,64,4,14,12,24,16,1,0,3, + 128,4,64,4,64,3,128,1,0,7,192,1,0,65,8,225, + 28,65,8,33,16,31,224,13,13,26,16,1,0,128,8,64, + 16,32,32,16,64,8,128,5,0,2,0,5,0,8,128,80, + 80,32,32,80,80,128,8,9,14,28,16,3,255,8,0,8, + 0,127,128,137,128,136,0,126,0,9,0,9,0,62,0,72, + 0,60,0,10,0,28,0,8,0,15,11,22,16,0,0,1, + 0,17,16,127,252,57,56,84,84,84,84,146,146,146,146,254, + 254,124,124,56,56,11,8,16,16,2,0,63,128,95,192,143, + 192,135,128,128,0,15,128,18,64,34,32,11,13,26,16,2, + 255,14,0,17,0,17,0,17,0,14,0,4,0,228,224,245, + 224,117,192,53,128,14,0,4,0,4,0,13,13,26,16,1, + 255,2,0,66,16,47,160,16,64,32,32,32,32,226,56,32, + 32,32,32,16,64,47,160,66,16,2,0,15,13,26,16,0, + 0,1,0,2,128,57,56,127,252,253,126,5,64,3,128,1, + 0,1,0,1,0,1,0,1,0,1,0,13,15,30,16,1, + 254,2,0,117,112,141,136,141,136,138,136,77,144,40,160,26, + 192,40,160,77,144,138,136,141,136,141,136,117,112,2,0,15, + 16,32,16,0,254,1,0,2,128,58,184,68,68,132,66,242, + 158,138,162,6,192,6,192,8,32,6,192,6,192,10,160,50, + 152,70,196,121,60,15,15,30,16,0,255,1,0,2,128,4, + 64,4,64,8,0,107,252,136,2,136,34,96,36,24,16,6, + 80,0,136,33,8,38,72,24,48,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,13,14,28,16,1,255,2,0,5,0,5,0,8,128,8, + 128,18,64,18,64,34,32,34,32,66,16,64,16,130,8,128, + 8,255,248,6,11,11,8,1,255,4,8,16,32,64,252,8, + 16,32,64,128,11,9,18,16,2,0,59,128,68,64,138,32, + 138,32,68,64,59,128,17,0,59,128,17,0,11,11,22,16, + 2,0,7,0,3,0,5,0,56,224,68,96,142,160,149,0, + 104,128,48,128,17,0,14,0,10,14,28,16,3,255,1,192, + 0,192,1,64,14,0,17,0,56,128,84,128,139,0,134,0, + 68,0,56,0,16,0,56,0,16,0,8,12,12,16,4,254, + 7,3,5,56,68,130,130,68,56,16,56,16,11,10,20,16, + 2,0,0,224,0,96,2,160,1,0,58,128,68,0,130,0, + 130,0,68,0,56,0,15,13,26,16,0,254,224,14,192,6, + 168,10,16,16,43,160,4,64,8,32,8,32,4,64,3,128, + 1,0,3,128,1,0,7,12,12,8,0,0,16,56,84,16, + 56,16,56,68,130,130,68,56,14,7,14,16,0,255,56,0, + 68,16,130,136,131,252,130,136,68,16,56,0,7,7,7,8, + 0,255,56,68,130,130,130,68,56,7,7,7,8,0,255,56, + 124,254,254,254,124,56,5,5,5,8,2,0,112,136,136,136, + 112,11,6,12,16,2,0,59,128,68,64,138,32,138,32,68, + 64,59,128,11,7,14,16,3,255,4,0,117,192,142,32,142, + 32,142,32,117,192,4,0,13,5,10,16,1,0,112,112,136, + 136,143,136,136,136,112,112,14,10,20,16,2,0,24,0,39, + 128,64,124,128,0,128,0,128,0,128,0,64,124,39,128,24, + 0,11,13,26,16,2,0,31,0,10,0,63,128,64,64,128, + 32,128,32,64,64,64,64,64,64,32,128,32,128,32,128,31, + 0,7,9,9,8,0,254,56,68,130,130,68,56,16,16,16, + 6,9,9,8,0,254,112,136,4,4,8,48,32,248,32,7, + 10,10,8,0,254,16,40,68,130,68,40,16,16,124,16,7, + 10,10,8,0,254,146,84,56,254,56,84,146,16,124,16,13, + 11,22,16,1,0,2,0,2,0,2,0,2,0,114,112,8, + 128,5,0,242,120,8,128,5,0,2,0,6,11,11,8,1, + 0,36,40,48,40,36,32,112,136,136,136,112,6,10,10,8, + 1,254,56,112,224,224,224,112,56,16,124,16,8,7,7,8, + 0,3,66,36,24,255,24,36,66,7,8,8,8,0,0,68, + 68,68,40,40,40,16,254,7,8,8,8,0,0,254,16,40, + 40,40,68,68,68,7,8,8,8,1,0,252,132,132,132,148, + 252,16,30,6,14,14,8,1,255,168,84,168,84,168,84,168, + 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, + 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, + 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,12, + 9,18,16,2,0,31,128,96,96,134,16,134,16,224,112,191, + 208,169,80,105,96,31,128,12,12,24,16,2,0,31,128,96, + 96,134,16,134,16,224,112,191,208,169,80,233,112,191,208,169, + 80,105,96,31,128,14,11,22,16,1,255,31,224,112,56,207, + 204,188,244,188,244,143,196,160,20,171,84,203,76,112,56,31, + 224,14,14,28,16,1,255,31,224,112,56,207,204,188,244,188, + 244,143,196,160,20,171,84,139,68,160,20,171,84,203,76,112, + 56,31,224}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 15, '1' Height: 13 + Calculated Max Values w=16 h=15 x= 7 y= 4 dx=16 dy= 0 ascent=14 len=30 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =15 descent=-2 + X Font ascent =15 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[6975] U8G_SECTION(".progmem.u8g_font_unifont_78_79") = { + 0,16,16,0,254,15,7,255,11,108,1,255,254,14,254,15, + 254,15,11,22,16,0,2,56,0,124,0,108,0,124,0,60, + 0,14,0,127,252,255,254,217,192,248,224,112,0,14,11,22, + 16,0,1,112,8,248,60,216,120,254,240,127,224,7,192,127, + 224,254,240,216,120,248,60,112,8,15,11,22,16,0,255,112, + 0,248,224,217,192,255,254,127,252,14,0,60,0,124,0,108, + 0,124,0,56,0,15,11,22,16,0,1,112,12,136,50,174, + 68,129,136,121,16,6,32,120,80,129,136,174,68,136,50,112, + 12,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,15,15,30,16,0,255,7,192,24,48,32, + 8,65,196,71,228,143,242,143,114,158,98,156,2,159,2,79, + 4,70,4,32,8,24,48,7,192,15,15,30,16,0,255,7, + 192,25,48,35,136,67,132,65,4,131,130,135,194,135,194,135, + 194,139,162,92,116,88,52,32,8,24,48,7,192,15,14,28, + 16,0,255,8,0,15,0,6,0,7,192,195,128,227,192,127, + 254,127,254,227,192,195,128,7,192,6,0,15,0,8,0,14, + 7,14,16,1,3,255,252,192,12,176,52,140,196,179,52,192, + 12,255,252,6,14,14,8,1,255,168,84,168,84,168,84,168, + 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, + 84,168,84,168,84,168,84,168,84,168,84,15,15,30,16,0, + 255,24,48,36,72,34,136,18,144,17,16,9,32,8,32,124, + 252,146,130,146,114,146,34,146,66,124,4,32,8,31,240,15, + 13,26,16,1,0,0,16,0,56,0,112,7,238,25,234,35, + 154,71,10,142,10,223,202,36,10,95,250,224,10,192,14,12, + 12,24,16,1,0,48,0,76,0,170,0,149,0,226,128,81, + 64,40,160,20,80,10,80,5,144,2,48,1,240,15,7,14, + 16,0,3,63,240,80,40,143,244,168,22,143,244,80,40,63, + 240,12,12,24,16,1,0,1,240,2,48,5,144,10,80,20, + 80,40,160,81,64,226,128,149,0,170,0,76,0,48,0,15, + 7,14,16,0,3,0,240,121,8,134,108,128,254,134,108,121, + 8,0,240,15,7,14,16,0,3,0,224,121,240,255,56,255, + 14,255,56,121,240,0,224,13,10,20,16,1,255,0,8,0, + 16,0,32,128,64,128,128,65,0,66,0,36,0,40,0,16, + 0,15,11,22,16,0,255,0,4,0,14,64,28,224,56,224, + 112,112,224,113,192,59,128,63,0,30,0,12,0,11,11,22, + 16,2,1,64,64,224,224,113,192,59,128,31,0,14,0,31, + 0,59,128,113,192,224,224,64,64,15,15,30,16,0,255,16, + 16,56,56,124,124,254,254,127,252,63,248,31,240,15,224,31, + 240,63,248,127,252,254,254,124,124,56,56,16,16,12,13,26, + 16,1,0,192,48,96,192,99,128,54,0,28,0,28,0,54, + 0,51,0,97,128,96,192,192,96,192,48,64,0,12,14,28, + 16,1,255,192,48,224,224,99,192,119,0,62,0,28,0,62, + 0,55,0,115,128,97,192,224,224,192,112,192,32,64,0,15, + 15,30,16,0,255,7,192,4,64,5,64,5,64,5,64,253, + 126,129,2,191,250,129,2,253,126,5,64,5,64,5,64,4, + 64,7,192,15,15,30,16,0,255,7,192,7,192,7,192,7, + 192,7,192,255,254,255,254,255,254,255,254,255,254,7,192,7, + 192,7,192,7,192,7,192,15,15,30,16,0,255,3,128,3, + 128,3,128,3,128,3,128,3,128,252,126,252,126,252,126,3, + 128,3,128,3,128,3,128,3,128,3,128,15,15,30,16,0, + 255,7,192,7,192,7,192,7,192,7,192,248,62,248,62,248, + 62,248,62,248,62,7,192,7,192,7,192,7,192,7,192,9, + 11,22,16,3,1,28,0,28,0,28,0,255,128,255,128,255, + 128,28,0,28,0,28,0,28,0,28,0,13,15,30,16,1, + 255,15,0,9,128,9,128,9,128,249,240,128,24,128,24,249, + 248,121,248,9,128,9,128,9,128,9,128,15,128,7,128,13, + 14,28,16,1,255,31,192,16,64,247,120,135,8,191,232,191, + 232,191,232,135,8,247,120,23,64,23,64,23,64,16,64,31, + 192,15,15,30,16,0,255,31,240,7,192,3,128,131,130,131, + 130,195,134,255,254,255,254,255,254,195,134,131,130,131,130,3, + 128,7,192,31,240,15,15,30,16,0,255,1,0,2,128,4, + 64,4,64,255,254,80,20,80,20,32,8,80,20,80,20,255, + 254,4,64,4,64,2,128,1,0,15,15,30,16,0,255,3, + 128,7,192,7,192,3,128,3,128,97,12,249,62,255,254,249, + 62,97,12,3,128,3,128,7,192,7,192,3,128,15,15,30, + 16,0,255,3,128,7,192,7,192,7,192,3,128,113,28,249, + 62,255,254,249,62,113,28,3,128,7,192,7,192,7,192,3, + 128,15,15,30,16,0,255,7,192,15,224,15,224,7,192,99, + 140,243,158,255,254,255,254,255,254,243,158,99,140,7,192,15, + 224,15,224,7,192,16,15,30,16,0,255,1,0,3,128,7, + 192,7,192,1,0,49,12,113,14,255,255,113,14,49,12,1, + 0,7,192,7,192,3,128,1,0,15,15,30,16,0,255,1, + 0,3,128,3,128,7,192,7,192,31,240,127,252,255,254,127, + 252,31,240,7,192,7,192,3,128,3,128,1,0,15,15,30, + 16,0,255,1,0,2,128,2,128,4,64,4,64,24,48,96, + 12,128,2,96,12,24,48,4,64,4,64,2,128,2,128,1, + 0,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,15,12,24,16,0,1,1,0,2,128,2, + 128,252,126,64,4,56,56,8,32,16,16,17,16,38,200,40, + 40,48,24,15,15,30,16,0,255,7,192,31,240,62,248,126, + 252,124,124,192,6,240,30,248,62,240,30,241,30,103,204,111, + 236,63,248,31,240,7,192,15,12,24,16,0,1,1,0,3, + 128,3,128,255,254,124,124,56,56,8,32,28,112,31,240,62, + 248,56,56,48,24,15,12,24,16,0,1,1,0,2,128,2, + 128,252,126,67,132,39,200,23,208,19,144,16,16,39,200,40, + 40,48,24,15,12,24,16,0,1,1,0,2,128,28,112,225, + 14,79,228,35,136,23,208,20,80,17,16,34,136,44,104,48, + 24,15,12,24,16,0,1,1,0,2,128,29,112,227,142,95, + 244,47,232,23,208,22,208,21,80,34,136,44,104,48,24,15, + 13,26,16,0,0,1,0,3,128,5,192,249,254,93,140,39, + 184,19,240,15,208,29,144,25,208,50,232,44,120,48,24,16, + 13,26,16,0,0,1,0,2,128,2,192,255,254,68,71,56, + 62,8,60,22,208,17,24,39,200,47,44,60,28,24,12,15, + 13,26,16,0,0,3,128,3,128,3,128,67,132,243,158,63, + 252,15,240,63,252,243,158,67,132,3,128,3,128,3,128,15, + 13,26,16,0,0,3,128,3,128,3,128,67,132,243,158,60, + 124,8,48,60,124,243,158,67,132,3,128,3,128,3,128,15, + 15,30,16,0,255,1,0,1,0,33,8,17,16,13,96,15, + 224,7,192,255,254,7,192,15,224,13,96,17,16,33,8,1, + 0,1,0,15,15,30,16,0,255,1,0,1,0,33,8,27, + 176,31,240,15,224,31,224,255,254,31,240,15,224,31,240,27, + 176,33,8,1,0,1,0,15,15,30,16,0,255,1,0,2, + 128,60,248,44,200,38,152,50,184,125,76,131,134,77,124,58, + 152,50,200,38,104,62,120,2,128,1,0,13,13,26,16,1, + 0,2,0,2,0,2,0,135,8,119,112,63,224,31,192,63, + 224,119,112,135,8,2,0,2,0,2,0,15,15,30,16,0, + 255,8,32,8,32,12,96,6,192,230,206,59,184,31,240,7, + 192,31,240,59,184,230,206,6,192,12,96,8,32,8,32,15, + 15,30,16,0,255,8,32,12,96,14,224,15,224,255,254,127, + 252,63,248,31,240,63,248,127,252,255,254,15,224,14,224,12, + 96,8,32,15,15,30,16,0,255,1,0,25,48,15,224,79, + 228,127,252,63,248,63,248,255,254,63,248,63,248,127,252,79, + 228,15,224,25,48,1,0,15,15,30,16,0,255,9,32,73, + 36,37,72,21,80,203,166,55,216,15,224,255,254,15,224,55, + 216,203,166,21,80,37,72,73,36,9,32,15,15,30,16,0, + 255,1,0,3,128,3,128,3,128,225,14,113,28,13,96,3, + 128,13,96,113,28,225,14,3,128,3,128,3,128,1,0,15, + 15,30,16,0,255,3,128,7,192,7,192,99,140,241,30,243, + 158,60,120,8,32,60,120,243,158,241,30,99,140,7,192,7, + 192,3,128,15,15,30,16,0,255,3,128,7,192,7,192,99, + 140,243,158,241,30,61,120,7,192,61,120,241,30,243,158,99, + 140,7,192,7,192,3,128,15,15,30,16,0,255,3,128,4, + 64,4,64,116,92,252,126,254,254,127,252,33,8,67,132,135, + 194,143,226,119,220,7,192,7,192,3,128,15,14,28,16,0, + 0,3,128,7,192,15,224,119,220,255,254,252,126,240,30,112, + 28,24,48,62,248,127,252,126,252,126,252,60,120,15,14,28, + 16,0,0,3,128,4,64,9,32,121,60,133,66,179,154,143, + 226,111,236,23,208,39,200,73,36,82,148,66,132,60,120,15, + 15,30,16,0,255,3,128,60,120,69,68,81,20,77,100,111, + 236,134,194,188,122,134,194,111,236,77,100,81,20,69,68,60, + 120,3,128,15,15,30,16,0,255,7,192,30,240,62,248,92, + 116,103,204,252,126,232,46,136,34,232,46,252,126,103,204,92, + 116,62,248,30,240,7,192,15,15,30,16,0,255,3,128,4, + 192,4,192,116,220,188,230,159,158,79,60,63,248,114,100,230, + 114,206,122,118,92,6,64,6,64,3,128,15,13,26,16,0, + 0,1,0,5,64,3,128,201,38,49,24,77,100,3,128,77, + 100,49,24,201,38,3,128,5,64,1,0,15,13,26,16,0, + 0,1,0,5,64,11,160,201,38,49,24,77,100,131,130,77, + 100,49,24,201,38,11,160,5,64,1,0,15,15,30,16,0, + 255,9,32,13,96,7,192,19,144,201,38,49,24,237,110,3, + 128,237,110,49,24,201,38,17,16,7,192,13,96,9,32,14, + 14,28,16,1,255,7,128,71,136,39,144,19,32,11,64,224, + 28,251,124,251,124,224,28,11,64,19,32,39,144,71,136,7, + 128,15,15,30,16,0,255,7,192,71,196,39,200,19,144,11, + 160,224,14,251,190,251,190,251,190,224,14,11,160,19,144,39, + 200,71,196,7,192,15,15,30,16,0,255,3,128,7,192,7, + 192,119,220,251,190,249,62,125,124,7,192,125,124,249,62,251, + 190,119,220,7,192,7,192,3,128,15,15,30,16,0,255,1, + 0,3,128,51,152,49,24,9,32,5,64,99,140,255,254,99, + 140,5,64,9,32,49,24,51,152,3,128,1,0,15,15,30, + 16,0,255,1,0,3,128,51,152,59,184,25,48,7,192,119, + 220,255,254,119,220,7,192,25,48,59,184,51,152,3,128,1, + 0,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,13,13,26,16,2,255,15,0,48,192,64, + 32,64,48,128,16,128,24,128,24,128,24,64,56,64,48,48, + 240,15,224,7,128,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,12,12,24,16,3,1,255, + 192,128,64,128,112,128,112,128,112,128,112,128,112,128,112,128, + 112,255,240,63,240,63,240,12,12,24,16,3,1,63,240,63, + 240,255,240,128,112,128,112,128,112,128,112,128,112,128,112,128, + 112,128,64,255,192,12,12,24,16,3,1,255,192,128,96,128, + 112,128,112,128,112,128,112,128,112,128,112,128,112,255,240,127, + 240,63,240,12,12,24,16,3,1,63,240,127,240,255,240,128, + 112,128,112,128,112,128,112,128,112,128,112,128,112,128,96,255, + 192,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, + 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,13,13,26, + 16,1,0,2,0,7,0,15,128,7,0,34,32,112,112,248, + 248,112,112,34,32,7,0,15,128,7,0,2,0,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,2,15,15,16,7,255,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,4,15,15,16,6,255,240,240,240,240, + 240,240,240,240,240,240,240,240,240,240,240,8,15,15,16,4, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 7,10,10,16,4,4,28,112,192,248,252,254,254,254,124,56, + 7,10,10,16,4,4,56,124,254,254,254,126,62,6,28,112, + 15,10,20,16,0,4,28,28,112,112,192,192,248,248,252,252, + 254,254,254,254,254,254,124,124,56,56,15,10,20,16,0,4, + 56,56,124,124,254,254,254,254,254,254,126,126,62,62,6,6, + 28,28,112,112,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,14,14,28,16, + 1,255,0,32,0,32,31,252,127,240,252,32,252,32,126,32, + 31,224,0,32,96,96,240,64,240,192,99,128,62,0,9,15, + 30,16,3,255,28,0,127,0,255,128,255,128,255,128,127,0, + 28,0,8,0,8,0,0,0,28,0,62,0,62,0,62,0, + 28,0,9,13,26,16,3,0,119,0,255,128,255,128,255,128, + 127,0,28,0,8,0,0,0,28,0,62,0,62,0,62,0, + 28,0,15,13,26,16,0,255,60,120,126,252,255,254,255,254, + 255,254,127,252,127,252,63,248,31,240,15,224,7,192,3,128, + 1,0,13,15,30,16,1,255,56,0,126,0,255,0,255,128, + 255,192,255,224,127,240,63,248,127,240,255,224,255,192,255,128, + 255,0,126,0,56,0,15,14,28,16,0,255,3,0,12,134, + 56,142,103,248,1,0,57,56,126,252,255,254,255,254,127,252, + 63,248,31,226,7,238,0,248,14,15,30,16,1,254,97,152, + 99,200,55,236,23,228,23,252,19,252,115,252,157,248,147,248, + 83,248,103,240,39,240,55,224,19,192,1,128,4,12,12,8, + 3,255,16,32,96,192,192,192,192,192,192,96,32,16,4,12, + 12,8,2,255,128,64,96,48,48,48,48,48,48,96,64,128, + 5,12,12,8,2,255,24,48,112,224,224,224,224,224,224,112, + 48,24,5,12,12,8,2,255,192,96,112,56,56,56,56,56, + 56,112,96,192,5,12,12,8,2,255,24,48,48,96,96,192, + 192,96,96,48,48,24,5,12,12,8,2,255,192,96,96,48, + 48,24,24,48,48,96,96,192,6,12,12,8,2,255,28,56, + 56,112,112,224,224,112,112,56,56,28,6,12,12,8,1,255, + 224,112,112,56,56,28,28,56,56,112,112,224,7,12,12,8, + 1,255,30,60,60,120,120,240,240,120,120,60,60,30,7,12, + 12,8,0,255,240,120,120,60,60,30,30,60,60,120,120,240, + 3,12,12,8,3,255,32,64,128,128,128,128,128,128,128,128, + 64,32,3,12,12,8,2,255,128,64,32,32,32,32,32,32, + 32,32,64,128,6,12,12,8,1,255,60,112,96,96,48,48, + 224,48,48,96,112,60,6,12,12,8,1,255,240,56,24,24, + 48,48,28,48,48,24,56,240,15,15,30,16,0,255,7,192, + 31,240,63,248,126,252,124,252,250,254,254,254,254,254,254,254, + 254,254,126,252,120,60,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,120,60,119,220,255,222,255,222, + 255,62,252,254,251,254,119,220,112,28,63,248,31,240,7,192, + 15,15,30,16,0,255,7,192,31,240,63,248,120,60,119,220, + 255,222,255,222,255,62,255,222,255,222,119,220,120,60,63,248, + 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, + 127,188,127,60,254,190,253,190,251,190,247,190,224,14,127,188, + 126,12,63,248,31,240,7,192,15,15,30,16,0,255,7,192, + 31,240,63,248,112,28,119,252,247,254,240,62,255,222,255,222, + 255,222,119,220,120,60,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,120,60,119,220,247,254,247,254, + 240,62,247,222,247,222,119,220,120,60,63,248,31,240,7,192, + 15,15,30,16,0,255,7,192,31,240,63,248,112,28,119,220, + 255,190,255,190,255,126,254,254,254,254,125,252,125,252,63,248, + 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, + 120,60,119,220,247,222,247,222,248,62,247,222,247,222,119,220, + 120,60,63,248,31,240,7,192,15,15,30,16,0,255,7,192, + 31,240,63,248,120,60,119,220,247,222,247,222,248,30,255,222, + 255,222,119,220,120,60,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,119,28,102,236,246,238,246,238, + 246,238,246,238,246,238,118,236,99,28,63,248,31,240,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,64,132,65,132, + 131,130,129,130,129,130,129,130,129,130,65,132,65,132,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 71,196,79,228,140,98,128,98,129,194,135,2,140,2,79,228, + 79,228,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,71,196,79,228,140,98,128,98,129,194,128,98, + 140,98,79,228,71,196,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,64,228,65,228,131,98,134,98, + 140,98,159,242,159,242,64,100,64,100,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,79,228,79,228, + 140,2,143,194,143,226,128,98,140,98,79,228,71,196,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 71,196,79,228,140,2,143,194,143,226,140,98,140,98,79,228, + 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 24,48,32,8,79,228,79,228,128,98,128,98,128,194,131,130, + 134,2,70,4,70,4,32,8,24,48,7,192,15,15,30,16, + 0,255,7,192,24,48,32,8,71,196,79,228,140,98,140,98, + 135,194,140,98,140,98,79,228,71,196,32,8,24,48,7,192, + 15,15,30,16,0,255,7,192,24,48,32,8,71,196,79,228, + 140,98,140,98,143,226,135,226,128,98,79,228,71,196,32,8, + 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, + 68,228,77,244,157,178,141,178,141,178,141,178,141,178,77,244, + 76,228,32,8,24,48,7,192,15,15,30,16,0,255,7,192, + 31,240,63,248,127,124,126,124,252,126,254,126,254,126,254,126, + 254,126,126,124,126,124,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,120,60,112,28,243,158,255,158, + 254,62,248,254,243,254,112,28,112,28,63,248,31,240,7,192, + 15,15,30,16,0,255,7,192,31,240,63,248,120,60,112,28, + 243,158,255,158,254,62,255,158,243,158,112,28,120,60,63,248, + 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, + 127,28,126,28,252,158,249,158,243,158,224,14,224,14,127,156, + 127,156,63,248,31,240,7,192,15,15,30,16,0,255,7,192, + 31,240,63,248,112,28,112,28,243,254,240,62,240,30,255,158, + 243,158,112,28,120,60,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,120,60,112,28,243,254,240,62, + 240,30,243,158,243,158,112,28,120,60,63,248,31,240,7,192, + 15,15,30,16,0,255,7,192,31,240,63,248,112,28,112,28, + 255,158,255,158,255,62,252,126,249,254,121,252,121,252,63,248, + 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, + 120,60,112,28,243,158,243,158,248,62,243,158,243,158,112,28, + 120,60,63,248,31,240,7,192,15,15,30,16,0,255,7,192, + 31,240,63,248,120,60,112,28,243,158,243,158,240,30,248,30, + 255,158,112,28,120,60,63,248,31,240,7,192,15,15,30,16, + 0,255,7,192,31,240,63,248,123,28,114,12,226,78,242,78, + 242,78,242,78,242,78,114,12,115,28,63,248,31,240,7,192, + 15,13,26,16,0,0,31,128,15,192,7,224,3,240,255,248, + 255,252,255,254,255,252,255,248,3,240,7,224,15,192,31,128, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, + 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,11,11,22,16, + 2,1,32,0,112,0,248,0,120,0,60,128,12,128,3,128, + 3,192,15,192,1,192,0,32,15,9,18,16,0,2,1,0, + 1,128,224,192,252,240,255,254,252,240,224,192,1,128,1,0, + 11,11,22,16,2,0,0,32,1,192,15,192,3,192,3,128, + 12,128,60,128,120,0,248,0,112,0,32,0,15,9,18,16, + 0,2,2,0,1,0,1,192,0,240,255,254,0,240,1,192, + 1,0,2,0,15,13,26,16,0,0,0,192,1,224,1,240, + 0,248,127,252,255,254,255,254,255,254,127,252,0,248,1,240, + 1,224,0,192,15,11,22,16,0,1,0,16,0,16,0,24, + 0,24,255,252,255,254,255,252,0,24,0,24,0,16,0,16, + 15,13,26,16,0,0,0,16,0,16,0,24,0,24,255,252, + 255,252,255,254,255,252,255,252,0,24,0,24,0,16,0,16, + 15,9,18,16,0,2,0,32,0,48,0,56,170,252,170,254, + 170,252,0,56,0,48,0,32,15,9,18,16,0,2,0,32, + 0,48,170,248,170,252,170,254,170,252,170,248,0,48,0,32, + 15,9,18,16,0,2,0,32,0,48,0,56,255,252,255,254, + 255,252,0,56,0,48,0,32,14,15,30,16,1,255,128,0, + 224,0,88,0,70,0,33,128,32,96,16,24,15,252,31,248, + 63,224,63,128,126,0,120,0,224,0,128,0,14,15,30,16, + 1,255,128,0,224,0,120,0,126,0,63,128,63,224,31,248, + 15,252,16,24,32,96,33,128,70,0,88,0,224,0,128,0, + 14,15,30,16,1,255,128,0,224,0,120,0,126,0,63,128, + 63,224,31,248,15,252,31,248,63,224,63,128,126,0,120,0, + 224,0,128,0,15,8,16,16,0,3,128,0,128,16,192,24, + 127,252,127,254,63,252,0,24,0,16,15,8,16,16,0,2, + 0,16,0,24,63,252,127,254,127,252,192,24,128,16,128,0, + 7,13,13,16,5,0,16,16,24,248,252,252,254,252,252,248, + 24,16,16,15,9,18,16,0,2,0,64,0,64,255,224,255, + 240,255,254,255,240,255,224,0,64,0,64,14,9,18,16,1, + 2,0,192,0,224,255,176,128,24,128,12,128,24,255,176,0, + 224,0,192,14,9,18,16,1,2,0,192,0,224,255,208,192, + 8,192,4,192,8,255,208,0,224,0,192,15,13,26,16,0, + 255,0,8,0,24,0,36,0,68,63,130,64,2,128,6,255, + 30,254,124,5,240,15,192,15,0,12,0,15,13,26,16,0, + 0,12,0,15,0,15,192,5,240,254,124,255,30,128,6,64, + 2,63,130,0,68,0,36,0,24,0,8,15,12,24,16,0, + 0,0,128,0,192,255,160,128,16,128,8,128,4,128,14,128, + 28,255,184,127,240,0,224,0,64,15,12,24,16,0,1,0, + 64,0,224,127,240,255,184,128,28,128,14,128,4,128,8,128, + 16,255,160,0,192,0,128,16,12,24,16,0,0,0,64,0, + 96,0,80,255,200,64,4,64,2,64,7,255,206,127,220,0, + 120,0,112,0,32,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,16,12,24,16,0,1,0, + 32,0,112,0,120,127,220,255,206,64,7,64,2,64,4,255, + 200,0,80,0,96,0,64,14,15,30,16,1,255,15,128,63, + 224,126,240,254,120,254,56,0,28,0,12,0,4,0,12,0, + 28,254,56,254,120,126,240,63,224,15,128,15,7,14,16,0, + 3,254,0,73,8,36,140,31,254,36,140,73,8,254,0,11, + 11,22,16,2,1,16,0,24,0,28,0,252,0,124,0,60, + 32,2,32,1,96,0,224,1,224,7,224,14,5,10,16,1, + 4,248,16,124,24,63,252,124,24,248,16,11,11,22,16,2, + 0,7,224,1,224,0,224,1,96,2,32,60,32,124,0,252, + 0,28,0,24,0,16,0,11,11,22,16,2,1,8,0,12, + 0,14,0,14,0,254,32,126,32,63,96,3,224,1,224,3, + 224,15,224,15,9,18,16,0,2,0,32,252,16,126,24,63, + 252,31,254,63,252,126,24,252,16,0,32,11,11,22,16,2, + 0,15,224,3,224,1,224,3,224,63,96,126,32,254,32,14, + 0,14,0,12,0,8,0,15,11,22,16,0,1,0,96,0, + 240,0,240,120,56,255,12,255,254,255,12,120,56,0,240,0, + 240,0,96,15,9,18,16,0,2,0,64,96,224,120,240,252, + 120,255,254,252,120,120,240,96,224,0,64,15,7,14,16,0, + 3,248,16,124,24,62,28,31,254,62,28,124,24,248,16,15, + 9,18,16,0,2,248,96,252,112,126,120,127,252,63,254,127, + 252,126,120,252,112,248,96,15,9,18,16,0,2,2,32,1, + 16,0,136,255,196,0,2,255,196,0,136,1,16,2,32,6, + 14,14,8,1,255,168,84,168,84,168,84,168,84,168,84,168, + 84,168,84,6,6,6,8,1,0,128,136,144,160,192,252,11, + 12,24,16,2,0,4,0,10,0,10,0,17,0,17,0,36, + 128,42,128,74,64,81,64,159,32,128,32,255,224,5,6,6, + 8,1,0,32,32,32,32,32,248,10,8,16,16,3,1,63, + 192,64,0,129,128,130,64,130,64,129,128,64,0,63,192,10, + 8,16,16,3,1,255,0,0,128,96,64,144,64,144,64,96, + 64,0,128,255,0,5,10,10,8,2,0,112,136,136,16,16, + 32,32,64,64,56,5,10,10,8,2,0,112,136,136,64,64, + 32,32,16,16,224,7,8,8,8,0,0,130,130,84,68,40, + 40,16,16,14,8,16,16,1,1,129,252,130,0,68,0,68, + 0,36,0,36,0,18,0,17,252,14,8,16,16,1,1,254, + 4,1,4,0,136,0,136,0,144,0,144,1,32,254,32,3, + 10,10,8,2,0,64,64,64,64,224,64,64,64,64,64,6, + 14,14,8,1,255,168,84,168,84,168,84,168,84,168,84,168, + 84,168,84,12,14,28,16,2,254,255,240,128,0,64,0,64, + 0,32,0,32,0,32,0,32,0,32,0,32,0,64,0,64, + 0,128,0,128,0,6,14,14,8,1,255,168,84,168,84,168, + 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, + 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, + 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, + 84,9,9,18,16,4,0,8,0,20,0,34,0,65,0,136, + 128,65,0,34,0,20,0,8,0,7,8,8,8,0,0,16, + 16,40,40,68,84,130,130,9,10,20,16,3,0,136,128,136, + 128,136,128,136,128,136,128,136,128,136,128,136,128,73,0,62, + 0,6,6,6,8,1,0,4,4,36,4,4,252,6,6,6, + 8,1,0,252,128,128,144,128,128,12,10,20,16,2,0,224, + 16,48,48,40,80,36,144,35,16,35,16,36,144,40,80,48, + 48,224,16,12,10,20,16,2,0,128,112,192,192,161,64,146, + 64,140,64,140,64,146,64,161,64,192,192,128,112,14,10,20, + 16,1,0,224,28,48,48,40,80,36,144,35,16,35,16,36, + 144,40,80,48,48,224,28,9,12,24,16,3,0,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,255,128,9,12,24,16,3,0,255,128,8,0,8, + 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, + 0,8,0,13,7,14,16,1,2,5,0,5,0,253,248,5, + 0,253,248,5,0,5,0,13,7,14,16,1,2,5,0,5, + 0,5,0,253,248,5,0,5,0,5,0,14,3,6,16,1, + 4,64,0,191,252,64,0,14,3,6,16,1,4,128,0,255, + 252,128,0,14,3,6,16,1,4,0,4,255,252,0,4,3, + 11,11,16,7,255,64,160,64,64,64,64,64,64,64,64,224, + 7,11,11,8,0,0,16,40,40,68,68,254,68,68,40,40, + 16,13,13,26,16,1,0,2,0,5,0,5,0,8,128,16, + 64,96,48,128,8,96,48,16,64,8,128,5,0,5,0,2, + 0,15,13,26,16,0,0,0,128,1,64,1,64,2,32,4, + 16,24,12,224,2,24,12,4,16,2,32,1,64,1,64,0, + 128,15,13,26,16,1,0,2,0,5,0,5,0,8,128,16, + 64,96,48,128,14,96,48,16,64,8,128,5,0,5,0,2, + 0,15,13,26,16,0,0,31,254,16,2,16,2,16,2,16, + 2,16,2,240,2,16,2,16,2,16,2,16,2,16,2,31, + 254,15,13,26,16,1,0,255,240,128,16,128,16,128,16,128, + 16,128,16,128,30,128,16,128,16,128,16,128,16,128,16,255, + 240,5,13,13,8,2,0,248,160,160,160,160,160,160,160,160, + 160,160,160,248,5,13,13,8,1,0,248,40,40,40,40,40, + 40,40,40,40,40,40,248,4,12,12,8,2,0,16,32,32, + 64,64,128,128,64,64,32,32,16,4,12,12,8,2,0,128, + 64,64,32,32,16,16,32,32,64,64,128,6,12,12,8,1, + 0,20,40,40,80,80,160,160,80,80,40,40,20,6,12,12, + 8,1,0,160,80,80,40,40,20,20,40,40,80,80,160,4, + 12,12,8,3,255,16,32,96,160,160,160,160,160,160,96,32, + 16,4,12,12,8,1,255,128,64,96,80,80,80,80,80,80, + 96,64,128,3,12,12,8,4,255,32,64,128,128,128,128,128, + 128,128,128,64,32,3,12,12,8,1,255,128,64,32,32,32, + 32,32,32,32,32,64,128,11,12,24,16,2,0,4,0,10, + 0,27,0,42,128,106,192,170,160,42,128,42,128,42,128,42, + 128,42,128,42,128,11,12,24,16,2,0,42,128,42,128,42, + 128,42,128,42,128,42,128,170,160,106,192,42,128,27,0,10, + 0,4,0,12,10,20,16,2,1,7,128,8,64,16,32,32, + 16,168,16,112,16,32,16,0,32,8,64,7,128,12,10,20, + 16,2,1,30,0,33,0,64,128,128,64,129,80,128,224,128, + 64,64,0,33,0,30,0,15,7,14,16,0,2,3,128,5, + 72,9,36,255,254,9,36,5,72,3,128,15,5,10,16,0, + 3,32,0,64,0,255,254,64,0,32,0,15,5,10,16,0, + 3,0,8,0,4,255,254,0,4,0,8,14,5,10,16,0, + 3,32,16,64,8,255,252,64,8,32,16,15,7,14,16,0, + 2,16,0,32,0,127,254,128,0,127,254,32,0,16,0,15, + 7,14,16,0,2,0,16,0,8,255,252,0,2,255,252,0, + 8,0,16,14,7,14,16,0,2,16,32,32,16,127,248,128, + 4,127,248,32,16,16,32,14,5,10,16,0,3,32,4,64, + 4,255,252,64,4,32,4,14,5,10,16,1,3,128,16,128, + 8,255,252,128,8,128,16,14,7,14,16,0,2,16,4,32, + 4,127,252,128,4,127,252,32,4,16,4,14,7,14,16,1, + 2,128,32,128,16,255,248,128,4,255,248,128,16,128,32,15, + 5,10,16,0,3,0,8,34,36,213,94,8,132,0,8}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 11, '1' Height: 6 + Calculated Max Values w=15 h=15 x= 3 y= 3 dx=16 dy= 0 ascent=13 len=30 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =11 descent= 3 + X Font ascent =11 descent= 0 + Max Font ascent =13 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_86[1876] U8G_SECTION(".progmem.u8g_font_unifont_86") = { + 0,16,16,0,254,11,3,37,5,106,32,116,3,13,254,11, + 0,11,11,22,16,2,0,7,224,4,32,2,32,4,32,8, + 160,17,96,34,0,68,0,136,0,80,0,32,0,11,11,22, + 16,2,0,252,0,132,0,136,0,132,0,162,0,209,0,8, + 128,4,64,2,32,1,64,0,128,11,11,22,16,2,0,32, + 0,80,0,136,0,68,0,34,0,17,96,8,160,4,32,2, + 32,4,32,7,224,11,11,22,16,2,0,0,128,1,64,2, + 32,4,64,8,128,209,0,162,0,132,0,136,0,132,0,252, + 0,14,7,14,16,1,0,16,32,48,48,95,232,128,4,95, + 232,48,48,16,32,13,7,14,16,1,0,16,0,48,0,127, + 248,255,248,127,248,48,0,16,0,7,11,11,8,0,0,16, + 56,124,254,56,56,56,56,56,56,56,7,11,11,8,0,0, + 56,56,56,56,56,56,56,254,124,56,16,11,11,22,16,2, + 0,7,224,7,224,3,224,7,224,15,224,31,96,62,0,124, + 0,248,0,112,0,32,0,11,11,22,16,2,0,252,0,252, + 0,248,0,252,0,254,0,223,0,15,128,7,192,3,224,1, + 192,0,128,11,11,22,16,2,0,32,0,112,0,248,0,124, + 0,62,0,31,96,15,224,7,224,3,224,7,224,7,224,11, + 11,22,16,2,0,0,128,1,192,3,224,7,192,15,128,223, + 0,254,0,252,0,248,0,252,0,252,0,14,7,14,16,1, + 0,16,32,48,48,127,248,255,252,127,248,48,48,16,32,7, + 12,12,8,0,255,16,56,124,254,56,56,56,56,254,124,56, + 16,14,6,12,16,1,0,255,240,0,16,0,16,0,84,0, + 56,0,16,14,6,12,16,1,0,0,16,0,56,0,84,0, + 16,0,16,255,240,14,6,12,16,1,0,63,252,32,0,32, + 0,168,0,112,0,32,0,14,6,12,16,1,0,32,0,112, + 0,168,0,32,0,32,0,63,252,10,10,20,16,3,255,255, + 192,255,192,255,192,255,192,255,192,128,64,128,64,128,64,128, + 64,255,192,10,10,20,16,3,255,255,192,128,64,128,64,128, + 64,128,64,255,192,255,192,255,192,255,192,255,192,10,10,20, + 16,3,255,255,192,255,192,191,192,159,192,143,192,135,192,131, + 192,129,192,128,192,255,192,10,10,20,16,3,255,255,192,192, + 64,224,64,240,64,248,64,252,64,254,64,255,64,255,192,255, + 192,10,10,20,16,3,255,12,0,26,0,57,0,120,128,248, + 64,248,64,120,128,57,0,26,0,12,0,10,10,20,16,3, + 255,12,0,22,0,39,0,71,128,135,192,135,192,71,128,39, + 0,22,0,12,0,10,10,20,16,3,255,12,0,30,0,63, + 0,127,128,255,192,128,64,64,128,33,0,18,0,12,0,10, + 10,20,16,3,255,12,0,18,0,33,0,64,128,128,64,255, + 192,127,128,63,0,30,0,12,0,11,11,22,16,2,0,170, + 160,0,0,128,32,0,0,128,32,0,0,128,32,0,0,128, + 32,0,0,170,160,14,14,28,16,1,255,255,252,255,252,255, + 252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, + 252,255,252,255,252,255,252,14,14,28,16,1,255,255,252,128, + 4,128,4,128,4,128,4,128,4,128,4,128,4,128,4,128, + 4,128,4,128,4,128,4,255,252,4,4,4,8,2,2,240, + 240,240,240,4,4,4,8,2,2,240,144,144,240,12,11,22, + 16,2,0,6,0,15,0,31,128,63,192,127,224,255,240,127, + 224,127,224,63,192,63,192,31,128,12,11,22,16,2,0,6, + 0,9,0,16,128,32,64,64,32,128,16,64,32,64,32,32, + 64,32,64,31,128,11,11,22,16,2,255,4,0,27,0,96, + 192,128,32,128,32,128,32,128,32,128,32,96,192,27,0,4, + 0,11,11,22,16,2,255,4,0,31,0,127,192,255,224,255, + 224,255,224,255,224,255,224,127,192,31,0,4,0,14,10,20, + 16,1,0,15,192,31,224,63,240,127,248,255,252,255,252,127, + 248,63,240,31,224,15,192,14,13,26,16,1,254,31,224,63, + 240,127,248,255,252,255,252,255,252,255,252,255,252,255,252,255, + 252,127,248,63,240,31,224,7,7,7,8,0,0,16,56,124, + 254,124,56,16,7,7,7,8,0,0,16,40,68,130,68,40, + 16,7,11,11,8,0,0,16,56,56,124,124,254,124,124,56, + 56,16,7,11,11,8,0,0,16,40,40,68,68,130,68,68, + 40,40,16,5,5,5,8,1,3,32,112,248,112,32,5,7, + 7,8,1,0,32,112,112,248,112,112,32,5,7,7,8,1, + 0,32,80,80,136,80,80,32,15,6,12,16,0,0,15,224, + 127,252,255,254,255,254,127,252,15,224,15,6,12,16,0,0, + 15,224,112,28,128,2,128,2,112,28,15,224,6,13,13,8, + 1,0,48,120,120,120,252,252,252,252,252,120,120,120,48,6, + 13,13,8,1,0,48,72,72,72,132,132,132,132,132,72,72, + 72,48,14,5,10,16,1,3,33,192,66,32,255,252,66,32, + 33,192,14,15,30,16,1,254,32,0,64,0,255,252,64,0, + 32,0,32,0,64,0,255,252,64,0,32,0,32,0,64,0, + 255,252,64,0,32,0,14,5,10,16,1,3,33,192,66,160, + 255,252,66,160,33,192,14,5,10,16,1,3,34,32,69,80, + 245,92,72,128,32,0,14,5,10,16,1,3,40,64,80,64, + 255,252,80,64,40,64,14,5,10,16,1,3,40,160,80,160, + 255,252,80,160,40,160,14,5,10,16,1,3,40,4,80,4, + 255,252,80,4,40,4,14,5,10,16,1,3,40,4,80,8, + 253,176,80,8,40,4,14,5,10,16,1,3,32,0,64,0, + 213,84,64,0,32,0,14,5,10,16,1,3,32,132,64,136, + 255,240,64,136,32,132,14,5,10,16,1,3,33,68,65,72, + 255,240,65,72,33,68,14,5,10,16,1,3,40,4,80,8, + 255,240,80,8,40,4,14,5,10,16,1,3,40,132,80,136, + 255,240,80,136,40,132,14,5,10,16,1,3,41,68,81,72, + 255,240,81,72,41,68,14,5,10,16,1,3,40,144,80,96, + 255,252,80,96,40,144,14,5,10,16,1,3,32,240,65,8, + 254,4,64,0,32,0,14,7,14,16,1,3,3,240,0,0, + 35,240,64,0,255,252,64,0,32,0,14,7,14,16,1,3, + 0,112,8,136,39,0,64,0,255,252,64,0,32,0,14,10, + 20,16,1,254,32,0,64,0,255,252,64,0,32,112,8,136, + 7,0,0,112,8,136,7,0,14,9,18,16,1,1,224,0, + 24,0,6,16,1,8,31,252,1,8,6,16,24,0,224,0, + 14,11,22,16,1,0,252,0,2,0,1,0,0,144,0,136, + 255,252,0,136,0,144,1,0,2,0,252,0,15,11,22,16, + 0,1,4,0,8,0,31,254,32,0,127,254,128,0,127,254, + 32,0,31,254,8,0,4,0,15,11,22,16,0,1,0,64, + 0,32,255,240,0,8,255,252,0,2,255,252,0,8,255,240, + 0,32,0,64,14,7,14,16,1,3,3,128,68,64,56,16, + 0,8,255,252,0,8,0,16,14,10,20,16,1,254,0,16, + 0,8,255,252,0,8,3,144,68,64,56,0,3,128,68,64, + 56,0,14,7,14,16,1,3,7,0,8,136,32,112,64,0, + 255,252,64,0,32,0,14,10,20,16,1,254,32,0,64,0, + 255,252,64,0,39,0,8,136,0,112,7,0,8,136,0,112, + 14,7,14,16,1,1,32,0,64,0,255,252,64,0,32,112, + 8,136,7,0,14,7,14,16,1,1,0,16,0,8,255,252, + 0,8,3,144,68,64,56,0,6,14,14,8,1,255,168,84, + 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, + 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, + 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, + 168,84,168,84,13,13,26,16,1,0,2,0,2,0,5,0, + 5,0,248,248,64,16,32,32,16,64,8,128,16,64,34,32, + 77,144,112,112,11,10,20,16,2,1,4,0,14,0,14,0, + 255,224,127,192,63,128,63,128,123,192,241,224,192,96,11,10, + 20,16,2,1,4,0,10,0,10,0,241,224,64,64,32,128, + 36,128,74,64,177,160,192,96,11,12,24,16,3,0,4,0, + 30,0,127,0,255,128,255,192,255,224,255,224,255,192,255,128, + 127,0,30,0,4,0,11,12,24,16,3,0,4,0,26,0, + 97,0,128,128,128,64,128,32,128,32,128,64,128,128,97,0, + 26,0,4,0}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 8, '1' Height: 12 + Calculated Max Values w=16 h=16 x= 3 y=10 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 8 descent= 0 + X Font ascent =12 descent= 0 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[4272] U8G_SECTION(".progmem.u8g_font_unifont_8_9") = { + 0,16,16,0,254,8,4,65,6,56,0,255,0,14,254,12, + 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,6,14,14,8,1,0,72,72,0, + 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, + 0,252,32,32,32,60,34,34,34,34,44,6,14,14,8,1, + 0,24,96,0,0,252,128,128,128,128,128,128,128,128,128,6, + 10,10,8,1,0,56,68,128,128,248,128,128,128,68,56,6, + 10,10,8,1,0,120,132,132,128,96,24,4,132,132,120,5, + 10,10,8,2,0,248,32,32,32,32,32,32,32,32,248,5, + 14,14,8,2,0,144,144,0,0,248,32,32,32,32,32,32, + 32,32,248,6,10,10,8,1,0,28,8,8,8,8,8,8, + 136,136,112,8,10,10,8,0,0,120,72,72,72,78,73,73, + 73,73,142,7,10,10,8,1,0,144,144,144,144,252,146,146, + 146,146,156,7,10,10,8,1,0,252,32,32,32,60,34,34, + 34,34,34,6,14,14,8,1,0,24,96,0,0,128,140,144, + 160,192,192,160,144,136,132,6,13,13,8,1,0,96,24,0, + 132,140,140,148,148,164,164,196,196,132,7,14,14,8,1,0, + 132,132,120,0,130,130,68,68,40,40,16,16,32,96,7,10, + 10,8,1,0,130,130,130,130,130,130,254,16,16,16,6,10, + 10,8,1,0,48,72,72,132,132,132,252,132,132,132,6,10, + 10,8,1,0,248,128,128,128,248,132,132,132,132,248,6,10, + 10,8,1,0,248,132,132,132,248,132,132,132,132,248,6,10, + 10,8,1,0,252,128,128,128,128,128,128,128,128,128,8,12, + 12,8,0,254,14,18,18,18,34,34,34,66,66,255,129,129, + 6,10,10,8,1,0,252,128,128,128,248,128,128,128,128,252, + 7,10,10,8,1,0,146,146,84,84,56,56,84,84,146,146, + 6,10,10,8,1,0,120,132,4,4,120,8,4,4,132,120, + 6,10,10,8,1,0,132,140,140,148,148,164,164,196,196,132, + 6,13,13,8,1,0,72,48,0,132,140,140,148,148,164,164, + 196,196,132,6,10,10,8,1,0,128,140,144,160,192,192,160, + 144,136,132,6,10,10,8,1,0,60,36,36,36,36,36,36, + 68,68,132,6,10,10,8,1,0,132,132,204,204,180,180,132, + 132,132,132,6,10,10,8,1,0,132,132,132,132,252,132,132, + 132,132,132,6,10,10,8,1,0,120,132,132,132,132,132,132, + 132,132,120,6,10,10,8,1,0,252,132,132,132,132,132,132, + 132,132,132,6,10,10,8,1,0,248,132,132,132,248,128,128, + 128,128,128,6,10,10,8,1,0,120,132,132,128,128,128,128, + 132,132,120,7,10,10,8,1,0,254,16,16,16,16,16,16, + 16,16,16,7,10,10,8,1,0,130,130,68,68,40,40,16, + 16,32,96,7,11,11,8,1,0,16,124,146,146,146,146,146, + 124,16,16,16,6,10,10,8,1,0,132,132,72,72,48,48, + 72,72,132,132,7,12,12,8,1,254,132,132,132,132,132,132, + 132,132,132,254,2,2,6,10,10,8,1,0,132,132,132,132, + 132,252,4,4,4,4,7,10,10,8,1,0,146,146,146,146, + 146,146,146,146,146,254,8,12,12,8,0,254,146,146,146,146, + 146,146,146,146,146,255,1,1,7,10,10,8,1,0,224,32, + 32,32,60,34,34,34,34,60,6,10,10,8,1,0,132,132, + 132,132,228,148,148,148,148,228,6,10,10,8,1,0,128,128, + 128,128,248,132,132,132,132,248,6,10,10,8,1,0,112,136, + 4,4,124,4,4,4,136,112,6,10,10,8,1,0,152,164, + 164,164,228,164,164,164,164,152,6,10,10,8,1,0,124,132, + 132,132,124,36,68,68,132,132,6,8,8,8,1,0,120,132, + 4,124,132,132,140,116,6,12,12,8,1,0,4,56,64,128, + 248,132,132,132,132,132,132,120,6,8,8,8,1,0,248,132, + 132,248,132,132,132,248,6,8,8,8,1,0,252,128,128,128, + 128,128,128,128,7,9,9,8,1,255,60,36,68,68,132,132, + 132,254,130,6,8,8,8,1,0,120,132,132,252,128,128,132, + 120,7,8,8,8,1,0,146,146,84,56,56,84,146,146,6, + 8,8,8,1,0,120,132,4,120,8,4,132,120,6,8,8, + 8,1,0,140,140,148,148,164,164,196,196,6,12,12,8,1, + 0,72,48,0,0,140,140,148,148,164,164,196,196,6,8,8, + 8,1,0,140,144,160,192,160,144,136,132,6,8,8,8,1, + 0,60,36,36,36,36,68,68,132,6,8,8,8,1,0,132, + 204,204,180,180,132,132,132,6,8,8,8,1,0,132,132,132, + 252,132,132,132,132,6,8,8,8,1,0,120,132,132,132,132, + 132,132,120,6,8,8,8,1,0,252,132,132,132,132,132,132, + 132,6,10,10,8,1,254,248,132,132,132,132,248,128,128,128, + 128,6,8,8,8,1,0,120,132,128,128,128,128,132,120,7, + 8,8,8,1,0,254,16,16,16,16,16,16,16,6,10,10, + 8,1,254,132,132,72,72,48,48,32,32,64,192,7,10,10, + 8,1,255,16,16,124,146,146,146,146,124,16,16,6,8,8, + 8,1,0,132,132,72,48,48,72,132,132,7,10,10,8,1, + 254,132,132,132,132,132,132,132,254,2,2,6,8,8,8,1, + 0,132,132,132,132,252,4,4,4,7,8,8,8,1,0,146, + 146,146,146,146,146,146,254,8,10,10,8,0,254,146,146,146, + 146,146,146,146,255,1,1,7,8,8,8,1,0,224,32,32, + 60,34,34,34,60,6,8,8,8,1,0,132,132,132,228,148, + 148,148,228,6,8,8,8,1,0,128,128,128,248,132,132,132, + 248,6,8,8,8,1,0,112,136,4,124,4,4,136,112,6, + 8,8,8,1,0,152,164,164,228,164,164,164,152,6,8,8, + 8,1,0,124,132,132,132,124,36,68,132,6,12,12,8,1, + 0,96,24,0,0,120,132,132,252,128,128,132,120,6,12,12, + 8,1,0,72,72,0,0,120,132,132,252,128,128,132,120,6, + 11,11,8,1,255,64,64,240,64,64,120,68,68,68,68,24, + 6,12,12,8,1,0,24,96,0,0,252,128,128,128,128,128, + 128,128,6,8,8,8,1,0,56,68,128,248,128,128,68,56, + 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,11, + 11,8,2,0,32,32,0,96,32,32,32,32,32,32,248,5, + 11,11,8,2,0,144,144,0,96,32,32,32,32,32,32,248, + 5,13,13,8,1,254,8,8,0,24,8,8,8,8,8,8, + 8,144,96,8,8,8,8,0,0,120,72,72,78,73,73,73, + 142,7,8,8,8,1,0,144,144,144,252,146,146,146,156,6, + 10,10,8,1,0,64,64,240,64,64,88,100,68,68,68,6, + 12,12,8,1,0,24,96,0,0,140,144,160,192,160,144,136, + 132,6,12,12,8,1,0,96,24,0,0,140,140,148,148,164, + 164,196,196,6,15,15,8,1,254,132,132,120,0,0,132,132, + 72,72,48,48,32,32,64,192,5,10,10,8,2,254,136,136, + 136,136,136,136,248,32,32,32,7,10,10,8,1,0,108,130, + 130,130,130,146,146,146,146,108,7,8,8,8,1,0,68,130, + 130,146,146,146,146,108,7,10,10,8,1,0,32,248,32,32, + 60,34,34,34,34,60,6,10,10,8,1,0,64,64,240,64, + 64,120,68,68,68,120,7,10,10,8,1,0,140,146,160,160, + 252,160,160,160,146,140,7,8,8,8,1,0,140,146,160,252, + 160,160,146,140,7,10,10,8,1,0,16,16,40,40,68,108, + 84,146,146,146,7,8,8,8,1,0,16,40,40,68,108,146, + 146,146,7,10,10,8,1,0,144,144,168,168,164,236,212,146, + 146,146,7,8,8,8,1,0,144,168,168,164,236,146,146,146, + 7,10,10,8,1,0,124,68,68,40,16,56,84,146,146,146, + 7,8,8,8,1,0,124,68,40,16,124,146,146,146,7,10, + 10,8,1,0,190,162,162,148,232,156,170,170,170,170,7,8, + 8,8,1,0,190,162,148,232,156,170,170,170,6,14,14,8, + 1,254,72,48,120,132,4,4,120,8,4,4,4,120,128,128, + 6,13,13,8,1,254,72,48,0,120,132,4,120,8,4,4, + 120,128,128,7,10,10,8,1,0,146,146,146,146,146,124,16, + 16,16,16,7,8,8,8,1,254,146,146,146,146,146,124,16, + 16,6,10,10,8,1,0,120,132,132,132,252,132,132,132,132, + 120,6,8,8,8,1,0,120,132,132,252,132,132,132,120,7, + 10,10,8,1,0,134,136,136,136,80,80,80,32,32,32,6, + 8,8,8,1,0,140,144,144,80,80,80,32,32,7,14,14, + 8,1,0,204,34,0,0,134,136,136,136,80,80,80,32,32, + 32,7,12,12,8,1,0,204,34,0,0,140,144,144,80,80, + 80,32,32,7,12,12,8,1,254,64,160,178,178,178,170,172, + 168,168,72,16,16,7,10,10,8,1,254,82,178,178,170,172, + 168,168,72,16,16,7,12,12,8,1,255,16,124,146,130,130, + 130,130,130,130,146,124,16,7,10,10,8,1,255,16,124,146, + 130,130,130,130,146,124,16,7,14,14,8,1,0,120,134,48, + 0,108,130,130,130,130,146,146,146,146,108,7,12,12,8,1, + 0,120,134,48,0,68,130,130,146,146,146,146,108,7,14,14, + 8,1,0,254,16,0,0,108,130,130,130,130,146,146,146,146, + 108,7,12,12,8,1,0,254,16,0,0,68,130,130,146,146, + 146,146,108,6,12,12,8,1,254,120,132,132,128,128,128,128, + 128,120,8,8,8,6,10,10,8,1,254,120,132,132,128,128, + 128,120,8,8,8,7,7,7,8,1,1,36,24,136,84,34, + 48,72,4,3,3,8,1,10,16,240,128,5,4,4,8,0, + 9,16,40,72,128,4,3,3,8,1,10,128,240,128,4,3, + 3,8,1,10,16,240,16,8,3,3,8,0,10,48,76,131, + 14,14,28,16,0,254,1,0,2,128,16,16,40,40,0,0, + 0,0,64,8,160,20,0,0,0,0,0,0,16,16,41,40, + 2,128,14,14,28,16,1,254,1,0,33,8,19,16,24,96, + 0,0,0,0,0,16,224,28,32,0,0,0,0,0,25,176, + 17,16,33,8,7,15,15,8,1,254,72,48,0,132,140,140, + 148,148,164,164,196,196,134,4,8,7,14,14,8,1,254,72, + 48,0,0,140,140,148,148,164,164,196,198,4,8,6,10,10, + 8,1,0,64,224,64,64,64,120,68,68,76,120,6,7,7, + 8,1,0,64,224,64,120,68,68,120,6,10,10,8,1,0, + 248,132,148,136,244,128,128,128,128,128,6,10,10,8,1,254, + 184,196,132,132,132,148,200,180,128,128,6,12,12,8,1,0, + 4,4,252,128,128,128,128,128,128,128,128,128,6,10,10,8, + 1,0,4,4,252,128,128,128,128,128,128,128,7,10,10,8, + 1,0,62,32,32,32,32,248,32,32,32,32,7,8,8,8, + 1,0,62,32,32,32,248,32,32,32,6,11,11,8,1,255, + 252,128,128,128,128,248,132,132,132,132,24,6,9,9,8,1, + 255,252,128,128,128,248,132,132,132,24,7,12,12,8,1,254, + 146,146,84,84,56,56,84,84,146,146,2,2,7,10,10,8, + 1,254,146,146,84,56,56,84,146,146,2,2,6,12,12,8, + 1,254,120,132,4,4,120,8,4,4,132,120,16,96,6,10, + 10,8,1,254,120,132,4,120,8,4,132,120,16,96,6,12, + 12,8,1,254,128,140,144,160,192,192,160,144,136,132,4,4, + 6,10,10,8,1,254,140,144,160,192,160,144,136,132,4,4, + 7,10,10,8,1,0,128,134,168,168,240,168,168,168,132,130, + 7,8,8,8,1,0,134,168,168,240,168,168,132,130,7,10, + 10,8,1,0,64,230,72,80,96,96,80,72,68,66,7,8, + 8,8,1,0,70,232,80,96,80,72,68,66,8,10,10,8, + 0,0,224,35,36,40,48,48,40,36,34,33,8,8,8,8, + 0,0,227,36,40,48,40,36,34,33,7,12,12,8,1,254, + 132,132,132,132,252,132,132,132,132,134,2,2,7,10,10,8, + 1,254,132,132,132,252,132,132,132,134,2,2,7,10,10,8, + 1,0,142,136,136,136,248,136,136,136,136,136,7,8,8,8, + 1,0,142,136,136,248,136,136,136,136,7,12,12,8,1,254, + 240,144,144,144,144,156,146,146,146,146,2,12,7,10,10,8, + 1,254,240,144,144,144,156,146,146,146,2,12,6,11,11,8, + 1,255,56,64,128,152,164,164,164,164,88,48,12,6,9,9, + 8,1,255,56,64,152,164,164,164,88,48,12,6,12,12,8, + 1,254,120,132,132,128,128,128,128,132,132,120,32,24,6,10, + 10,8,1,254,120,132,132,128,128,132,132,120,32,24,7,12, + 12,8,1,254,254,16,16,16,16,16,16,16,16,24,8,8, + 7,10,10,8,1,254,254,16,16,16,16,16,16,24,8,8, + 7,10,10,8,1,0,130,130,68,68,40,16,16,16,16,16, + 5,10,10,8,2,254,136,136,136,80,80,32,32,32,32,32, + 7,10,10,8,1,0,130,130,68,68,40,16,16,124,16,16, + 5,8,8,8,2,0,136,136,136,80,32,32,248,32,7,12, + 12,8,1,254,132,132,72,72,48,48,72,72,132,134,2,2, + 7,10,10,8,1,254,132,132,72,48,48,72,132,134,2,2, + 8,12,12,8,0,254,250,34,34,34,34,34,34,34,34,63, + 1,1,8,10,10,8,0,254,250,34,34,34,34,34,34,63, + 1,1,7,12,12,8,1,254,132,132,132,132,132,140,116,4, + 4,6,2,2,7,10,10,8,1,254,132,132,132,132,140,116, + 4,6,2,2,6,10,10,8,1,0,132,132,132,132,164,172, + 116,36,36,4,6,8,8,8,1,0,132,132,132,164,172,116, + 36,4,6,10,10,8,1,0,128,128,128,184,196,132,132,132, + 132,132,6,8,8,8,1,0,128,128,184,196,132,132,132,132, + 6,10,10,8,1,0,152,164,164,164,124,32,32,36,36,24, + 6,8,8,8,1,0,152,164,164,124,32,32,36,24,6,12, + 12,8,1,254,152,164,164,164,124,32,32,36,36,24,16,12, + 6,10,10,8,1,254,152,164,164,124,32,32,36,24,16,12, + 5,10,10,8,2,0,248,32,32,32,32,32,32,32,32,248, + 7,14,14,8,1,0,130,130,124,0,146,146,84,84,56,56, + 84,84,146,146,7,13,13,8,1,0,68,68,56,0,0,146, + 146,84,56,56,84,146,146,6,12,12,8,1,254,128,140,144, + 160,192,248,132,132,132,132,4,24,6,10,10,8,1,254,140, + 144,160,192,248,132,132,132,4,24,7,12,12,8,1,254,60, + 36,36,36,36,36,36,68,68,134,4,8,7,10,10,8,1, + 254,60,36,36,36,36,68,68,134,4,8,6,12,12,8,1, + 254,132,132,132,132,252,132,132,132,132,132,4,24,6,10,10, + 8,1,254,132,132,132,252,132,132,132,132,4,24,7,12,12, + 8,1,254,132,132,132,132,252,132,132,132,132,134,4,8,7, + 10,10,8,1,254,132,132,132,252,132,132,132,134,4,8,6, + 12,12,8,1,254,132,132,132,132,132,140,116,4,4,12,8, + 8,6,10,10,8,1,254,132,132,132,132,140,116,4,12,8, + 8,7,12,12,8,1,254,132,132,204,204,180,180,132,132,132, + 134,4,8,7,10,10,8,1,254,132,204,204,180,180,132,132, + 134,4,8,3,10,10,8,3,0,224,64,64,64,64,64,64, + 64,64,224,6,14,14,8,1,0,132,132,120,0,48,72,72, + 132,132,252,132,132,132,132,6,13,13,8,1,0,132,132,120, + 0,0,120,132,4,124,132,132,140,116,6,14,14,8,1,0, + 72,72,0,0,48,72,72,132,132,252,132,132,132,132,6,12, + 12,8,1,0,72,72,0,0,120,132,4,124,132,132,140,116, + 7,10,10,8,1,0,62,80,144,144,254,144,144,144,144,158, + 7,8,8,8,1,0,124,146,18,126,144,144,146,124,6,14, + 14,8,1,0,132,132,120,0,252,128,128,128,248,128,128,128, + 128,252,6,12,12,8,1,0,132,132,120,0,120,132,132,252, + 128,128,132,120,6,10,10,8,1,0,48,72,132,4,4,252, + 132,132,72,48,6,8,8,8,1,0,120,132,4,4,252,132, + 132,120,6,14,14,8,1,0,72,72,0,0,48,72,132,4, + 4,252,132,132,72,48,6,12,12,8,1,0,72,72,0,0, + 120,132,4,4,252,132,132,120,7,14,14,8,1,0,72,72, + 0,0,146,146,84,84,56,56,84,84,146,146,7,12,12,8, + 1,0,72,72,0,0,146,146,84,56,56,84,146,146,6,14, + 14,8,1,0,72,72,0,0,120,132,4,4,120,8,4,4, + 132,120,6,12,12,8,1,0,72,72,0,0,120,132,4,120, + 8,4,132,120,6,10,10,8,1,0,252,8,16,32,56,4, + 4,4,140,120,6,10,10,8,1,254,124,8,16,32,56,4, + 4,4,132,120,6,13,13,8,1,0,120,0,0,132,140,140, + 148,148,164,164,196,196,132,6,11,11,8,1,0,120,0,0, + 140,140,148,148,164,164,196,196,6,14,14,8,1,0,72,72, + 0,0,132,140,140,148,148,164,164,196,196,132,6,12,12,8, + 1,0,72,72,0,0,140,140,148,148,164,164,196,196,6,14, + 14,8,1,0,72,72,0,0,120,132,132,132,132,132,132,132, + 132,120,6,12,12,8,1,0,72,72,0,0,120,132,132,132, + 132,132,132,120,6,10,10,8,1,0,120,132,132,132,252,132, + 132,132,132,120,6,8,8,8,1,0,120,132,132,252,132,132, + 132,120,6,14,14,8,1,0,72,72,0,0,120,132,132,132, + 252,132,132,132,132,120,6,12,12,8,1,0,72,72,0,0, + 120,132,132,252,132,132,132,120,6,12,12,8,1,0,72,0, + 120,132,4,4,124,4,4,4,132,120,6,10,10,8,1,0, + 72,0,120,132,4,60,4,4,132,120,7,13,13,8,1,0, + 124,0,0,130,130,68,68,40,40,16,16,32,96,6,13,13, + 8,1,254,120,0,0,132,132,72,72,48,48,32,32,64,192, + 7,14,14,8,1,0,72,72,0,0,130,130,68,68,40,40, + 16,16,32,96,6,14,14,8,1,254,72,72,0,0,132,132, + 72,72,48,48,32,32,64,192,7,14,14,8,1,0,102,136, + 0,0,130,130,68,68,40,40,16,16,32,96,7,14,14,8, + 1,254,102,136,0,0,132,132,72,72,48,48,32,32,64,192, + 6,14,14,8,1,0,72,72,0,0,132,132,132,132,132,140, + 116,4,4,4,6,12,12,8,1,0,72,72,0,0,132,132, + 132,132,140,116,4,4,6,12,12,8,1,254,252,128,128,128, + 128,128,128,128,128,224,96,32,6,10,10,8,1,254,252,128, + 128,128,128,128,128,224,96,32,6,14,14,8,1,0,72,72, + 0,0,132,132,132,132,228,148,148,148,148,228,6,12,12,8, + 1,0,72,72,0,0,132,132,132,228,148,148,148,228,6,12, + 12,8,1,254,252,128,128,128,248,128,128,128,128,192,64,192, + 5,10,10,8,1,254,248,128,128,240,128,128,128,192,64,192, + 6,12,12,8,1,254,132,132,72,72,48,48,72,72,132,132, + 4,8,6,10,10,8,1,254,132,132,72,48,48,72,132,132, + 4,8,6,10,10,8,1,0,132,132,72,72,48,252,72,72, + 132,132,6,8,8,8,1,0,132,132,72,48,252,72,132,132 + }; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifont[5516] U8G_SECTION(".progmem.u8g_font_unifont") = { + 0,16,16,0,254,10,6,167,8,149,0,255,254,14,254,11, + 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,57,147,194,82,50,95,138,82,113, + 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,59,165,193, + 36,49,25,137,36,113,37,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,123,165,193,36,121,25,193,36,121,37,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,121,191,194,72,122,73,194, + 72,121,137,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,122, + 77,194,82,123,83,194,214,122,79,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,49,165,202,40,122,49,202,40,73,165,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,115,209,202,16,115, + 209,202,16,115,223,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,120,225,197,0,120,193,196,32,121,193,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,69,241,196,64,124,65,196,64,68, + 65,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,65,241,193, + 0,65,241,193,0,125,1,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,69,241,196,64,68,65,168,64,16,65,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,125,241,193,0,125,241,193, + 0,65,1,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,61, + 225,193,16,65,225,193,32,61,17,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,60,225,193,16,57,17,133,16,120,225,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,61,241,192,64,56, + 65,132,64,121,241,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,114,57,202,32,74,57,202,32,115,185,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,113,137,202,24,74,9,202,8,113, + 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,113,153,202, + 4,74,9,202,16,113,157,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,113,153,202,4,74,25,202,4,113,153,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,113,133,202,12,74,21,202, + 28,113,133,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, + 147,234,84,106,89,219,212,74,83,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,52,83,194,154,49,23,137,18,113,19,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,123,185,193,36,121, + 57,193,36,121,57,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,51,37,196,180,71,173,196,164,52,165,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,125,17,193,176,125,81,193,16,125, + 17,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,58,93,194, + 82,50,93,138,82,113,157,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,121,207,194,16,121,145,192,80,123,143,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,121,193,194,0,121,129,192, + 64,67,129,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, + 193,194,0,89,129,200,64,59,129,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,113,193,202,0,113,129,208,64,75,129,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,73,193,202,0,73, + 129,200,64,51,129,128,0,0,1,128,0,0,1,128,0,85, + 85,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, + 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, + 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, + 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, + 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, + 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, + 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, + 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, + 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, + 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, + 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, + 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, + 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, + 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, + 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, + 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, + 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, + 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, + 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, + 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, + 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, + 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, + 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, + 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, + 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, + 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, + 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, + 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, + 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, + 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, + 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, + 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, + 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, + 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, + 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, + 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, + 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, + 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, + 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, + 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, + 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, + 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, + 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, + 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, + 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, + 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, + 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, + 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, + 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, + 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, + 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, + 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, + 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, + 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, + 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, + 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, + 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, + 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, + 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, + 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, + 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, + 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, + 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, + 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, + 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, + 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, + 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, + 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, + 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, + 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, + 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, + 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, + 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, + 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, + 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, + 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, + 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, + 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, + 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, + 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, + 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, + 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, + 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, + 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, + 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,113,157,202,82,115, + 211,194,82,66,93,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,73,157,202,82,122,93,202,80,73,145,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,115,147,202,82,115,159,202,18,114, + 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,75,147,234, + 82,91,159,202,82,75,147,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,116,185,166,164,37,165,164,164,116,185,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,75,209,234,16,91,209,202, + 16,75,223,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, + 205,194,18,49,159,136,82,115,147,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,121,205,194,18,121,159,192,82,123,147,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,75,157,201,32,121, + 25,201,4,73,57,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,75,185,201,8,121,9,201,8,73,49,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,69,205,196,144,68,137,168,132,16, + 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,114,29,202, + 18,114,19,194,18,67,221,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,114,19,202,18,114,19,194,18,67,205,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,14,33,137,32,14,33,138, + 32,9,33,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, + 221,194,2,49,141,136,80,115,159,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,57,221,194,2,49,141,136,66,115,157,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,113,207,202,16,74, + 13,202,2,113,221,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,114,69,202,76,114,69,194,68,65,143,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,114,93,202,66,114,77,194,80,65, + 159,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,59,157,193, + 32,49,25,137,4,113,57,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,57,211,194,18,66,31,194,18,57,211,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,69,17,237,16,85,81,197, + 176,69,17,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, + 141,194,82,51,159,138,18,114,19,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,123,141,194,82,123,159,194,18,122,19,128, + 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, + 254,170,170,0,1,128,0,0,1,128,0,57,143,194,80,50, + 77,138,66,113,157,128,0,0,1,128,0,0,1,128,0,85, + 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, + 0,51,155,196,34,37,163,148,162,99,155,128,0,0,1,128, + 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, + 1,128,0,0,1,128,0,57,221,194,8,50,9,138,8,113, + 221,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, + 16,0,254,170,170,0,1,128,0,0,1,128,0,57,221,194, + 8,65,137,192,72,59,157,128,0,0,1,128,0,0,1,128, + 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, + 1,128,0,14,249,144,32,12,33,130,32,28,33,128,0,0, + 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, + 170,0,1,128,0,0,1,128,0,49,207,202,16,73,145,200, + 80,51,143,128,0,0,1,128,0,0,1,128,0,85,85,16, + 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, + 33,203,96,114,161,194,32,66,33,128,0,0,1,128,0,0, + 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,51,143,202,80,123,145,202,16,74,15,128, + 0,0,1,128,0,0,1,128,0,85,85,0,0,0,8,0, + 14,1,10,10,8,4,0,128,128,0,128,128,128,128,128,128, + 128,7,10,10,8,1,0,16,16,124,146,144,144,146,124,16, + 16,7,10,10,8,1,0,28,32,32,32,248,32,32,32,124, + 194,6,8,8,8,1,1,132,72,120,72,72,120,72,132,7, + 10,10,8,1,0,130,68,40,16,254,16,254,16,16,16,1, + 10,10,8,4,0,128,128,128,128,0,0,128,128,128,128,6, + 10,10,8,1,0,120,132,128,120,132,132,120,4,132,120,4, + 2,2,8,2,12,144,144,8,10,10,8,0,0,60,66,153, + 165,161,161,165,153,66,60,5,7,7,8,2,5,112,8,120, + 136,120,0,248,6,9,9,8,1,0,36,36,72,72,144,72, + 72,36,36,6,4,4,8,1,0,252,4,4,4,6,1,1, + 8,1,4,252,8,10,10,8,0,0,60,66,185,165,165,185, + 169,165,66,60,6,1,1,8,1,11,252,3,4,4,8,2, + 10,64,160,160,64,7,9,9,8,1,1,16,16,16,254,16, + 16,16,0,254,5,7,7,8,2,5,112,136,8,112,128,128, + 248,5,7,7,8,2,5,112,136,8,112,8,136,112,3,3, + 3,8,3,10,32,64,128,5,8,8,8,2,254,136,136,136, + 136,216,168,128,128,6,12,12,8,1,255,124,244,244,244,244, + 116,20,20,20,20,20,28,2,2,2,8,3,4,192,192,3, + 2,2,8,2,254,32,192,3,7,7,8,2,5,32,96,160, + 32,32,32,32,5,7,7,8,2,5,112,136,136,136,112,0, + 248,6,9,9,8,1,0,144,144,72,72,36,72,72,144,144, + 6,10,10,8,1,0,68,196,72,80,80,36,44,84,156,132, + 6,10,10,8,1,0,68,196,72,80,80,40,52,68,136,156, + 6,10,10,8,1,0,196,36,72,48,208,36,44,84,156,132, + 6,10,10,8,1,0,16,16,0,16,16,96,132,132,132,120, + 6,14,14,8,1,0,96,24,0,0,48,72,72,132,132,252, + 132,132,132,132,6,14,14,8,1,0,24,96,0,0,48,72, + 72,132,132,252,132,132,132,132,6,14,14,8,1,0,48,72, + 0,0,48,72,72,132,132,252,132,132,132,132,6,14,14,8, + 1,0,100,152,0,0,48,72,72,132,132,252,132,132,132,132, + 6,14,14,8,1,0,72,72,0,0,48,72,72,132,132,252, + 132,132,132,132,6,14,14,8,1,0,48,72,48,0,48,72, + 72,132,132,252,132,132,132,132,7,10,10,8,1,0,62,80, + 144,144,254,144,144,144,144,158,6,12,12,8,1,254,120,132, + 132,128,128,128,128,132,132,120,16,96,6,14,14,8,1,0, + 96,24,0,0,252,128,128,128,248,128,128,128,128,252,6,14, + 14,8,1,0,24,96,0,0,252,128,128,128,248,128,128,128, + 128,252,6,14,14,8,1,0,48,72,0,0,252,128,128,128, + 248,128,128,128,128,252,6,14,14,8,1,0,72,72,0,0, + 252,128,128,128,248,128,128,128,128,252,5,14,14,8,2,0, + 96,24,0,0,248,32,32,32,32,32,32,32,32,248,5,14, + 14,8,2,0,48,192,0,0,248,32,32,32,32,32,32,32, + 32,248,5,14,14,8,2,0,96,144,0,0,248,32,32,32, + 32,32,32,32,32,248,5,14,14,8,2,0,144,144,0,0, + 248,32,32,32,32,32,32,32,32,248,7,10,10,8,0,0, + 120,68,66,66,242,66,66,66,68,120,6,14,14,8,1,0, + 100,152,0,0,132,196,196,164,164,148,148,140,140,132,6,14, + 14,8,1,0,96,24,0,0,120,132,132,132,132,132,132,132, + 132,120,6,14,14,8,1,0,24,96,0,0,120,132,132,132, + 132,132,132,132,132,120,6,14,14,8,1,0,48,72,0,0, + 120,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, + 100,152,0,0,120,132,132,132,132,132,132,132,132,120,6,14, + 14,8,1,0,72,72,0,0,120,132,132,132,132,132,132,132, + 132,120,6,5,5,8,1,2,132,72,48,72,132,6,12,12, + 8,1,255,4,116,136,140,148,148,164,164,196,68,184,128,6, + 14,14,8,1,0,96,24,0,0,132,132,132,132,132,132,132, + 132,132,120,6,14,14,8,1,0,24,96,0,0,132,132,132, + 132,132,132,132,132,132,120,6,14,14,8,1,0,48,72,0, + 0,132,132,132,132,132,132,132,132,132,120,6,14,14,8,1, + 0,72,72,0,0,132,132,132,132,132,132,132,132,132,120,7, + 14,14,8,1,0,24,96,0,0,130,130,68,68,40,16,16, + 16,16,16,6,11,11,8,1,0,128,128,240,136,132,132,136, + 240,128,128,128,6,10,10,8,1,0,112,136,136,136,248,132, + 132,132,196,184,6,12,12,8,1,0,96,24,0,0,120,132, + 4,124,132,132,140,116,6,12,12,8,1,0,24,96,0,0, + 120,132,4,124,132,132,140,116,6,12,12,8,1,0,48,72, + 0,0,120,132,4,124,132,132,140,116,6,12,12,8,1,0, + 100,152,0,0,120,132,4,124,132,132,140,116,6,12,12,8, + 1,0,72,72,0,0,120,132,4,124,132,132,140,116,6,13, + 13,8,1,0,48,72,48,0,0,120,132,4,124,132,132,140, + 116,7,8,8,8,1,0,124,146,18,126,144,144,146,124,6, + 10,10,8,1,254,120,132,128,128,128,128,132,120,16,96,6, + 12,12,8,1,0,96,24,0,0,120,132,132,252,128,128,132, + 120,6,12,12,8,1,0,24,96,0,0,120,132,132,252,128, + 128,132,120,6,12,12,8,1,0,48,72,0,0,120,132,132, + 252,128,128,132,120,6,12,12,8,1,0,72,72,0,0,120, + 132,132,252,128,128,132,120,5,12,12,8,2,0,192,48,0, + 0,96,32,32,32,32,32,32,248,5,12,12,8,2,0,48, + 192,0,0,96,32,32,32,32,32,32,248,5,12,12,8,2, + 0,96,144,0,0,96,32,32,32,32,32,32,248,5,12,12, + 8,2,0,144,144,0,0,96,32,32,32,32,32,32,248,6, + 12,12,8,1,0,100,24,40,68,4,124,132,132,132,132,132, + 120,6,12,12,8,1,0,100,152,0,0,184,196,132,132,132, + 132,132,132,6,12,12,8,1,0,96,24,0,0,120,132,132, + 132,132,132,132,120,6,12,12,8,1,0,24,96,0,0,120, + 132,132,132,132,132,132,120,6,12,12,8,1,0,48,72,0, + 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,100, + 152,0,0,120,132,132,132,132,132,132,120,6,12,12,8,1, + 0,72,72,0,0,120,132,132,132,132,132,132,120,6,7,7, + 8,1,1,48,0,0,252,0,0,48,6,10,10,8,1,255, + 4,120,140,148,148,164,164,196,120,128,6,12,12,8,1,0, + 96,24,0,0,132,132,132,132,132,132,140,116,6,12,12,8, + 1,0,24,96,0,0,132,132,132,132,132,132,140,116,6,12, + 12,8,1,0,48,72,0,0,132,132,132,132,132,132,140,116, + 6,12,12,8,1,0,72,72,0,0,132,132,132,132,132,132, + 140,116,6,14,14,8,1,254,24,96,0,0,132,132,132,132, + 132,76,52,4,4,120,5,12,12,8,2,254,128,128,240,136, + 136,136,144,160,192,128,128,128,6,14,14,8,1,254,72,72, + 0,0,132,132,132,132,132,76,52,4,4,120}; +/* + Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 + Copyright: + Capital A Height: 10, '1' Height: 10 + Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=14 + Font Bounding box w=16 h=16 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent =10 descent=-2 + X Font ascent =11 descent=-2 + Max Font ascent =14 descent=-2 +*/ +#include "u8g.h" +const u8g_fntpgm_uint8_t u8g_font_unifontr[1483] U8G_SECTION(".progmem.u8g_font_unifontr") = { + 0,16,16,0,254,10,1,231,3,213,32,127,254,14,254,11, + 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, + 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, + 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, + 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, + 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, + 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, + 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, + 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, + 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, + 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, + 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, + 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, + 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, + 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, + 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, + 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, + 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, + 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, + 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, + 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, + 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, + 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, + 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, + 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, + 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, + 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, + 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, + 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, + 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, + 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, + 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, + 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, + 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, + 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, + 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, + 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, + 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, + 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, + 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, + 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, + 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, + 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, + 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, + 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, + 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, + 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, + 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, + 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, + 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, + 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, + 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, + 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, + 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, + 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, + 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, + 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, + 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, + 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, + 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, + 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, + 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, + 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, + 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, + 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, + 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, + 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, + 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, + 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, + 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, + 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, + 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, + 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, + 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, + 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, + 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, + 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, + 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, + 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, + 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, + 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, + 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, + 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, + 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, + 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, + 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, + 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, + 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, + 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, + 0,0,1,128,0,0,1,128,0,85,85}; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c new file mode 100644 index 000000000..30b309723 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c @@ -0,0 +1,81 @@ +/* + + u8g_line.h + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#include "u8g.h" + +void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) +{ + u8g_uint_t tmp; + u8g_uint_t x,y; + u8g_uint_t dx, dy; + u8g_int_t err; + u8g_int_t ystep; + + uint8_t swapxy = 0; + + /* no BBX intersection check at the moment, should be added... */ + + if ( x1 > x2 ) dx = x1-x2; else dx = x2-x1; + if ( y1 > y2 ) dy = y1-y2; else dy = y2-y1; + + if ( dy > dx ) + { + swapxy = 1; + tmp = dx; dx =dy; dy = tmp; + tmp = x1; x1 =y1; y1 = tmp; + tmp = x2; x2 =y2; y2 = tmp; + } + if ( x1 > x2 ) + { + tmp = x1; x1 =x2; x2 = tmp; + tmp = y1; y1 =y2; y2 = tmp; + } + err = dx >> 1; + if ( y2 > y1 ) ystep = 1; else ystep = -1; + y = y1; + for( x = x1; x <= x2; x++ ) + { + if ( swapxy == 0 ) + u8g_DrawPixel(u8g, x, y); + else + u8g_DrawPixel(u8g, y, x); + err -= (uint8_t)dy; + if ( err < 0 ) + { + y += (u8g_uint_t)ystep; + err += (u8g_uint_t)dx; + } + } +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c new file mode 100644 index 000000000..41c7fada1 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c @@ -0,0 +1,456 @@ +/* + + u8g_ll_api.c + + low level api + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include +#include "u8g.h" + +uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + return dev->dev_fn(u8g, dev, msg, arg); +} + +/*====================================================================*/ + +uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t r; + u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); + r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL); + u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G); + u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); + return r; +} + +void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev) +{ + u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); + u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL); + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); + u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); +} + +uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev) +{ + uint8_t r; + u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); + u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); + r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL); + if ( r != 0 ) + { + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); + } + u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); + return r; +} + +uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast) +{ + return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast); +} + +void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y) +{ + u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); + arg->x = x; + arg->y = y; + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg); +} + +void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) +{ + u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); + arg->x = x; + arg->y = y; + arg->dir = dir; + arg->pixel = pixel; + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg); +} + +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION +uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg); +} +#endif + + + +u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev) +{ + u8g_uint_t r; + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r); + return r; +} + +u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev) +{ + u8g_uint_t r; + u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r); + return r; +} + +u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev) +{ + return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL); +} + + + +/*====================================================================*/ + +void u8g_UpdateDimension(u8g_t *u8g) +{ + u8g->width = u8g_GetWidthLL(u8g, u8g->dev); + u8g->height = u8g_GetHeightLL(u8g, u8g->dev); + u8g->mode = u8g_GetModeLL(u8g, u8g->dev); + /* 9 Dec 2012: u8g_scale.c requires update of current page */ + u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); +} + +static void u8g_init_data(u8g_t *u8g) +{ + uint8_t i; + u8g->font = NULL; + u8g->cursor_font = NULL; + u8g->cursor_bg_color = 0; + u8g->cursor_fg_color = 1; + u8g->cursor_encoding = 34; + u8g->cursor_fn = (u8g_draw_cursor_fn)0; + + for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) + u8g->pin_list[i] = U8G_PIN_NONE; + + u8g_SetColorIndex(u8g, 1); + + u8g_SetFontPosBaseline(u8g); + + u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; + u8g->font_ref_ascent = 0; + u8g->font_ref_descent = 0; + u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */ + u8g->line_spacing = 0; + + u8g->state_cb = u8g_state_dummy_cb; + +} + +uint8_t u8g_Begin(u8g_t *u8g) +{ + /* call and init low level driver and com device */ + if ( u8g_InitLL(u8g, u8g->dev) == 0 ) + return 0; + /* fetch width and height from the low level */ + u8g_UpdateDimension(u8g); + return 1; +} + +uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev) +{ + u8g_init_data(u8g); + u8g->dev = dev; + + /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ + /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ + /* if Arduino call u8g_UpdateDimension else u8g_Begin */ + /* issue 146 */ + return u8g_Begin(u8g); +} + +uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) +{ + + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + /* assign user pins */ + u8g->pin_list[U8G_PI_SCK] = sck; + u8g->pin_list[U8G_PI_MOSI] = mosi; + u8g->pin_list[U8G_PI_CS] = cs; + u8g->pin_list[U8G_PI_A0] = a0; + u8g->pin_list[U8G_PI_RESET] = reset; + + /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ + /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ + /* if Arduino call u8g_UpdateDimension else u8g_Begin */ + /* issue 146 */ + return u8g_Begin(u8g); +} + +uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) +{ + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + + /* assign user pins */ + u8g->pin_list[U8G_PI_CS] = cs; + u8g->pin_list[U8G_PI_A0] = a0; + u8g->pin_list[U8G_PI_RESET] = reset; + + return u8g_Begin(u8g); +} + +uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options) +{ + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + u8g->pin_list[U8G_PI_I2C_OPTION] = options; + + return u8g_Begin(u8g); +} + + +uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) +{ + + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + /* assign user pins */ + + u8g->pin_list[U8G_PI_EN] = en; + u8g->pin_list[U8G_PI_CS] = cs; + u8g->pin_list[U8G_PI_DI] = di; + u8g->pin_list[U8G_PI_RW] = rw; + u8g->pin_list[U8G_PI_RESET] = reset; + + return u8g_Begin(u8g); +} + +uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) +{ + + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + /* assign user pins */ + + u8g->pin_list[U8G_PI_D0] = d0; + u8g->pin_list[U8G_PI_D1] = d1; + u8g->pin_list[U8G_PI_D2] = d2; + u8g->pin_list[U8G_PI_D3] = d3; + u8g->pin_list[U8G_PI_D4] = d4; + u8g->pin_list[U8G_PI_D5] = d5; + u8g->pin_list[U8G_PI_D6] = d6; + u8g->pin_list[U8G_PI_D7] = d7; + + u8g->pin_list[U8G_PI_EN] = en; + u8g->pin_list[U8G_PI_CS1] = cs1; + u8g->pin_list[U8G_PI_CS2] = cs2; + u8g->pin_list[U8G_PI_DI] = di; + u8g->pin_list[U8G_PI_RW] = rw; + u8g->pin_list[U8G_PI_RESET] = reset; + + return u8g_Begin(u8g); +} + +/* + + PIN_D0 8 + PIN_D1 9 + PIN_D2 10 + PIN_D3 11 + PIN_D4 4 + PIN_D5 5 + PIN_D6 6 + PIN_D7 7 + + PIN_CS 14 + PIN_A0 15 + PIN_RESET 16 + PIN_WR 17 + PIN_RD 18 + + u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) + u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) + +*/ + +uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) +{ + + /* fill data structure with some suitable values */ + u8g_init_data(u8g); + u8g->dev = dev; + + /* assign user pins */ + + u8g->pin_list[U8G_PI_D0] = d0; + u8g->pin_list[U8G_PI_D1] = d1; + u8g->pin_list[U8G_PI_D2] = d2; + u8g->pin_list[U8G_PI_D3] = d3; + u8g->pin_list[U8G_PI_D4] = d4; + u8g->pin_list[U8G_PI_D5] = d5; + u8g->pin_list[U8G_PI_D6] = d6; + u8g->pin_list[U8G_PI_D7] = d7; + + u8g->pin_list[U8G_PI_CS] = cs; + u8g->pin_list[U8G_PI_A0] = a0; + u8g->pin_list[U8G_PI_WR] = wr; + u8g->pin_list[U8G_PI_RD] = rd; + u8g->pin_list[U8G_PI_RESET] = reset; + + return u8g_Begin(u8g); +} + +void u8g_FirstPage(u8g_t *u8g) +{ + u8g_FirstPageLL(u8g, u8g->dev); +} + +uint8_t u8g_NextPage(u8g_t *u8g) +{ + if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) + { + u8g->cursor_fn(u8g); + } + return u8g_NextPageLL(u8g, u8g->dev); +} + +uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast) +{ + return u8g_SetContrastLL(u8g, u8g->dev, contrast); +} + +void u8g_SleepOn(u8g_t *u8g) +{ + u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL); +} + +void u8g_SleepOff(u8g_t *u8g) +{ + u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL); +} + + +void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y) +{ + u8g_DrawPixelLL(u8g, u8g->dev, x, y); +} + +void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) +{ + u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel); +} + +/* u8g_IsBBXIntersection() has been moved to u8g_clip.c */ +#ifdef OBSOLETE_CODE +uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + /* new code */ + u8g_dev_arg_bbx_t arg; + arg.x = x; + arg.y = y; + arg.w = w; + arg.h = h; + return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg); + + /* old code */ + //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h); +} +#endif + +void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx) +{ + u8g->arg_pixel.color = idx; + /*u8g->color_index = idx; */ /* must be removed */ +} + +uint8_t u8g_GetColorIndex(u8g_t *u8g) +{ + return u8g->arg_pixel.color; +} + +uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g) +{ + uint8_t mode; + mode = u8g_GetMode(u8g); + if ( mode == U8G_MODE_R3G3B2 ) + return 255; /* white */ + else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) + return 3; /* max intensity */ + else /* if ( u8g.getMode() == U8G_MODE_BW ) */ + return 1; /* pixel on */ + return 1; +} + +void u8g_SetDefaultForegroundColor(u8g_t *u8g) +{ + u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g)); +} + +uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g) +{ + return 0; +} + +void u8g_SetDefaultBackgroundColor(u8g_t *u8g) +{ + u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */ +} + +uint8_t u8g_GetDefaultMidColor(u8g_t *u8g) +{ + uint8_t mode; + mode = u8g_GetMode(u8g); + if ( mode == U8G_MODE_R3G3B2 ) + return 0x06d; /* gray: 01101101 */ + else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) + return 1; /* low mid intensity */ + else /* if ( u8g.getMode() == U8G_MODE_BW ) */ + return 1; /* pixel on */ + return 1; /* default */ +} + +void u8g_SetDefaultMidColor(u8g_t *u8g) +{ + u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g)); +} + + + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c new file mode 100644 index 000000000..1a3eb21ed --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c @@ -0,0 +1,81 @@ +/* + + u8g_page.c + + page helper functions, only called by the dev handler. + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +/* + setup page count structure + conditions: page_height <= total_height +*/ +void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) +{ + p->page_height = page_height; + p->total_height = total_height; + p->page = 0; + u8g_page_First(p); +} + +void u8g_page_First(u8g_page_t *p) +{ + p->page_y0 = 0; + p->page_y1 = p->page_height; + p->page_y1--; + p->page = 0; +} + +uint8_t u8g_page_Next(u8g_page_t * p) +{ + register u8g_uint_t y1; + p->page_y0 += p->page_height; + if ( p->page_y0 >= p->total_height ) + return 0; + p->page++; + y1 = p->page_y1; + y1 += p->page_height; + if ( y1 >= p->total_height ) + { + y1 = p->total_height; + y1--; + } + p->page_y1 = y1; + + return 1; +} + + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c new file mode 100644 index 000000000..a94647361 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c @@ -0,0 +1,191 @@ +/* + + u8g_pb.c + + common procedures for the page buffer + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +void u8g_pb_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + end_ptr += b->width; + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + +/* the following procedure does not work. why? Can be checked with descpic */ +/* +void u8g_pb_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t cnt = b->width; + do + { + *ptr++ = 0; + cnt--; + } while( cnt != 0 ); +} +*/ + +/* + intersection assumptions: + a1 <= a2 is always true +*/ + /* + minimized version + ---1----0 1 b1 <= a2 && b1 > b2 + -----1--0 1 b2 >= a1 && b1 > b2 + ---1-1--- 1 b1 <= a2 && b2 >= a1 + */ +/* +uint8_t u8g_pb8v1_IsYIntersection___Old(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) +{ + uint8_t c0, c1, c; + c0 = v0 <= b->p.page_y1; + c1 = v1 >= b->p.page_y0; + c = v0 > v1; + if ( c0 && c1 ) return 1; + if ( c0 && c ) return 1; + if ( c1 && c ) return 1; + return 0; +} +*/ + +uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1) +{ + uint8_t c1, c2, c3, tmp; + c1 = v0 <= pb->p.page_y1; + c2 = v1 >= pb->p.page_y0; + c3 = v0 > v1; + /* + if ( c1 && c2 ) + return 1; + if ( c1 && c3 ) + return 1; + if ( c2 && c3 ) + return 1; + return 0; + */ + + tmp = c1; + c1 &= c2; + c2 &= c3; + c3 &= tmp; + c1 |= c2; + c1 |= c3; + return c1 & 1; +} + + +uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) +{ + uint8_t /*c0, c1, */ c2, c3; + /* + conditions: b->p.page_y0 < b->p.page_y1 + there are no restriction on v0 and v1. If v0 > v1, then warp around unsigned is assumed + */ + /* + c0 = v0 < 0; + c1 = v1 < 0; + */ + c2 = v0 > b->width; + c3 = v1 > b->width; + /*if ( c0 && c1 ) return 0;*/ + if ( c2 && c3 ) return 0; + /*if ( c1 && c2 ) return 0;*/ + return 1; +} + +uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx) +{ + u8g_uint_t tmp; + + tmp = bbx->y; + tmp += bbx->h; + tmp--; + + if ( u8g_pb_IsYIntersection(pb, bbx->y, tmp) == 0 ) + return 0; + + /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ + tmp = bbx->x; + tmp += bbx->w; + tmp--; + + return u8g_pb_IsXIntersection(pb, bbx->x, tmp); +} + +void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box) +{ + box->x0 = 0; + box->y0 = pb->p.page_y0; + box->x1 = pb->width; + box->x1--; + box->y1 = pb->p.page_y1; +} + + +uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + u8g_uint_t v0, v1; + v0 = arg_pixel->y; + v1 = v0; + switch( arg_pixel->dir ) + { + case 0: + break; + case 1: + v1 += 8; /* this is independent from the page height */ + break; + case 2: + break; + case 3: + v0 -= 8; + break; + } + return u8g_pb_IsYIntersection(b, v0, v1); +} + + + +uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev) +{ + return u8g_WriteSequence(u8g, dev, b->width, b->buf); +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c new file mode 100644 index 000000000..dbcd0215f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c @@ -0,0 +1,200 @@ +/* + + u8g_pb14v1.c + + 14bit height monochrom (1 bit) page buffer, + byte has vertical orientation, 7 bits per byte + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; + + +void u8g_pb14v1_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + end_ptr += b->width*2; + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + +/* Obsolete, usually set by the init of the structure */ +void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb14v1_Clear(b); +} + +void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + if ( y >= 7 ) + { + ptr += b->width; + y -= 7; + } + mask = 1; + mask <<= y; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } +} + + +void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb14v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb14v1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + +void u8g_pb14v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb14v1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); + +} + +uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb14v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb14v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb14v1_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb14v1_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c new file mode 100644 index 000000000..6f1502ed7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c @@ -0,0 +1,213 @@ +/* + + u8g_pb16h1.c + + 2x 8bit height monochrom (1 bit) page buffer + byte has horizontal orientation + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; +uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +void u8g_pb16h1_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + end_ptr += b->width*2; + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + + + +void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb16h1_Clear(b); +} + + +/* limitation: total buffer must not exceed 2*256 bytes */ +void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + u8g_uint_t tmp; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + if ( y >= 8 ) + { + ptr += b->width; + y &= 0x07; + } + tmp = b->width; + tmp >>= 3; + tmp *= (uint8_t)y; + ptr += tmp; + + mask = 0x080; + mask >>= x & 7; + x >>= 3; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } + +} + + +void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb16h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb16h1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + +void u8g_pb16h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb16h1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); +} + + +uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb16h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb16h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb16h1_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb16h1_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c new file mode 100644 index 000000000..d694efbec --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c @@ -0,0 +1,182 @@ +/* + + u8g_pb16h2.c + + 2 bit per pixel page buffer + byte has horizontal orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + +void u8g_pb16h2_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + + /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ + end_ptr += b->width; + end_ptr += b->width; + + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + +void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb16h2_Clear(b); +} + +static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + register uint16_t tmp; + + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + + tmp = b->width; + tmp >>= 2; + tmp *= (uint8_t)y; + ptr += tmp; + + tmp = x; + tmp >>= 2; + ptr += tmp; + + tmp = x; + tmp &= 3; + tmp <<= 1; + mask = 3; + mask <<= tmp; + mask = ~mask; + color_index &= 3; + color_index <<= tmp; + + *ptr &= mask; + *ptr |= color_index; +} + + +void u8g_pb16h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb16h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + + +void u8g_pb16h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb16h2_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + + +uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + { + u8g_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); + } + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_page_First(&(pb->p)); + u8g_pb16h2_Clear(pb); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb16h2_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_GRAY2BIT; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c new file mode 100644 index 000000000..774aaec70 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c @@ -0,0 +1,200 @@ +/* + + u8g_pb16v1.c + + 16bit height monochrom (1 bit) page buffer + byte has vertical orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; + + +void u8g_pb16v1_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + end_ptr += b->width*2; + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + +/* Obsolete, usually set by the init of the structure */ +void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb16v1_Clear(b); +} + +void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + if ( y >= 8 ) + { + ptr += b->width; + y &= 0x07; + } + mask = 1; + mask <<= y; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } +} + + +void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb16v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb16v1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + +void u8g_pb16v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb16v1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); + +} + +uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb16v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb16v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb16v1_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb16v1_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c new file mode 100644 index 000000000..3d40ddad7 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c @@ -0,0 +1,172 @@ +/* + + u8g_pb16v2.c + + 16 bit height 2 bit per pixel page buffer + byte has vertical orientation + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb16v2_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + + /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ + end_ptr += b->width; + end_ptr += b->width; + + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + +void u8g_pb16v2Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb16v2_Clear(b); +} + +void u8g_pb16v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint8_t *ptr = b->buf; + y -= b->p.page_y0; + if ( y >= 4 ) + { + ptr += b->width; + } + mask = 0x03; + y &= 0x03; + y <<= 1; + mask <<= y; + mask ^=0xff; + color_index &= 3; + color_index <<= y; + ptr += x; + *ptr &= mask; + *ptr |= color_index; +} + + +void u8g_pb16v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb16v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + + +void u8g_pb16v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb16v2_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + + +uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + { + u8g_pb16v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); + } + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb16v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb16v2_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb16v2_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_GRAY2BIT; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c new file mode 100644 index 000000000..6ac100f32 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c @@ -0,0 +1,208 @@ +/* + + u8g_pb32h1.c + + 2x 8bit height monochrom (1 bit) page buffer + byte has horizontal orientation + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; +uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +void u8g_pb32h1_Clear(u8g_pb_t *b) +{ + uint8_t *ptr = (uint8_t *)b->buf; + uint8_t *end_ptr = ptr; + end_ptr += b->width*4; + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + + + +void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb32h1_Clear(b); +} + + +/* limitation: total buffer must not exceed 2*256 bytes */ +void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint16_t tmp; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + tmp = b->width; + tmp >>= 3; + tmp *= y; + ptr += tmp; + + mask = 0x080; + mask >>= x & 7; + x >>= 3; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } + +} + + +void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb32h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb32h1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + +void u8g_pb32h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb32h1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); +} + + +uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb32h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb32h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb32h1_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb32h1_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c new file mode 100644 index 000000000..8a13e0b7b --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c @@ -0,0 +1,389 @@ +/* + + u8g_pb8h1.c + + 8bit height monochrom (1 bit) page buffer + byte has horizontal orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure + + 23. Sep 2012: Bug with down procedure, see FPS 1st page --> fixed (bug located in u8g_clip.c) + +*/ + +#include "u8g.h" +#include + +#ifdef __unix__ +#include +#endif + +/* NEW_CODE disabled, because the performance increase was too slow and not worth compared */ +/* to the increase of code size */ +/* #define NEW_CODE */ + +#ifdef __unix__ +void *u8g_buf_lower_limit; +void *u8g_buf_upper_limit; +#endif + +void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; +uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + +#ifdef NEW_CODE +struct u8g_pb_h1_struct +{ + u8g_uint_t x; + u8g_uint_t y; + uint8_t *ptr; + uint8_t mask; + uint8_t line_byte_len; + uint8_t cnt; +}; + +static uint8_t u8g_pb8h1_bitmask[8] = { 0x080, 0x040, 0x020, 0x010, 0x008, 0x004, 0x002, 0x001 }; + +static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) U8G_NOINLINE; +static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) +{ + register u8g_uint_t x; + x = s->x; + x++; + s->x = x; + x &= 7; + s->mask = u8g_pb8h1_bitmask[x]; + if ( x == 0 ) + s->ptr++; +} + +static void u8g_pb8h1_state_left(struct u8g_pb_h1_struct *s) +{ + register u8g_uint_t x; + x = s->x; + x--; + s->x = x; + x &= 7; + s->mask = u8g_pb8h1_bitmask[x]; + if ( x == 7 ) + s->ptr--; +} + +static void u8g_pb8h1_state_down(struct u8g_pb_h1_struct *s) +{ + s->y++; + s->ptr += s->line_byte_len; +} + +static void u8g_pb8h1_state_up(struct u8g_pb_h1_struct *s) +{ + s->y--; + s->ptr -= s->line_byte_len; +} + +static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) U8G_NOINLINE; +static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) +{ + u8g_uint_t tmp; + + uint8_t *ptr = b->buf; + + s->x = x; + s->y = y; + + y -= b->p.page_y0; + + tmp = b->width; + tmp >>= 3; + s->line_byte_len = tmp; + + /* assume negative y values, can be down to -7, subtract this from the pointer and add correction of 8 to y */ + ptr -= tmp*8; + y+=8; + /* it is important that the result of tmp*y can be 16 bit value also for 8 bit mode */ + ptr += tmp*y; + + s->mask = u8g_pb8h1_bitmask[x & 7]; + + /* assume negative x values (to -7), subtract 8 pixel from the pointer and add 8 to x */ + ptr--; + x += 8; + x >>= 3; + ptr += x; + s->ptr = ptr; +} + +static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) U8G_NOINLINE; +static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) +{ + +#ifdef __unix__ + assert( s->ptr >= u8g_buf_lower_limit ); + assert( s->ptr < u8g_buf_upper_limit ); +#endif + + if ( color_index ) + { + *s->ptr |= s->mask; + } + else + { + uint8_t mask = s->mask; + mask ^=0xff; + *s->ptr &= mask; + } +} +#endif + + +void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb_Clear(b); +} + +/* limitation: total buffer must not exceed 256 bytes */ +void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ +#ifdef NEW_CODE + struct u8g_pb_h1_struct s; + u8g_pb8h1_state_init(&s, b, x, y); + u8g_pb8h1_state_set_pixel(&s, color_index); + +// u8g_pb8h1_state_up(&s); +// if ( s.y > b->p.page_y1 ) +// return; +// if ( s.x > b->width ) +// return; +// u8g_pb8h1_state_set_pixel(&s, color_index); +#else + register uint8_t mask; + u8g_uint_t tmp; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + tmp = b->width; + tmp >>= 3; + tmp *= (uint8_t)y; + ptr += tmp; + + mask = 0x080; + mask >>= x & 7; + x >>= 3; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } +#endif +} + + +void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb8h1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + +void u8g_pb8h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb8h1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); +} + +#ifdef NEW_CODE +static void u8g_pb8h1_Set8PixelState(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + struct u8g_pb_h1_struct s; + uint8_t cnt; + u8g_pb8h1_state_init(&s, b, arg_pixel->x, arg_pixel->y); + cnt = 8; + switch( arg_pixel->dir ) + { + case 0: + do + { + if ( s.x < b->width ) + if ( pixel & 128 ) + u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); + u8g_pb8h1_state_right(&s); + pixel <<= 1; + cnt--; + } while( cnt > 0 && pixel != 0 ); + break; + case 1: + do + { + if ( s.y >= b->p.page_y0 ) + if ( s.y <= b->p.page_y1 ) + if ( pixel & 128 ) + u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); + u8g_pb8h1_state_down(&s); + pixel <<= 1; + cnt--; + } while( cnt > 0 && pixel != 0 ); + break; + case 2: + do + { + if ( s.x < b->width ) + if ( pixel & 128 ) + u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); + u8g_pb8h1_state_left(&s); + pixel <<= 1; + cnt--; + } while( cnt > 0 && pixel != 0 ); + break; + case 3: + do + { + if ( s.y >= b->p.page_y0 ) + if ( s.y <= b->p.page_y1 ) + if ( pixel & 128 ) + u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); + u8g_pb8h1_state_up(&s); + pixel <<= 1; + cnt--; + } while( cnt > 0 && pixel != 0 ); + break; + } +} +#endif + +uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: +#ifdef NEW_CODE + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb8h1_Set8PixelState(pb, (u8g_dev_arg_pixel_t *)arg); +#else + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb8h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); +#endif + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c new file mode 100644 index 000000000..ffc90c2a3 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c @@ -0,0 +1,194 @@ +/* + + u8g_pb8h1f.c + + 8bit height monochrom (1 bit) page buffer + byte has horizontal orientation, same as u8g_pb8h1, but byte is flipped + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; +uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + +void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb_Clear(b); +} + +/* limitation: total buffer must not exceed 256 bytes, 20 nov 2012: extended to >256 bytes */ +void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + /*register uint8_t mask, tmp;*/ + register uint8_t mask; + register u8g_uint_t tmp; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + tmp = b->width >> 3; + tmp *= (uint8_t)y; + ptr += tmp; + + mask = 1; + mask <<= x & 7; + x >>= 3; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } +} + + +void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8h1f_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb8h1f_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + +void u8g_pb8h1f_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb8h1f_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); +} + + +uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb8h1f_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8h1f_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c new file mode 100644 index 000000000..0e37f211f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c @@ -0,0 +1,167 @@ +/* + + u8g_pb8h2.c + + 8bit height 2 bit per pixel page buffer + byte has horizontal orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + +void u8g_pb8h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb_Clear(b); +} + +static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + register uint16_t tmp; + + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + + tmp = b->width; + tmp >>= 2; + tmp *= (uint8_t)y; + ptr += tmp; + + tmp = x; + tmp >>= 2; + ptr += tmp; + + tmp = x; + tmp &= 3; + tmp <<= 1; + mask = 3; + mask <<= tmp; + mask = ~mask; + color_index &= 3; + color_index <<= tmp; + + *ptr &= mask; + *ptr |= color_index; +} + + +void u8g_pb8h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + + +void u8g_pb8h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb8h2_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + + +uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + { + u8g_pb8h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); + } + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_GRAY2BIT; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c new file mode 100644 index 000000000..5753645d1 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c @@ -0,0 +1,179 @@ +/* + + u8g_pb8h8.c + + 8 bits per pixel, horizontal + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +struct _u8g_pb_t +{ + u8g_page_t p; + u8g_uint_t width; + void *buf; +}; +typedef struct _u8g_pb_t u8g_pb_t; + + +uint8_t u8g_index_color_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; +u8g_pb_t u8g_index_color_8h8_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_8h8_buff}; +u8g_dev_t name = { dev_fn, &u8g_index_color_8h8_pb, com_fn } + +*/ + +#include "u8g.h" + +#define WIDTH_BITS 7 +#define WIDTH (1<buf; + uint8_t *end_ptr = ptr; + uint8_t cnt = b->p.page_height; + do + { + end_ptr += b->width; + cnt--; + } while( cnt > 0 ); + do + { + *ptr++ = 0; + } while( ptr != end_ptr ); +} + + +void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb8h8_Clear(b); +} + +static void u8g_pb8h8_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + uint16_t tmp; + uint8_t *ptr = b->buf; + y -= b->p.page_y0; + tmp = y; + tmp *= b->width; + tmp += x; + ptr += tmp; + *ptr = color_index; +} + +void u8g_pb8h8_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8h8_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + + +void u8g_pb8h8_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb8h8_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); +} + + +uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb8h8_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb8h8_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_R3G3B2; + } + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c new file mode 100644 index 000000000..37352fd11 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c @@ -0,0 +1,184 @@ +/* + + u8g_pb8v1.c + + 8bit height monochrom (1 bit) page buffer + byte has vertical orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + + +void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; +void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; +void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; +void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; + +/* Obsolete, usually set by the init of the structure */ +void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb_Clear(b); +} + +void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint8_t *ptr = b->buf; + + y -= b->p.page_y0; + mask = 1; + y &= 0x07; + mask <<= y; + ptr += x; + if ( color_index ) + { + *ptr |= mask; + } + else + { + mask ^=0xff; + *ptr &= mask; + } +} + + +void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + +void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb8v1_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); +} + + +void u8g_pb8v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + u8g_uint_t dx = 0; + u8g_uint_t dy = 0; + + switch( arg_pixel->dir ) + { + case 0: dx++; break; + case 1: dy++; break; + case 2: dx--; break; + case 3: dy--; break; + } + + do + { + if ( pixel & 128 ) + u8g_pb8v1_SetPixel(b, arg_pixel); + arg_pixel->x += dx; + arg_pixel->y += dy; + pixel <<= 1; + } while( pixel != 0 ); + +} + +uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + u8g_pb8v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_BW; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c new file mode 100644 index 000000000..3656511db --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c @@ -0,0 +1,153 @@ +/* + + u8g_pb8v2.c + + 8bit height 2 bit per pixel page buffer + byte has vertical orientation + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" +#include + +void u8g_pb8v2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) +{ + b->buf = buf; + b->width = width; + u8g_pb_Clear(b); +} + +void u8g_pb8v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) +{ + register uint8_t mask; + uint8_t *ptr = b->buf; + y -= b->p.page_y0; + mask = 0x03; + y &= 0x03; + y <<= 1; + mask <<= y; + mask ^=0xff; + color_index &= 3; + color_index <<= y; + ptr += x; + *ptr &= mask; + *ptr |= color_index; +} + + +void u8g_pb8v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) +{ + if ( arg_pixel->y < b->p.page_y0 ) + return; + if ( arg_pixel->y > b->p.page_y1 ) + return; + if ( arg_pixel->x >= b->width ) + return; + u8g_pb8v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); +} + + +void u8g_pb8v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) +{ + register uint8_t pixel = arg_pixel->pixel; + do + { + if ( pixel & 128 ) + { + u8g_pb8v2_SetPixel(b, arg_pixel); + } + switch( arg_pixel->dir ) + { + case 0: arg_pixel->x++; break; + case 1: arg_pixel->y++; break; + case 2: arg_pixel->x--; break; + case 3: arg_pixel->y--; break; + } + pixel <<= 1; + } while( pixel != 0 ); + +} + + + +uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); + switch(msg) + { + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) + { + u8g_pb8v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); + } + break; + case U8G_DEV_MSG_SET_PIXEL: + u8g_pb8v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); + break; + case U8G_DEV_MSG_INIT: + break; + case U8G_DEV_MSG_STOP: + break; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_pb_Clear(pb); + u8g_page_First(&(pb->p)); + break; + case U8G_DEV_MSG_PAGE_NEXT: + if ( u8g_page_Next(&(pb->p)) == 0 ) + return 0; + u8g_pb_Clear(pb); + break; +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); +#endif + case U8G_DEV_MSG_GET_PAGE_BOX: + u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = pb->width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = pb->p.total_height; + break; + case U8G_DEV_MSG_SET_COLOR_INDEX: + break; + case U8G_DEV_MSG_SET_XY_CB: + break; + case U8G_DEV_MSG_GET_MODE: + return U8G_MODE_GRAY2BIT; + } + return 1; +} + + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c new file mode 100644 index 000000000..139a43a24 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c @@ -0,0 +1,232 @@ +/* + + u8g_rect.c + + U8G high level interface for horizontal and vertical things + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +void u8g_draw_hline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) +{ + uint8_t pixel = 0x0ff; + while( w >= 8 ) + { + u8g_Draw8Pixel(u8g, x, y, 0, pixel); + w-=8; + x+=8; + } + if ( w != 0 ) + { + w ^=7; + w++; + pixel <<= w&7; + u8g_Draw8Pixel(u8g, x, y, 0, pixel); + } +} + +void u8g_draw_vline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) +{ + uint8_t pixel = 0x0ff; + while( h >= 8 ) + { + u8g_Draw8Pixel(u8g, x, y, 1, pixel); + h-=8; + y+=8; + } + if ( h != 0 ) + { + h ^=7; + h++; + pixel <<= h&7; + u8g_Draw8Pixel(u8g, x, y, 1, pixel); + } +} + +void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) +{ + if ( u8g_IsBBXIntersection(u8g, x, y, w, 1) == 0 ) + return; + u8g_draw_hline(u8g, x, y, w); +} + +void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) +{ + if ( u8g_IsBBXIntersection(u8g, x, y, 1, w) == 0 ) + return; + u8g_draw_vline(u8g, x, y, w); +} + +/* restrictions: w > 0 && h > 0 */ +void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + u8g_uint_t xtmp = x; + + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + + + u8g_draw_hline(u8g, x, y, w); + u8g_draw_vline(u8g, x, y, h); + x+=w; + x--; + u8g_draw_vline(u8g, x, y, h); + y+=h; + y--; + u8g_draw_hline(u8g, xtmp, y, w); +} + +void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + do + { + u8g_draw_hline(u8g, x, y, w); + y++; + h--; + } while( h != 0 ); +} + +/* restrictions: h > 0 */ +void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) +{ + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + u8g_draw_box(u8g, x, y, w, h); +} + + +void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) +{ + u8g_uint_t xl, yu; + + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + + xl = x; + xl += r; + yu = y; + yu += r; + + { + u8g_uint_t yl, xr; + + xr = x; + xr += w; + xr -= r; + xr -= 1; + + yl = y; + yl += h; + yl -= r; + yl -= 1; + + u8g_draw_circle(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); + u8g_draw_circle(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); + u8g_draw_circle(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); + u8g_draw_circle(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); + } + + { + u8g_uint_t ww, hh; + + ww = w; + ww -= r; + ww -= r; + ww -= 2; + hh = h; + hh -= r; + hh -= r; + hh -= 2; + + xl++; + yu++; + h--; + w--; + u8g_draw_hline(u8g, xl, y, ww); + u8g_draw_hline(u8g, xl, y+h, ww); + u8g_draw_vline(u8g, x, yu, hh); + u8g_draw_vline(u8g, x+w, yu, hh); + } +} + +void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) +{ + u8g_uint_t xl, yu; + u8g_uint_t yl, xr; + + if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) + return; + + xl = x; + xl += r; + yu = y; + yu += r; + + xr = x; + xr += w; + xr -= r; + xr -= 1; + + yl = y; + yl += h; + yl -= r; + yl -= 1; + + u8g_draw_disc(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); + u8g_draw_disc(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); + u8g_draw_disc(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); + u8g_draw_disc(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); + + { + u8g_uint_t ww, hh; + + ww = w; + ww -= r; + ww -= r; + ww -= 2; + hh = h; + hh -= r; + hh -= r; + hh -= 2; + + xl++; + yu++; + h--; + u8g_draw_box(u8g, xl, y, ww, r+1); + u8g_draw_box(u8g, xl, yl, ww, r+1); + //u8g_draw_hline(u8g, xl, y+h, ww); + u8g_draw_box(u8g, x, yu, w, hh); + //u8g_draw_vline(u8g, x+w, yu, hh); + } +} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c new file mode 100644 index 000000000..c581104cb --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c @@ -0,0 +1,398 @@ +/* + + u8g_rot.c + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); +uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); +uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + +u8g_dev_t u8g_dev_rot = { u8g_dev_rot90_fn, NULL, NULL }; + + +void u8g_UndoRotation(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_rot ) + return; + u8g->dev = u8g_dev_rot.dev_mem; + u8g_UpdateDimension(u8g); +} + +void u8g_SetRot90(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_rot ) + { + u8g_dev_rot.dev_mem = u8g->dev; + u8g->dev = &u8g_dev_rot; + } + u8g_dev_rot.dev_fn = u8g_dev_rot90_fn; + u8g_UpdateDimension(u8g); +} + +void u8g_SetRot180(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_rot ) + { + u8g_dev_rot.dev_mem = u8g->dev; + u8g->dev = &u8g_dev_rot; + } + u8g_dev_rot.dev_fn = u8g_dev_rot180_fn; + u8g_UpdateDimension(u8g); +} + +void u8g_SetRot270(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_rot ) + { + u8g_dev_rot.dev_mem = u8g->dev; + u8g->dev = &u8g_dev_rot; + } + u8g_dev_rot.dev_fn = u8g_dev_rot270_fn; + u8g_UpdateDimension(u8g); +} + +uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); + switch(msg) + { + default: + /* + case U8G_DEV_MSG_INIT: + case U8G_DEV_MSG_STOP: + case U8G_DEV_MSG_PAGE_FIRST: + case U8G_DEV_MSG_PAGE_NEXT: + case U8G_DEV_MSG_SET_COLOR_INDEX: + case U8G_DEV_MSG_SET_XY_CB: + */ + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + { + u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; + u8g_uint_t x, y, tmp; + + /* transform the reference point */ + y = bbx->x; + x = u8g->height; + /* x = u8g_GetWidthLL(u8g, rotation_chain); */ + x -= bbx->y; + x--; + + /* adjust point to be the uppler left corner again */ + x -= bbx->h; + x++; + + /* swap box dimensions */ + tmp = bbx->w; + bbx->w = bbx->h; + bbx->h = tmp; + + /* store x,y */ + bbx->x = x; + bbx->y = y; + } + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ + case U8G_DEV_MSG_GET_PAGE_BOX: + /* get page size from next device in the chain */ + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + { + u8g_box_t new_box; + //new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; + //new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; + + new_box.x0 = ((u8g_box_t *)arg)->y0; + new_box.x1 = ((u8g_box_t *)arg)->y1; + new_box.y0 = ((u8g_box_t *)arg)->x0; + new_box.y1 = ((u8g_box_t *)arg)->x1; + *((u8g_box_t *)arg) = new_box; + //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + } + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); + break; + case U8G_DEV_MSG_SET_PIXEL: + { + u8g_uint_t x, y; + y = ((u8g_dev_arg_pixel_t *)arg)->x; + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->y; + x--; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + case U8G_DEV_MSG_SET_8PIXEL: + { + u8g_uint_t x, y; + //uint16_t x,y; + y = ((u8g_dev_arg_pixel_t *)arg)->x; + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->y; + x--; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + ((u8g_dev_arg_pixel_t *)arg)->dir+=1; + ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + } + return 1; +} + +uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); + switch(msg) + { + default: + /* + case U8G_DEV_MSG_INIT: + case U8G_DEV_MSG_STOP: + case U8G_DEV_MSG_PAGE_FIRST: + case U8G_DEV_MSG_PAGE_NEXT: + case U8G_DEV_MSG_SET_COLOR_INDEX: + case U8G_DEV_MSG_SET_XY_CB: + */ + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + { + u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; + u8g_uint_t x, y; + + /* transform the reference point */ + //y = u8g_GetHeightLL(u8g, rotation_chain); + y = u8g->height; + y -= bbx->y; + y--; + + //x = u8g_GetWidthLL(u8g, rotation_chain); + x = u8g->width; + x -= bbx->x; + x--; + + /* adjust point to be the uppler left corner again */ + y -= bbx->h; + y++; + + x -= bbx->w; + x++; + + /* store x,y */ + bbx->x = x; + bbx->y = y; + } + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ + case U8G_DEV_MSG_GET_PAGE_BOX: + /* get page size from next device in the chain */ + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + { + u8g_box_t new_box; + + new_box.x0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; + new_box.x1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; + new_box.y0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; + new_box.y1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; + *((u8g_box_t *)arg) = new_box; + //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + } + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g,rotation_chain); + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, rotation_chain); + break; + case U8G_DEV_MSG_SET_PIXEL: + { + u8g_uint_t x, y; + + y = u8g_GetHeightLL(u8g, rotation_chain); + y -= ((u8g_dev_arg_pixel_t *)arg)->y; + y--; + + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->x; + x--; + + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + case U8G_DEV_MSG_SET_8PIXEL: + { + u8g_uint_t x, y; + + y = u8g_GetHeightLL(u8g, rotation_chain); + y -= ((u8g_dev_arg_pixel_t *)arg)->y; + y--; + + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->x; + x--; + + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + ((u8g_dev_arg_pixel_t *)arg)->dir+=2; + ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + } + return 1; +} + +uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); + switch(msg) + { + default: + /* + case U8G_DEV_MSG_INIT: + case U8G_DEV_MSG_STOP: + case U8G_DEV_MSG_PAGE_FIRST: + case U8G_DEV_MSG_PAGE_NEXT: + case U8G_DEV_MSG_SET_COLOR_INDEX: + case U8G_DEV_MSG_SET_XY_CB: + */ + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION + case U8G_DEV_MSG_IS_BBX_INTERSECTION: + { + u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; + u8g_uint_t x, y, tmp; + + /* transform the reference point */ + x = bbx->y; + + y = u8g->width; + /* y = u8g_GetHeightLL(u8g, rotation_chain); */ + y -= bbx->x; + y--; + + /* adjust point to be the uppler left corner again */ + y -= bbx->w; + y++; + + /* swap box dimensions */ + tmp = bbx->w; + bbx->w = bbx->h; + bbx->h = tmp; + + /* store x,y */ + bbx->x = x; + bbx->y = y; + } + return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); +#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ + case U8G_DEV_MSG_GET_PAGE_BOX: + /* get page size from next device in the chain */ + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + { + u8g_box_t new_box; + + new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; + new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; + new_box.y0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; + new_box.y1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; + *((u8g_box_t *)arg) = new_box; + //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); + } + break; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); + break; + case U8G_DEV_MSG_SET_PIXEL: + { + u8g_uint_t x, y; + x = ((u8g_dev_arg_pixel_t *)arg)->y; + + y = u8g_GetHeightLL(u8g, rotation_chain); + y -= ((u8g_dev_arg_pixel_t *)arg)->x; + y--; + + /* + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->y; + x--; + */ + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + case U8G_DEV_MSG_SET_8PIXEL: + { + u8g_uint_t x, y; + x = ((u8g_dev_arg_pixel_t *)arg)->y; + + y = u8g_GetHeightLL(u8g, rotation_chain); + y -= ((u8g_dev_arg_pixel_t *)arg)->x; + y--; + + /* + x = u8g_GetWidthLL(u8g, rotation_chain); + x -= ((u8g_dev_arg_pixel_t *)arg)->y; + x--; + */ + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + ((u8g_dev_arg_pixel_t *)arg)->dir+=3; + ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; + } + u8g_call_dev_fn(u8g, rotation_chain, msg, arg); + break; + } + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c new file mode 100644 index 000000000..e5b4b634f --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c @@ -0,0 +1,188 @@ +/* + + u8g_scale.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Scale screen by some constant factors. Usefull for making bigger fonts wiht less + memory consumption + +*/ + +#include "u8g.h" + +uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); + + +u8g_dev_t u8g_dev_scale = { u8g_dev_scale_2x2_fn, NULL, NULL }; + +void u8g_UndoScale(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_scale ) + return; + u8g->dev = u8g_dev_scale.dev_mem; + u8g_UpdateDimension(u8g); +} + +void u8g_SetScale2x2(u8g_t *u8g) +{ + if ( u8g->dev != &u8g_dev_scale ) + { + u8g_dev_scale.dev_mem = u8g->dev; + u8g->dev = &u8g_dev_scale; + } + u8g_dev_scale.dev_fn = u8g_dev_scale_2x2_fn; + u8g_UpdateDimension(u8g); +} + + +uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + u8g_dev_t *chain = (u8g_dev_t *)(dev->dev_mem); + uint8_t pixel; + uint16_t scaled_pixel; + uint8_t i; + uint8_t dir; + u8g_uint_t x, y, xx,yy; + + switch(msg) + { + default: + return u8g_call_dev_fn(u8g, chain, msg, arg); + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, chain) / 2; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, chain) / 2; + break; + case U8G_DEV_MSG_GET_PAGE_BOX: + /* get page size from next device in the chain */ + u8g_call_dev_fn(u8g, chain, msg, arg); + ((u8g_box_t *)arg)->x0 /= 2; + ((u8g_box_t *)arg)->x1 /= 2; + ((u8g_box_t *)arg)->y0 /= 2; + ((u8g_box_t *)arg)->y1 /= 2; + return 1; + case U8G_DEV_MSG_SET_PIXEL: + x = ((u8g_dev_arg_pixel_t *)arg)->x; + x *= 2; + y = ((u8g_dev_arg_pixel_t *)arg)->y; + y *= 2; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + u8g_call_dev_fn(u8g, chain, msg, arg); + x++; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + u8g_call_dev_fn(u8g, chain, msg, arg); + y++; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + u8g_call_dev_fn(u8g, chain, msg, arg); + x--; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + u8g_call_dev_fn(u8g, chain, msg, arg); + break; + case U8G_DEV_MSG_SET_8PIXEL: + pixel = ((u8g_dev_arg_pixel_t *)arg)->pixel; + dir = ((u8g_dev_arg_pixel_t *)arg)->dir; + scaled_pixel = 0; + for( i = 0; i < 8; i++ ) + { + scaled_pixel<<=2; + if ( pixel & 128 ) + { + scaled_pixel |= 3; + } + pixel<<=1; + } + x = ((u8g_dev_arg_pixel_t *)arg)->x; + x *= 2; + xx = x; + y = ((u8g_dev_arg_pixel_t *)arg)->y; + y *= 2; + yy = y; + if ( ((u8g_dev_arg_pixel_t *)arg)->dir & 1 ) + { + xx++; + } + else + { + yy++; + } + + ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel>>8; + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + ((u8g_dev_arg_pixel_t *)arg)->dir = dir; + u8g_call_dev_fn(u8g, chain, msg, arg); + + + ((u8g_dev_arg_pixel_t *)arg)->x = xx; + ((u8g_dev_arg_pixel_t *)arg)->y = yy; + ((u8g_dev_arg_pixel_t *)arg)->dir = dir; + u8g_call_dev_fn(u8g, chain, msg, arg); + + ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel&255; + //((u8g_dev_arg_pixel_t *)arg)->pixel = 0x00; + switch(dir) + { + case 0: + x+=8; + xx+=8; + break; + case 1: + y+=8; + yy+=8; + break; + case 2: + x-=8; + xx-=8; + break; + case 3: + y-=8; + yy-=8; + break; + } + ((u8g_dev_arg_pixel_t *)arg)->x = x; + ((u8g_dev_arg_pixel_t *)arg)->y = y; + ((u8g_dev_arg_pixel_t *)arg)->dir = dir; + u8g_call_dev_fn(u8g, chain, msg, arg); + + ((u8g_dev_arg_pixel_t *)arg)->x = xx; + ((u8g_dev_arg_pixel_t *)arg)->y = yy; + ((u8g_dev_arg_pixel_t *)arg)->dir = dir; + u8g_call_dev_fn(u8g, chain, msg, arg); + break; + } + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c new file mode 100644 index 000000000..3ae3eee4a --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c @@ -0,0 +1,102 @@ +/* + + u8g_state.c + + backup and restore hardware state + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + state callback: backup env U8G_STATE_MSG_BACKUP_ENV + device callback: DEV_MSG_INIT + state callback: backup u8g U8G_STATE_MSG_BACKUP_U8G + state callback: restore env U8G_STATE_MSG_RESTORE_ENV + + state callback: backup env U8G_STATE_MSG_BACKUP_ENV + state callback: retore u8g U8G_STATE_MSG_RESTORE_U8G + DEV_MSG_PAGE_FIRST or DEV_MSG_PAGE_NEXT + state callback: restore env U8G_STATE_MSG_RESTORE_ENV + +*/ + +#include +#include "u8g.h" + +void u8g_state_dummy_cb(uint8_t msg) +{ + /* the dummy procedure does nothing */ +} + +void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb) +{ + u8g->state_cb = backup_cb; + /* in most cases the init message was already sent, so this will backup the */ + /* current u8g state */ + backup_cb(U8G_STATE_MSG_BACKUP_U8G); +} + + +/*===============================================================*/ +/* AVR */ + +#if defined(__AVR__) +#define U8G_ATMEGA_HW_SPI + +/* remove the definition for attiny */ +#if __AVR_ARCH__ == 2 +#undef U8G_ATMEGA_HW_SPI +#endif +#if __AVR_ARCH__ == 25 +#undef U8G_ATMEGA_HW_SPI +#endif +#endif + +#if defined(U8G_ATMEGA_HW_SPI) +#include +static uint8_t u8g_state_avr_spi_memory[2]; + +void u8g_backup_avr_spi(uint8_t msg) +{ + if ( U8G_STATE_MSG_IS_BACKUP(msg) ) + { + u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)] = SPCR; + } + else + { + uint8_t tmp = SREG; + cli(); + SPCR = 0; + SPCR = u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)]; + SREG = tmp; + } +} + +#endif + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c new file mode 100644 index 000000000..f1d1803cf --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c @@ -0,0 +1,68 @@ +/* + + u8g_u16toa.c + + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "u8g.h" + +const char *u8g_u16toap(char * dest, uint16_t v) +{ + uint8_t pos; + uint8_t d; + uint16_t c; + c = 10000; + for( pos = 0; pos < 5; pos++ ) + { + d = '0'; + while( v >= c ) + { + v -= c; + d++; + } + dest[pos] = d; + c /= 10; + } + dest[5] = '\0'; + return dest; +} + +/* v = value, d = number of digits */ +const char *u8g_u16toa(uint16_t v, uint8_t d) +{ + static char buf[6]; + d = 5-d; + return u8g_u16toap(buf, v) + d; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c new file mode 100644 index 000000000..f3a2c06fa --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c @@ -0,0 +1,68 @@ +/* + + u8g_u8toa.c + + + Universal 8bit Graphics Library + + Copyright (c) 2011, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + + +#include "u8g.h" + +static const unsigned char u8g_u8toa_tab[3] = { 100, 10, 1 } ; +const char *u8g_u8toap(char * dest, uint8_t v) +{ + uint8_t pos; + uint8_t d; + uint8_t c; + for( pos = 0; pos < 3; pos++ ) + { + d = '0'; + c = *(u8g_u8toa_tab+pos); + while( v >= c ) + { + v -= c; + d++; + } + dest[pos] = d; + } + dest[3] = '\0'; + return dest; +} + +/* v = value, d = number of digits */ +const char *u8g_u8toa(uint8_t v, uint8_t d) +{ + static char buf[4]; + d = 3-d; + return u8g_u8toap(buf, v) + d; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c new file mode 100644 index 000000000..8000506b4 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c @@ -0,0 +1,145 @@ +/* + + u8g_virtual_screen.c + + Universal 8bit Graphics Library + + Copyright (c) 2012, olikraus@gmail.com + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +#include "u8g.h" + +struct _u8g_vs_t +{ + u8g_uint_t x; + u8g_uint_t y; + u8g_t *u8g; +}; +typedef struct _u8g_vs_t u8g_vs_t; + +#define U8g_VS_MAX 4 +uint8_t u8g_vs_cnt = 0; +u8g_vs_t u8g_vs_list[U8g_VS_MAX]; +uint8_t u8g_vs_current; +u8g_uint_t u8g_vs_width; +u8g_uint_t u8g_vs_height; + +uint8_t u8g_dev_vs_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) +{ + switch(msg) + { + default: + { + uint8_t i; + for( i = 0; i < u8g_vs_cnt; i++ ) + { + u8g_call_dev_fn(u8g_vs_list[i].u8g, u8g_vs_list[i].u8g->dev, msg, arg); + } + } + return 1; + case U8G_DEV_MSG_PAGE_FIRST: + u8g_vs_current = 0; + if ( u8g_vs_cnt != 0 ) + return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); + return 0; + case U8G_DEV_MSG_PAGE_NEXT: + { + uint8_t ret = 0; + if ( u8g_vs_cnt != 0 ) + ret = u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); + if ( ret != 0 ) + return ret; + u8g_vs_current++; /* next device */ + if ( u8g_vs_current >= u8g_vs_cnt ) /* reached end? */ + return 0; + return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, U8G_DEV_MSG_PAGE_FIRST, arg); + } + return 0; + case U8G_DEV_MSG_GET_WIDTH: + *((u8g_uint_t *)arg) = u8g_vs_width; + break; + case U8G_DEV_MSG_GET_HEIGHT: + *((u8g_uint_t *)arg) = u8g_vs_height; + break; + case U8G_DEV_MSG_GET_PAGE_BOX: + if ( u8g_vs_current < u8g_vs_cnt ) + { + u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); + ((u8g_box_t *)arg)->x0 += u8g_vs_list[u8g_vs_current].x; + ((u8g_box_t *)arg)->x1 += u8g_vs_list[u8g_vs_current].x; + ((u8g_box_t *)arg)->y0 += u8g_vs_list[u8g_vs_current].y; + ((u8g_box_t *)arg)->y1 += u8g_vs_list[u8g_vs_current].y; + } + else + { + ((u8g_box_t *)arg)->x0 = 0; + ((u8g_box_t *)arg)->x1 = 0; + ((u8g_box_t *)arg)->y0 = 0; + ((u8g_box_t *)arg)->y1 = 0; + } + return 1; + case U8G_DEV_MSG_SET_PIXEL: + case U8G_DEV_MSG_SET_8PIXEL: + if ( u8g_vs_current < u8g_vs_cnt ) + { + ((u8g_dev_arg_pixel_t *)arg)->x -= u8g_vs_list[u8g_vs_current].x; + ((u8g_dev_arg_pixel_t *)arg)->y -= u8g_vs_list[u8g_vs_current].y; + return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); + } + break; + } + return 1; +} + + + +u8g_dev_t u8g_dev_vs = { u8g_dev_vs_fn, NULL, NULL }; + +void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height) +{ + if ( vs_u8g->dev != &u8g_dev_vs ) + return; /* abort if there is no a virtual screen device */ + u8g_vs_width = width; + u8g_vs_height = height; +} + +uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g) +{ + if ( vs_u8g->dev != &u8g_dev_vs ) + return 0; /* abort if there is no a virtual screen device */ + if ( u8g_vs_cnt >= U8g_VS_MAX ) + return 0; /* maximum number of child u8g's reached */ + u8g_vs_list[u8g_vs_cnt].u8g = child_u8g; + u8g_vs_list[u8g_vs_cnt].x = x; + u8g_vs_list[u8g_vs_cnt].y = y; + u8g_vs_cnt++; + return 1; +} + diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt new file mode 100644 index 000000000..639448c55 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt @@ -0,0 +1,9 @@ + +# Marlin AVR Core and platform. +# ------------------------------ + +# For more info: +# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification + +name=Marlin AVR Boards +version=1.5.6 diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h new file mode 100644 index 000000000..f49a23fc0 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h @@ -0,0 +1,411 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 82 +#define NUM_ANALOG_INPUTS 16 +#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) +#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) + +static const uint8_t SS = 53; +static const uint8_t MOSI = 51; +static const uint8_t MISO = 50; +static const uint8_t SCK = 52; + +static const uint8_t SDA = 20; +static const uint8_t SCL = 21; +static const uint8_t LED_BUILTIN = 13; + +static const uint8_t A0 = 54; +static const uint8_t A1 = 55; +static const uint8_t A2 = 56; +static const uint8_t A3 = 57; +static const uint8_t A4 = 58; +static const uint8_t A5 = 59; +static const uint8_t A6 = 60; +static const uint8_t A7 = 61; +static const uint8_t A8 = 62; +static const uint8_t A9 = 63; +static const uint8_t A10 = 64; +static const uint8_t A11 = 65; +static const uint8_t A12 = 66; +static const uint8_t A13 = 67; +static const uint8_t A14 = 68; +static const uint8_t A15 = 69; + +// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) +// Only pins available for RECEIVE (TRANSMIT can be on any pin): +// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) +// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 + +#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ + (((p) >= 50) && ((p) <= 53)) || \ + (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ + 0 ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ + ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ + ((uint8_t *)0) ) ) + +#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ + ( ((p) == 50) ? 3 : \ + ( ((p) == 51) ? 2 : \ + ( ((p) == 52) ? 1 : \ + ( ((p) == 53) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ + 0 ) ) ) ) ) ) + +#ifdef ARDUINO_MAIN + +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, + (uint16_t) &DDRG, + (uint16_t) &DDRH, + NOT_A_PORT, + (uint16_t) &DDRJ, + (uint16_t) &DDRK, + (uint16_t) &DDRL, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, + (uint16_t) &PORTG, + (uint16_t) &PORTH, + NOT_A_PORT, + (uint16_t) &PORTJ, + (uint16_t) &PORTK, + (uint16_t) &PORTL, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PIN, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, + (uint16_t) &PING, + (uint16_t) &PINH, + NOT_A_PIN, + (uint16_t) &PINJ, + (uint16_t) &PINK, + (uint16_t) &PINL, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + // PORTLIST + // ------------------------------------------- + PE , // PE 0 ** 0 ** USART0_RX + PE , // PE 1 ** 1 ** USART0_TX + PE , // PE 4 ** 2 ** PWM2 + PE , // PE 5 ** 3 ** PWM3 + PG , // PG 5 ** 4 ** PWM4 + PE , // PE 3 ** 5 ** PWM5 + PH , // PH 3 ** 6 ** PWM6 + PH , // PH 4 ** 7 ** PWM7 + PH , // PH 5 ** 8 ** PWM8 + PH , // PH 6 ** 9 ** PWM9 + PB , // PB 4 ** 10 ** PWM10 + PB , // PB 5 ** 11 ** PWM11 + PB , // PB 6 ** 12 ** PWM12 + PB , // PB 7 ** 13 ** PWM13 + PJ , // PJ 1 ** 14 ** USART3_TX + PJ , // PJ 0 ** 15 ** USART3_RX + PH , // PH 1 ** 16 ** USART2_TX + PH , // PH 0 ** 17 ** USART2_RX + PD , // PD 3 ** 18 ** USART1_TX + PD , // PD 2 ** 19 ** USART1_RX + PD , // PD 1 ** 20 ** I2C_SDA + PD , // PD 0 ** 21 ** I2C_SCL + PA , // PA 0 ** 22 ** D22 + PA , // PA 1 ** 23 ** D23 + PA , // PA 2 ** 24 ** D24 + PA , // PA 3 ** 25 ** D25 + PA , // PA 4 ** 26 ** D26 + PA , // PA 5 ** 27 ** D27 + PA , // PA 6 ** 28 ** D28 + PA , // PA 7 ** 29 ** D29 + PC , // PC 7 ** 30 ** D30 + PC , // PC 6 ** 31 ** D31 + PC , // PC 5 ** 32 ** D32 + PC , // PC 4 ** 33 ** D33 + PC , // PC 3 ** 34 ** D34 + PC , // PC 2 ** 35 ** D35 + PC , // PC 1 ** 36 ** D36 + PC , // PC 0 ** 37 ** D37 + PD , // PD 7 ** 38 ** D38 + PG , // PG 2 ** 39 ** D39 + PG , // PG 1 ** 40 ** D40 + PG , // PG 0 ** 41 ** D41 + PL , // PL 7 ** 42 ** D42 + PL , // PL 6 ** 43 ** D43 + PL , // PL 5 ** 44 ** D44 + PL , // PL 4 ** 45 ** D45 + PL , // PL 3 ** 46 ** D46 + PL , // PL 2 ** 47 ** D47 + PL , // PL 1 ** 48 ** D48 + PL , // PL 0 ** 49 ** D49 + PB , // PB 3 ** 50 ** SPI_MISO + PB , // PB 2 ** 51 ** SPI_MOSI + PB , // PB 1 ** 52 ** SPI_SCK + PB , // PB 0 ** 53 ** SPI_SS + PF , // PF 0 ** 54 ** A0 + PF , // PF 1 ** 55 ** A1 + PF , // PF 2 ** 56 ** A2 + PF , // PF 3 ** 57 ** A3 + PF , // PF 4 ** 58 ** A4 + PF , // PF 5 ** 59 ** A5 + PF , // PF 6 ** 60 ** A6 + PF , // PF 7 ** 61 ** A7 + PK , // PK 0 ** 62 ** A8 + PK , // PK 1 ** 63 ** A9 + PK , // PK 2 ** 64 ** A10 + PK , // PK 3 ** 65 ** A11 + PK , // PK 4 ** 66 ** A12 + PK , // PK 5 ** 67 ** A13 + PK , // PK 6 ** 68 ** A14 + PK , // PK 7 ** 69 ** A15 + PG , // PG 4 ** 70 ** D70 + PG , // PG 3 ** 71 ** D71 + PJ , // PJ 2 ** 72 ** D72 + PJ , // PJ 3 ** 73 ** D73 + PJ , // PJ 7 ** 74 ** D74 + PJ , // PJ 4 ** 75 ** D75 + PJ , // PJ 5 ** 76 ** D76 + PJ , // PJ 6 ** 77 ** D77 + PE , // PE 2 ** 78 ** D78 + PE , // PE 6 ** 79 ** D79 + PE , // PE 7 ** 80 ** D80 + PD , // PD 4 ** 81 ** D81 + PD , // PD 5 ** 82 ** D82 + PD , // PD 6 ** 83 ** D83 + PH , // PH 2 ** 84 ** D84 + PH , // PH 7 ** 85 ** D85 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + // PIN IN PORT + // ------------------------------------------- + _BV( 0 ) , // PE 0 ** 0 ** USART0_RX + _BV( 1 ) , // PE 1 ** 1 ** USART0_TX + _BV( 4 ) , // PE 4 ** 2 ** PWM2 + _BV( 5 ) , // PE 5 ** 3 ** PWM3 + _BV( 5 ) , // PG 5 ** 4 ** PWM4 + _BV( 3 ) , // PE 3 ** 5 ** PWM5 + _BV( 3 ) , // PH 3 ** 6 ** PWM6 + _BV( 4 ) , // PH 4 ** 7 ** PWM7 + _BV( 5 ) , // PH 5 ** 8 ** PWM8 + _BV( 6 ) , // PH 6 ** 9 ** PWM9 + _BV( 4 ) , // PB 4 ** 10 ** PWM10 + _BV( 5 ) , // PB 5 ** 11 ** PWM11 + _BV( 6 ) , // PB 6 ** 12 ** PWM12 + _BV( 7 ) , // PB 7 ** 13 ** PWM13 + _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX + _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX + _BV( 1 ) , // PH 1 ** 16 ** USART2_TX + _BV( 0 ) , // PH 0 ** 17 ** USART2_RX + _BV( 3 ) , // PD 3 ** 18 ** USART1_TX + _BV( 2 ) , // PD 2 ** 19 ** USART1_RX + _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA + _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL + _BV( 0 ) , // PA 0 ** 22 ** D22 + _BV( 1 ) , // PA 1 ** 23 ** D23 + _BV( 2 ) , // PA 2 ** 24 ** D24 + _BV( 3 ) , // PA 3 ** 25 ** D25 + _BV( 4 ) , // PA 4 ** 26 ** D26 + _BV( 5 ) , // PA 5 ** 27 ** D27 + _BV( 6 ) , // PA 6 ** 28 ** D28 + _BV( 7 ) , // PA 7 ** 29 ** D29 + _BV( 7 ) , // PC 7 ** 30 ** D30 + _BV( 6 ) , // PC 6 ** 31 ** D31 + _BV( 5 ) , // PC 5 ** 32 ** D32 + _BV( 4 ) , // PC 4 ** 33 ** D33 + _BV( 3 ) , // PC 3 ** 34 ** D34 + _BV( 2 ) , // PC 2 ** 35 ** D35 + _BV( 1 ) , // PC 1 ** 36 ** D36 + _BV( 0 ) , // PC 0 ** 37 ** D37 + _BV( 7 ) , // PD 7 ** 38 ** D38 + _BV( 2 ) , // PG 2 ** 39 ** D39 + _BV( 1 ) , // PG 1 ** 40 ** D40 + _BV( 0 ) , // PG 0 ** 41 ** D41 + _BV( 7 ) , // PL 7 ** 42 ** D42 + _BV( 6 ) , // PL 6 ** 43 ** D43 + _BV( 5 ) , // PL 5 ** 44 ** D44 + _BV( 4 ) , // PL 4 ** 45 ** D45 + _BV( 3 ) , // PL 3 ** 46 ** D46 + _BV( 2 ) , // PL 2 ** 47 ** D47 + _BV( 1 ) , // PL 1 ** 48 ** D48 + _BV( 0 ) , // PL 0 ** 49 ** D49 + _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO + _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI + _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK + _BV( 0 ) , // PB 0 ** 53 ** SPI_SS + _BV( 0 ) , // PF 0 ** 54 ** A0 + _BV( 1 ) , // PF 1 ** 55 ** A1 + _BV( 2 ) , // PF 2 ** 56 ** A2 + _BV( 3 ) , // PF 3 ** 57 ** A3 + _BV( 4 ) , // PF 4 ** 58 ** A4 + _BV( 5 ) , // PF 5 ** 59 ** A5 + _BV( 6 ) , // PF 6 ** 60 ** A6 + _BV( 7 ) , // PF 7 ** 61 ** A7 + _BV( 0 ) , // PK 0 ** 62 ** A8 + _BV( 1 ) , // PK 1 ** 63 ** A9 + _BV( 2 ) , // PK 2 ** 64 ** A10 + _BV( 3 ) , // PK 3 ** 65 ** A11 + _BV( 4 ) , // PK 4 ** 66 ** A12 + _BV( 5 ) , // PK 5 ** 67 ** A13 + _BV( 6 ) , // PK 6 ** 68 ** A14 + _BV( 7 ) , // PK 7 ** 69 ** A15 + _BV( 4 ) , // PG 4 ** 70 ** D70 + _BV( 3 ) , // PG 3 ** 71 ** D71 + _BV( 2 ) , // PJ 2 ** 72 ** D72 + _BV( 3 ) , // PJ 3 ** 73 ** D73 + _BV( 7 ) , // PJ 7 ** 74 ** D74 + _BV( 4 ) , // PJ 4 ** 75 ** D75 + _BV( 5 ) , // PJ 5 ** 76 ** D76 + _BV( 6 ) , // PJ 6 ** 77 ** D77 + _BV( 2 ) , // PE 2 ** 78 ** D78 + _BV( 6 ) , // PE 6 ** 79 ** D79 + _BV( 7 ) , // PE 7 ** 80 ** D80 + _BV( 4 ) , // PD 4 ** 81 ** D81 + _BV( 5 ) , // PD 5 ** 82 ** D82 + _BV( 6 ) , // PD 6 ** 83 ** D83 + _BV( 2 ) , // PH 2 ** 84 ** D84 + _BV( 7 ) , // PH 7 ** 85 ** D85 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + // TIMERS + // ------------------------------------------- + NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX + NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX + TIMER3B , // PE 4 ** 2 ** PWM2 + TIMER3C , // PE 5 ** 3 ** PWM3 + TIMER0B , // PG 5 ** 4 ** PWM4 + TIMER3A , // PE 3 ** 5 ** PWM5 + TIMER4A , // PH 3 ** 6 ** PWM6 + TIMER4B , // PH 4 ** 7 ** PWM7 + TIMER4C , // PH 5 ** 8 ** PWM8 + TIMER2B , // PH 6 ** 9 ** PWM9 + TIMER2A , // PB 4 ** 10 ** PWM10 + TIMER1A , // PB 5 ** 11 ** PWM11 + TIMER1B , // PB 6 ** 12 ** PWM12 + TIMER0A , // PB 7 ** 13 ** PWM13 + NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX + NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX + NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX + NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX + NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX + NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX + NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA + NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL + NOT_ON_TIMER , // PA 0 ** 22 ** D22 + NOT_ON_TIMER , // PA 1 ** 23 ** D23 + NOT_ON_TIMER , // PA 2 ** 24 ** D24 + NOT_ON_TIMER , // PA 3 ** 25 ** D25 + NOT_ON_TIMER , // PA 4 ** 26 ** D26 + NOT_ON_TIMER , // PA 5 ** 27 ** D27 + NOT_ON_TIMER , // PA 6 ** 28 ** D28 + NOT_ON_TIMER , // PA 7 ** 29 ** D29 + NOT_ON_TIMER , // PC 7 ** 30 ** D30 + NOT_ON_TIMER , // PC 6 ** 31 ** D31 + NOT_ON_TIMER , // PC 5 ** 32 ** D32 + NOT_ON_TIMER , // PC 4 ** 33 ** D33 + NOT_ON_TIMER , // PC 3 ** 34 ** D34 + NOT_ON_TIMER , // PC 2 ** 35 ** D35 + NOT_ON_TIMER , // PC 1 ** 36 ** D36 + NOT_ON_TIMER , // PC 0 ** 37 ** D37 + NOT_ON_TIMER , // PD 7 ** 38 ** D38 + NOT_ON_TIMER , // PG 2 ** 39 ** D39 + NOT_ON_TIMER , // PG 1 ** 40 ** D40 + NOT_ON_TIMER , // PG 0 ** 41 ** D41 + NOT_ON_TIMER , // PL 7 ** 42 ** D42 + NOT_ON_TIMER , // PL 6 ** 43 ** D43 + TIMER5C , // PL 5 ** 44 ** D44 + TIMER5B , // PL 4 ** 45 ** D45 + TIMER5A , // PL 3 ** 46 ** D46 + NOT_ON_TIMER , // PL 2 ** 47 ** D47 + NOT_ON_TIMER , // PL 1 ** 48 ** D48 + NOT_ON_TIMER , // PL 0 ** 49 ** D49 + NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO + NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI + NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK + NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS + NOT_ON_TIMER , // PF 0 ** 54 ** A0 + NOT_ON_TIMER , // PF 1 ** 55 ** A1 + NOT_ON_TIMER , // PF 2 ** 56 ** A2 + NOT_ON_TIMER , // PF 3 ** 57 ** A3 + NOT_ON_TIMER , // PF 4 ** 58 ** A4 + NOT_ON_TIMER , // PF 5 ** 59 ** A5 + NOT_ON_TIMER , // PF 6 ** 60 ** A6 + NOT_ON_TIMER , // PF 7 ** 61 ** A7 + NOT_ON_TIMER , // PK 0 ** 62 ** A8 + NOT_ON_TIMER , // PK 1 ** 63 ** A9 + NOT_ON_TIMER , // PK 2 ** 64 ** A10 + NOT_ON_TIMER , // PK 3 ** 65 ** A11 + NOT_ON_TIMER , // PK 4 ** 66 ** A12 + NOT_ON_TIMER , // PK 5 ** 67 ** A13 + NOT_ON_TIMER , // PK 6 ** 68 ** A14 + NOT_ON_TIMER , // PK 7 ** 69 ** A15 + NOT_ON_TIMER , // PG 4 ** 70 ** D70 + NOT_ON_TIMER , // PG 3 ** 71 ** D71 + NOT_ON_TIMER , // PJ 2 ** 72 ** D72 + NOT_ON_TIMER , // PJ 3 ** 73 ** D73 + NOT_ON_TIMER , // PJ 7 ** 74 ** D74 + NOT_ON_TIMER , // PJ 4 ** 75 ** D75 + NOT_ON_TIMER , // PJ 5 ** 76 ** D76 + NOT_ON_TIMER , // PJ 6 ** 77 ** D77 + NOT_ON_TIMER , // PE 2 ** 78 ** D78 + NOT_ON_TIMER , // PE 6 ** 79 ** D79 + NOT_ON_TIMER , // PE 7 ** 80 ** D80 + NOT_ON_TIMER , // PD 4 ** 81 ** D81 + NOT_ON_TIMER , // PD 5 ** 82 ** D82 + NOT_ON_TIMER , // PD 6 ** 83 ** D83 + NOT_ON_TIMER , // PH 2 ** 84 ** D84 + NOT_ON_TIMER , // PH 7 ** 85 ** D85 +}; + +#endif + +#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h new file mode 100644 index 000000000..499952dc9 --- /dev/null +++ b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h @@ -0,0 +1,285 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ + + Changelog + ----------- + 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P + 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NOT_A_PIN 0 +#define NOT_A_PORT 0 + +#define NOT_ON_TIMER 0 +#define TIMER0A 1 +#define TIMER0B 2 +#define TIMER1A 3 +#define TIMER1B 4 +#define TIMER2 5 +#define TIMER2A 6 +#define TIMER2B 7 + +#define TIMER3A 8 +#define TIMER3B 9 +#define TIMER3C 10 +#define TIMER4A 11 +#define TIMER4B 12 +#define TIMER4C 13 +#define TIMER5A 14 +#define TIMER5B 15 +#define TIMER5C 16 + +const static uint8_t SS = 4; +const static uint8_t MOSI = 5; +const static uint8_t MISO = 6; +const static uint8_t SCK = 7; + +static const uint8_t SDA = 17; +static const uint8_t SCL = 16; +static const uint8_t LED_BUILTIN = 13; + +static const uint8_t A0 = 31; +static const uint8_t A1 = 30; +static const uint8_t A2 = 29; +static const uint8_t A3 = 28; +static const uint8_t A4 = 27; +static const uint8_t A5 = 26; +static const uint8_t A6 = 25; +static const uint8_t A7 = 24; + +// On the ATmega1280, the addresses of some of the port registers are +// greater than 255, so we can't store them in uint8_t's. +// extern const uint16_t PROGMEM port_to_mode_PGM[]; +// extern const uint16_t PROGMEM port_to_input_PGM[]; +// extern const uint16_t PROGMEM port_to_output_PGM[]; + +// extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; + +// ATMEL ATMEGA644P / SANGUINO +// +// +---\/---+ +// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) +// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) +// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) +// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) +// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) +// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) +// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) +// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) +// RST 9| |32 AREF +// VCC 10| |31 GND +// GND 11| |30 AVCC +// XTAL2 12| |29 PC7 (D 23) +// XTAL1 13| |28 PC6 (D 22) +// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI +// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO +// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS +// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK +// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA +// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL +// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM +// +--------+ +// +#define NUM_DIGITAL_PINS 24 +#define NUM_ANALOG_INPUTS 8 +#define analogInputToDigitalPin(p) ((p < 7) ? (p) + 24 : -1) + +#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) + +#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ + ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ + ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ + ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ + 0 ) ) ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ + ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ + ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ + ((uint8_t *)0) ) ) ) ) + + +#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ + ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ + ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ + 0 ) ) ) ) + +#define PA 1 +#define PB 2 +#define PC 3 +#define PD 4 +#define PE 5 +#define PF 6 +#define PG 7 +#define PH 8 +#define PJ 10 +#define PK 11 +#define PL 12 + +#ifdef ARDUINO_MAIN +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, +}; +const uint16_t PROGMEM port_to_input_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, +}; +const uint8_t PROGMEM digital_pin_to_port_PGM[] = +{ + PB, /* 0 */ + PB, + PB, + PB, + PB, + PB, + PB, + PB, + PD, /* 8 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PC, /* 16 */ + PC, + PC, + PC, + PC, + PC, + PC, + PC, + PA, /* 24 */ + PA, + PA, + PA, + PA, + PA, + PA, + PA /* 31 */ +}; +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = +{ + _BV(0), /* 0, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 16, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(7), /* 24, port A */ + _BV(6), + _BV(5), + _BV(4), + _BV(3), + _BV(2), + _BV(1), + _BV(0) +}; +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = +{ + NOT_ON_TIMER, /* 0 - PB0 */ + NOT_ON_TIMER, /* 1 - PB1 */ + NOT_ON_TIMER, /* 2 - PB2 */ + TIMER0A, /* 3 - PB3 */ + TIMER0B, /* 4 - PB4 */ + NOT_ON_TIMER, /* 5 - PB5 */ + NOT_ON_TIMER, /* 6 - PB6 */ + NOT_ON_TIMER, /* 7 - PB7 */ + NOT_ON_TIMER, /* 8 - PD0 */ + NOT_ON_TIMER, /* 9 - PD1 */ + NOT_ON_TIMER, /* 10 - PD2 */ + NOT_ON_TIMER, /* 11 - PD3 */ + TIMER1B, /* 12 - PD4 */ + TIMER1A, /* 13 - PD5 */ + TIMER2B, /* 14 - PD6 */ + TIMER2A, /* 15 - PD7 */ + NOT_ON_TIMER, /* 16 - PC0 */ + NOT_ON_TIMER, /* 17 - PC1 */ + NOT_ON_TIMER, /* 18 - PC2 */ + NOT_ON_TIMER, /* 19 - PC3 */ + NOT_ON_TIMER, /* 20 - PC4 */ + NOT_ON_TIMER, /* 21 - PC5 */ + NOT_ON_TIMER, /* 22 - PC6 */ + NOT_ON_TIMER, /* 23 - PC7 */ + NOT_ON_TIMER, /* 24 - PA0 */ + NOT_ON_TIMER, /* 25 - PA1 */ + NOT_ON_TIMER, /* 26 - PA2 */ + NOT_ON_TIMER, /* 27 - PA3 */ + NOT_ON_TIMER, /* 28 - PA4 */ + NOT_ON_TIMER, /* 29 - PA5 */ + NOT_ON_TIMER, /* 30 - PA6 */ + NOT_ON_TIMER /* 31 - PA7 */ +}; +#endif +#endif From 89abf07faa311473bcd8982a0028e0ab7900832b Mon Sep 17 00:00:00 2001 From: mattrobbo10 Date: Fri, 18 Jul 2014 18:04:27 +1000 Subject: [PATCH 06/33] Added gen7-dist - marlin now compiles for gen7 --- .../hardware/Gen7-dist/boards.txt | 108 +++ .../Gen7-dist/cores/arduino/Arduino.h | 222 ++++++ .../hardware/Gen7-dist/cores/arduino/CDC.cpp | 239 ++++++ .../hardware/Gen7-dist/cores/arduino/Client.h | 26 + .../hardware/Gen7-dist/cores/arduino/HID.cpp | 520 +++++++++++++ .../cores/arduino/HardwareSerial.cpp | 519 +++++++++++++ .../Gen7-dist/cores/arduino/HardwareSerial.h | 115 +++ .../Gen7-dist/cores/arduino/IPAddress.cpp | 56 ++ .../Gen7-dist/cores/arduino/IPAddress.h | 76 ++ .../Gen7-dist/cores/arduino/Platform.h | 23 + .../Gen7-dist/cores/arduino/Print.cpp | 268 +++++++ .../hardware/Gen7-dist/cores/arduino/Print.h | 81 +++ .../Gen7-dist/cores/arduino/Printable.h | 40 + .../hardware/Gen7-dist/cores/arduino/Server.h | 9 + .../Gen7-dist/cores/arduino/Stream.cpp | 270 +++++++ .../hardware/Gen7-dist/cores/arduino/Stream.h | 96 +++ .../hardware/Gen7-dist/cores/arduino/Tone.cpp | 617 ++++++++++++++++ .../hardware/Gen7-dist/cores/arduino/USBAPI.h | 196 +++++ .../Gen7-dist/cores/arduino/USBCore.cpp | 684 ++++++++++++++++++ .../Gen7-dist/cores/arduino/USBCore.h | 303 ++++++++ .../Gen7-dist/cores/arduino/USBDesc.h | 63 ++ .../hardware/Gen7-dist/cores/arduino/Udp.h | 88 +++ .../Gen7-dist/cores/arduino/WCharacter.h | 168 +++++ .../Gen7-dist/cores/arduino/WInterrupts.c | 322 +++++++++ .../Gen7-dist/cores/arduino/WMath.cpp | 60 ++ .../Gen7-dist/cores/arduino/WString.cpp | 645 +++++++++++++++++ .../Gen7-dist/cores/arduino/WString.h | 205 ++++++ .../hardware/Gen7-dist/cores/arduino/binary.h | 515 +++++++++++++ .../hardware/Gen7-dist/cores/arduino/main.cpp | 20 + .../hardware/Gen7-dist/cores/arduino/new.cpp | 18 + .../hardware/Gen7-dist/cores/arduino/new.h | 22 + .../hardware/Gen7-dist/cores/arduino/wiring.c | 324 +++++++++ .../Gen7-dist/cores/arduino/wiring_analog.c | 282 ++++++++ .../Gen7-dist/cores/arduino/wiring_digital.c | 178 +++++ .../Gen7-dist/cores/arduino/wiring_private.h | 71 ++ .../Gen7-dist/cores/arduino/wiring_pulse.c | 69 ++ .../Gen7-dist/cores/arduino/wiring_shift.c | 55 ++ .../Gen7-dist/variants/gen7/pins_arduino.h | 235 ++++++ 38 files changed, 7808 insertions(+) create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/boards.txt create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Arduino.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/CDC.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Client.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HID.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Platform.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Printable.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Server.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Tone.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBAPI.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBDesc.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Udp.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WCharacter.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WInterrupts.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WMath.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/binary.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/main.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_analog.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_digital.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_private.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_pulse.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_shift.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/variants/gen7/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/boards.txt b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/boards.txt new file mode 100644 index 000000000..1978462ae --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/boards.txt @@ -0,0 +1,108 @@ +############################################################## + +Gen7-644-16.name=Gen7 with ATmega644 and 16 MHz +Gen7-644-16.upload.protocol=stk500v2 +Gen7-644-16.upload.maximum_size=63488 +Gen7-644-16.upload.speed=115200 +Gen7-644-16.bootloader.low_fuses=0xF7 +Gen7-644-16.bootloader.high_fuses=0xDC +Gen7-644-16.bootloader.extended_fuses=0xFC +Gen7-644-16.bootloader.path=Gen7 +Gen7-644-16.bootloader.file=bootloader-644-16MHz.hex +Gen7-644-16.bootloader.unlock_bits=0x3F +Gen7-644-16.bootloader.lock_bits=0x0F +Gen7-644-16.build.mcu=atmega644 +Gen7-644-16.build.f_cpu=16000000L +Gen7-644-16.build.core=arduino +Gen7-644-16.build.variant=gen7 + +############################################################## + +Gen7-644-20.name=Gen7 with ATmega644 and 20 MHz +Gen7-644-20.upload.protocol=stk500v2 +Gen7-644-20.upload.maximum_size=63488 +Gen7-644-20.upload.speed=115200 +Gen7-644-20.bootloader.low_fuses=0xF7 +Gen7-644-20.bootloader.high_fuses=0xDC +Gen7-644-20.bootloader.extended_fuses=0xFC +Gen7-644-20.bootloader.path=Gen7 +Gen7-644-20.bootloader.file=bootloader-644-20MHz.hex +Gen7-644-20.bootloader.unlock_bits=0x3F +Gen7-644-20.bootloader.lock_bits=0x0F +Gen7-644-20.build.mcu=atmega644 +Gen7-644-20.build.f_cpu=20000000L +Gen7-644-20.build.core=arduino +Gen7-644-20.build.variant=gen7 + +############################################################## + +Gen7-644P-16.name=Gen7 with ATmega644P and 16 MHz +Gen7-644P-16.upload.protocol=stk500v2 +Gen7-644P-16.upload.maximum_size=63488 +Gen7-644P-16.upload.speed=115200 +Gen7-644P-16.bootloader.low_fuses=0xF7 +Gen7-644P-16.bootloader.high_fuses=0xDC +Gen7-644P-16.bootloader.extended_fuses=0xFC +Gen7-644P-16.bootloader.path=Gen7 +Gen7-644P-16.bootloader.file=bootloader-644P-16MHz.hex +Gen7-644P-16.bootloader.unlock_bits=0x3F +Gen7-644P-16.bootloader.lock_bits=0x0F +Gen7-644P-16.build.mcu=atmega644p +Gen7-644P-16.build.f_cpu=16000000L +Gen7-644P-16.build.core=arduino +Gen7-644P-16.build.variant=gen7 + +############################################################## + +Gen7-644P-20.name=Gen7 with ATmega644P and 20 MHz +Gen7-644P-20.upload.protocol=stk500v2 +Gen7-644P-20.upload.maximum_size=63488 +Gen7-644P-20.upload.speed=115200 +Gen7-644P-20.bootloader.low_fuses=0xF7 +Gen7-644P-20.bootloader.high_fuses=0xDC +Gen7-644P-20.bootloader.extended_fuses=0xFC +Gen7-644P-20.bootloader.path=Gen7 +Gen7-644P-20.bootloader.file=bootloader-644P-20MHz.hex +Gen7-644P-20.bootloader.unlock_bits=0x3F +Gen7-644P-20.bootloader.lock_bits=0x0F +Gen7-644P-20.build.mcu=atmega644p +Gen7-644P-20.build.f_cpu=20000000L +Gen7-644P-20.build.core=arduino +Gen7-644P-20.build.variant=gen7 + +############################################################## + +Gen7-1284P-16.name=Gen7 with ATmega1284P and 16 MHz +Gen7-1284P-16.upload.protocol=stk500v2 +Gen7-1284P-16.upload.maximum_size=129024 +Gen7-1284P-16.upload.speed=115200 +Gen7-1284P-16.bootloader.low_fuses=0xF7 +Gen7-1284P-16.bootloader.high_fuses=0xDC +Gen7-1284P-16.bootloader.extended_fuses=0xFC +Gen7-1284P-16.bootloader.path=Gen7 +Gen7-1284P-16.bootloader.file=bootloader-1284P-16MHz.hex +Gen7-1284P-16.bootloader.unlock_bits=0x3F +Gen7-1284P-16.bootloader.lock_bits=0x0F +Gen7-1284P-16.build.mcu=atmega1284p +Gen7-1284P-16.build.f_cpu=16000000L +Gen7-1284P-16.build.core=arduino +Gen7-1284P-16.build.variant=gen7 + +############################################################## + +Gen7-1284P-20.name=Gen7 with ATmega1284P and 20 MHz +Gen7-1284P-20.upload.protocol=stk500v2 +Gen7-1284P-20.upload.maximum_size=129024 +Gen7-1284P-20.upload.speed=115200 +Gen7-1284P-20.bootloader.low_fuses=0xF7 +Gen7-1284P-20.bootloader.high_fuses=0xDC +Gen7-1284P-20.bootloader.extended_fuses=0xFC +Gen7-1284P-20.bootloader.path=Gen7 +Gen7-1284P-20.bootloader.file=bootloader-1284P-20MHz.hex +Gen7-1284P-20.bootloader.unlock_bits=0x3F +Gen7-1284P-20.bootloader.lock_bits=0x0F +Gen7-1284P-20.build.mcu=atmega1284p +Gen7-1284P-20.build.f_cpu=20000000L +Gen7-1284P-20.build.core=arduino +Gen7-1284P-20.build.variant=gen7 + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Arduino.h new file mode 100644 index 000000000..a7fdf78f0 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Arduino.h @@ -0,0 +1,222 @@ +#ifndef Arduino_h +#define Arduino_h + +#include +#include +#include + +#include +#include +#include + +#include "binary.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +#define HIGH 0x1 +#define LOW 0x0 + +#define INPUT 0x0 +#define OUTPUT 0x1 +#define INPUT_PULLUP 0x2 + +#define true 0x1 +#define false 0x0 + +#define PI 3.1415926535897932384626433832795 +#define HALF_PI 1.5707963267948966192313216916398 +#define TWO_PI 6.283185307179586476925286766559 +#define DEG_TO_RAD 0.017453292519943295769236907684886 +#define RAD_TO_DEG 57.295779513082320876798154814105 + +#define SERIAL 0x0 +#define DISPLAY 0x1 + +#define LSBFIRST 0 +#define MSBFIRST 1 + +#define CHANGE 1 +#define FALLING 2 +#define RISING 3 + +// analog voltage references +#if defined(REFS2) // ATtiny of some sort +#define DEFAULT 0 +#define EXTERNAL 1 +#define INTERNAL 2 +#else +// Looks like the SFIOR register exists only on those chips without +// 1.1V internal reference voltage. This is an educated guess inspired +// by AppNote AVR097, page 5 bottom. +#if !defined(SFIOR) +#define INTERNAL1V1 2 +#define INTERNAL2V56 3 +#else +#define INTERNAL 3 +#endif +#define DEFAULT 1 +#define EXTERNAL 0 +#endif + +// undefine stdlib's abs if encountered +#ifdef abs +#undef abs +#endif + +#define min(a,b) ((a)<(b)?(a):(b)) +#define max(a,b) ((a)>(b)?(a):(b)) +#define abs(x) ((x)>0?(x):-(x)) +#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) +#if __GNUC__ <= 4 && __GNUC_MINOR__ < 5 +// this conflicts with avr-gcc's built in headers as of avr-gcc 4.5.3 +#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) +#endif +#define radians(deg) ((deg)*DEG_TO_RAD) +#define degrees(rad) ((rad)*RAD_TO_DEG) +#define sq(x) ((x)*(x)) + +#define interrupts() sei() +#define noInterrupts() cli() + +#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) +#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) +#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) + +#define lowByte(w) ((uint8_t) ((w) & 0xff)) +#define highByte(w) ((uint8_t) ((w) >> 8)) + +#define bitRead(value, bit) (((value) >> (bit)) & 0x01) +#define bitSet(value, bit) ((value) |= (1UL << (bit))) +#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) +#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) + + +typedef unsigned int word; + +#define bit(b) (1UL << (b)) + +typedef uint8_t boolean; +typedef uint8_t byte; + +void init(void); + +void pinMode(uint8_t, uint8_t); +void digitalWrite(uint8_t, uint8_t); +int digitalRead(uint8_t); +int analogRead(uint8_t); +void analogReference(uint8_t mode); +void analogWrite(uint8_t, int); + +unsigned long millis(void); +unsigned long micros(void); +void delay(unsigned long); +void delayMicroseconds(unsigned int us); +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); + +void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); +uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); + +void attachInterrupt(uint8_t, void (*)(void), int mode); +void detachInterrupt(uint8_t); + +void setup(void); +void loop(void); + +// Get the bit location within the hardware port of the given virtual pin. +// This comes from the pins_*.c file for the active board configuration. + +#define analogInPinToBit(P) (P) + +// On the ATmega1280, the addresses of some of the port registers are +// greater than 255, so we can't store them in uint8_t's. +extern const uint16_t PROGMEM port_to_mode_PGM[]; +extern const uint16_t PROGMEM port_to_input_PGM[]; +extern const uint16_t PROGMEM port_to_output_PGM[]; + +extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; +extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; +extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; + +// Get the bit location within the hardware port of the given virtual pin. +// This comes from the pins_*.c file for the active board configuration. +// +// These perform slightly better as macros compared to inline functions +// +#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) +#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) +#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) +#define analogInPinToBit(P) (P) +#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) +#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) +#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) + +#define NOT_A_PIN 0 +#define NOT_A_PORT 0 + +#ifdef ARDUINO_MAIN +#define PA 1 +#define PB 2 +#define PC 3 +#define PD 4 +#define PE 5 +#define PF 6 +#define PG 7 +#define PH 8 +#define PJ 10 +#define PK 11 +#define PL 12 +#endif + +#define NOT_ON_TIMER 0 +#define TIMER0A 1 +#define TIMER0B 2 +#define TIMER1A 3 +#define TIMER1B 4 +#define TIMER2 5 +#define TIMER2A 6 +#define TIMER2B 7 + +#define TIMER3A 8 +#define TIMER3B 9 +#define TIMER3C 10 +#define TIMER4A 11 +#define TIMER4B 12 +#define TIMER4C 13 +#define TIMER4D 14 +#define TIMER5A 15 +#define TIMER5B 16 +#define TIMER5C 17 + +#ifdef __cplusplus +} // extern "C" +#endif + +#ifdef __cplusplus +#include "WCharacter.h" +#include "WString.h" +#include "HardwareSerial.h" + +uint16_t makeWord(uint16_t w); +uint16_t makeWord(byte h, byte l); + +#define word(...) makeWord(__VA_ARGS__) + +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); + +void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); +void noTone(uint8_t _pin); + +// WMath prototypes +long random(long); +long random(long, long); +void randomSeed(unsigned int); +long map(long, long, long, long, long); + +#endif + +#include "pins_arduino.h" + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/CDC.cpp new file mode 100644 index 000000000..701e48398 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/CDC.cpp @@ -0,0 +1,239 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include + +#if defined(USBCON) +#ifdef CDC_ENABLED + +#if (RAMEND < 1000) +#define SERIAL_BUFFER_SIZE 16 +#else +#define SERIAL_BUFFER_SIZE 64 +#endif + +struct ring_buffer +{ + unsigned char buffer[SERIAL_BUFFER_SIZE]; + volatile int head; + volatile int tail; +}; + +ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; + +typedef struct +{ + u32 dwDTERate; + u8 bCharFormat; + u8 bParityType; + u8 bDataBits; + u8 lineState; +} LineInfo; + +static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; + +#define WEAK __attribute__ ((weak)) + +extern const CDCDescriptor _cdcInterface PROGMEM; +const CDCDescriptor _cdcInterface = +{ + D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), + + // CDC communication interface + D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), + D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) + D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) + D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported + D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 + D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), + + // CDC data interface + D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), + D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), + D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) +}; + +int WEAK CDC_GetInterface(u8* interfaceNum) +{ + interfaceNum[0] += 2; // uses 2 + return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); +} + +bool WEAK CDC_Setup(Setup& setup) +{ + u8 r = setup.bRequest; + u8 requestType = setup.bmRequestType; + + if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) + { + if (CDC_GET_LINE_CODING == r) + { + USB_SendControl(0,(void*)&_usbLineInfo,7); + return true; + } + } + + if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) + { + if (CDC_SET_LINE_CODING == r) + { + USB_RecvControl((void*)&_usbLineInfo,7); + return true; + } + + if (CDC_SET_CONTROL_LINE_STATE == r) + { + _usbLineInfo.lineState = setup.wValueL; + + // auto-reset into the bootloader is triggered when the port, already + // open at 1200 bps, is closed. this is the signal to start the watchdog + // with a relatively long period so it can finish housekeeping tasks + // like servicing endpoints before the sketch ends + if (1200 == _usbLineInfo.dwDTERate) { + // We check DTR state to determine if host port is open (bit 0 of lineState). + if ((_usbLineInfo.lineState & 0x01) == 0) { + *(uint16_t *)0x0800 = 0x7777; + wdt_enable(WDTO_120MS); + } else { + // Most OSs do some intermediate steps when configuring ports and DTR can + // twiggle more than once before stabilizing. + // To avoid spurious resets we set the watchdog to 250ms and eventually + // cancel if DTR goes back high. + + wdt_disable(); + wdt_reset(); + *(uint16_t *)0x0800 = 0x0; + } + } + return true; + } + } + return false; +} + + +int _serialPeek = -1; +void Serial_::begin(uint16_t baud_count) +{ +} + +void Serial_::end(void) +{ +} + +void Serial_::accept(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; + + // if we should be storing the received character into the location + // just before the tail (meaning that the head would advance to the + // current location of the tail), we're about to overflow the buffer + // and so we don't write the character or advance the head. + + // while we have room to store a byte + while (i != buffer->tail) { + int c = USB_Recv(CDC_RX); + if (c == -1) + break; // no more data + buffer->buffer[buffer->head] = c; + buffer->head = i; + + i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; + } +} + +int Serial_::available(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; +} + +int Serial_::peek(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + if (buffer->head == buffer->tail) { + return -1; + } else { + return buffer->buffer[buffer->tail]; + } +} + +int Serial_::read(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + // if the head isn't ahead of the tail, we don't have any characters + if (buffer->head == buffer->tail) { + return -1; + } else { + unsigned char c = buffer->buffer[buffer->tail]; + buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; + return c; + } +} + +void Serial_::flush(void) +{ + USB_Flush(CDC_TX); +} + +size_t Serial_::write(uint8_t c) +{ + /* only try to send bytes if the high-level CDC connection itself + is open (not just the pipe) - the OS should set lineState when the port + is opened and clear lineState when the port is closed. + bytes sent before the user opens the connection or after + the connection is closed are lost - just like with a UART. */ + + // TODO - ZE - check behavior on different OSes and test what happens if an + // open connection isn't broken cleanly (cable is yanked out, host dies + // or locks up, or host virtual serial port hangs) + if (_usbLineInfo.lineState > 0) { + int r = USB_Send(CDC_TX,&c,1); + if (r > 0) { + return r; + } else { + setWriteError(); + return 0; + } + } + setWriteError(); + return 0; +} + +// This operator is a convenient way for a sketch to check whether the +// port has actually been configured and opened by the host (as opposed +// to just being connected to the host). It can be used, for example, in +// setup() before printing to ensure that an application on the host is +// actually ready to receive and display the data. +// We add a short delay before returning to fix a bug observed by Federico +// where the port is configured (lineState != 0) but not quite opened. +Serial_::operator bool() { + bool result = false; + if (_usbLineInfo.lineState > 0) + result = true; + delay(10); + return result; +} + +Serial_ Serial; + +#endif +#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Client.h new file mode 100644 index 000000000..ea134838a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Client.h @@ -0,0 +1,26 @@ +#ifndef client_h +#define client_h +#include "Print.h" +#include "Stream.h" +#include "IPAddress.h" + +class Client : public Stream { + +public: + virtual int connect(IPAddress ip, uint16_t port) =0; + virtual int connect(const char *host, uint16_t port) =0; + virtual size_t write(uint8_t) =0; + virtual size_t write(const uint8_t *buf, size_t size) =0; + virtual int available() = 0; + virtual int read() = 0; + virtual int read(uint8_t *buf, size_t size) = 0; + virtual int peek() = 0; + virtual void flush() = 0; + virtual void stop() = 0; + virtual uint8_t connected() = 0; + virtual operator bool() = 0; +protected: + uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HID.cpp new file mode 100644 index 000000000..ac6360844 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HID.cpp @@ -0,0 +1,520 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include "USBDesc.h" + +#if defined(USBCON) +#ifdef HID_ENABLED + +//#define RAWHID_ENABLED + +// Singletons for mouse and keyboard + +Mouse_ Mouse; +Keyboard_ Keyboard; + +//================================================================================ +//================================================================================ + +// HID report descriptor + +#define LSB(_x) ((_x) & 0xFF) +#define MSB(_x) ((_x) >> 8) + +#define RAWHID_USAGE_PAGE 0xFFC0 +#define RAWHID_USAGE 0x0C00 +#define RAWHID_TX_SIZE 64 +#define RAWHID_RX_SIZE 64 + +extern const u8 _hidReportDescriptor[] PROGMEM; +const u8 _hidReportDescriptor[] = { + + // Mouse + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 + 0x09, 0x02, // USAGE (Mouse) + 0xa1, 0x01, // COLLECTION (Application) + 0x09, 0x01, // USAGE (Pointer) + 0xa1, 0x00, // COLLECTION (Physical) + 0x85, 0x01, // REPORT_ID (1) + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x03, // USAGE_MAXIMUM (Button 3) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x95, 0x03, // REPORT_COUNT (3) + 0x75, 0x01, // REPORT_SIZE (1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x05, // REPORT_SIZE (5) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x03, // REPORT_COUNT (3) + 0x81, 0x06, // INPUT (Data,Var,Rel) + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION + + // Keyboard + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 + 0x09, 0x06, // USAGE (Keyboard) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, 0x02, // REPORT_ID (2) + 0x05, 0x07, // USAGE_PAGE (Keyboard) + + 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) + 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + + 0x95, 0x08, // REPORT_COUNT (8) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x08, // REPORT_SIZE (8) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + + 0x95, 0x06, // REPORT_COUNT (6) + 0x75, 0x08, // REPORT_SIZE (8) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x65, // LOGICAL_MAXIMUM (101) + 0x05, 0x07, // USAGE_PAGE (Keyboard) + + 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) + 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) + 0x81, 0x00, // INPUT (Data,Ary,Abs) + 0xc0, // END_COLLECTION + +#if RAWHID_ENABLED + // RAW HID + 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 + 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), + + 0xA1, 0x01, // Collection 0x01 + 0x85, 0x03, // REPORT_ID (3) + 0x75, 0x08, // report size = 8 bits + 0x15, 0x00, // logical minimum = 0 + 0x26, 0xFF, 0x00, // logical maximum = 255 + + 0x95, 64, // report count TX + 0x09, 0x01, // usage + 0x81, 0x02, // Input (array) + + 0x95, 64, // report count RX + 0x09, 0x02, // usage + 0x91, 0x02, // Output (array) + 0xC0 // end collection +#endif +}; + +extern const HIDDescriptor _hidInterface PROGMEM; +const HIDDescriptor _hidInterface = +{ + D_INTERFACE(HID_INTERFACE,1,3,0,0), + D_HIDREPORT(sizeof(_hidReportDescriptor)), + D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) +}; + +//================================================================================ +//================================================================================ +// Driver + +u8 _hid_protocol = 1; +u8 _hid_idle = 1; + +#define WEAK __attribute__ ((weak)) + +int WEAK HID_GetInterface(u8* interfaceNum) +{ + interfaceNum[0] += 1; // uses 1 + return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); +} + +int WEAK HID_GetDescriptor(int i) +{ + return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); +} + +void WEAK HID_SendReport(u8 id, const void* data, int len) +{ + USB_Send(HID_TX, &id, 1); + USB_Send(HID_TX | TRANSFER_RELEASE,data,len); +} + +bool WEAK HID_Setup(Setup& setup) +{ + u8 r = setup.bRequest; + u8 requestType = setup.bmRequestType; + if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) + { + if (HID_GET_REPORT == r) + { + //HID_GetReport(); + return true; + } + if (HID_GET_PROTOCOL == r) + { + //Send8(_hid_protocol); // TODO + return true; + } + } + + if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) + { + if (HID_SET_PROTOCOL == r) + { + _hid_protocol = setup.wValueL; + return true; + } + + if (HID_SET_IDLE == r) + { + _hid_idle = setup.wValueL; + return true; + } + } + return false; +} + +//================================================================================ +//================================================================================ +// Mouse + +Mouse_::Mouse_(void) : _buttons(0) +{ +} + +void Mouse_::begin(void) +{ +} + +void Mouse_::end(void) +{ +} + +void Mouse_::click(uint8_t b) +{ + _buttons = b; + move(0,0,0); + _buttons = 0; + move(0,0,0); +} + +void Mouse_::move(signed char x, signed char y, signed char wheel) +{ + u8 m[4]; + m[0] = _buttons; + m[1] = x; + m[2] = y; + m[3] = wheel; + HID_SendReport(1,m,4); +} + +void Mouse_::buttons(uint8_t b) +{ + if (b != _buttons) + { + _buttons = b; + move(0,0,0); + } +} + +void Mouse_::press(uint8_t b) +{ + buttons(_buttons | b); +} + +void Mouse_::release(uint8_t b) +{ + buttons(_buttons & ~b); +} + +bool Mouse_::isPressed(uint8_t b) +{ + if ((b & _buttons) > 0) + return true; + return false; +} + +//================================================================================ +//================================================================================ +// Keyboard + +Keyboard_::Keyboard_(void) +{ +} + +void Keyboard_::begin(void) +{ +} + +void Keyboard_::end(void) +{ +} + +void Keyboard_::sendReport(KeyReport* keys) +{ + HID_SendReport(2,keys,sizeof(KeyReport)); +} + +extern +const uint8_t _asciimap[128] PROGMEM; + +#define SHIFT 0x80 +const uint8_t _asciimap[128] = +{ + 0x00, // NUL + 0x00, // SOH + 0x00, // STX + 0x00, // ETX + 0x00, // EOT + 0x00, // ENQ + 0x00, // ACK + 0x00, // BEL + 0x2a, // BS Backspace + 0x2b, // TAB Tab + 0x28, // LF Enter + 0x00, // VT + 0x00, // FF + 0x00, // CR + 0x00, // SO + 0x00, // SI + 0x00, // DEL + 0x00, // DC1 + 0x00, // DC2 + 0x00, // DC3 + 0x00, // DC4 + 0x00, // NAK + 0x00, // SYN + 0x00, // ETB + 0x00, // CAN + 0x00, // EM + 0x00, // SUB + 0x00, // ESC + 0x00, // FS + 0x00, // GS + 0x00, // RS + 0x00, // US + + 0x2c, // ' ' + 0x1e|SHIFT, // ! + 0x34|SHIFT, // " + 0x20|SHIFT, // # + 0x21|SHIFT, // $ + 0x22|SHIFT, // % + 0x24|SHIFT, // & + 0x34, // ' + 0x26|SHIFT, // ( + 0x27|SHIFT, // ) + 0x25|SHIFT, // * + 0x2e|SHIFT, // + + 0x36, // , + 0x2d, // - + 0x37, // . + 0x38, // / + 0x27, // 0 + 0x1e, // 1 + 0x1f, // 2 + 0x20, // 3 + 0x21, // 4 + 0x22, // 5 + 0x23, // 6 + 0x24, // 7 + 0x25, // 8 + 0x26, // 9 + 0x33|SHIFT, // : + 0x33, // ; + 0x36|SHIFT, // < + 0x2e, // = + 0x37|SHIFT, // > + 0x38|SHIFT, // ? + 0x1f|SHIFT, // @ + 0x04|SHIFT, // A + 0x05|SHIFT, // B + 0x06|SHIFT, // C + 0x07|SHIFT, // D + 0x08|SHIFT, // E + 0x09|SHIFT, // F + 0x0a|SHIFT, // G + 0x0b|SHIFT, // H + 0x0c|SHIFT, // I + 0x0d|SHIFT, // J + 0x0e|SHIFT, // K + 0x0f|SHIFT, // L + 0x10|SHIFT, // M + 0x11|SHIFT, // N + 0x12|SHIFT, // O + 0x13|SHIFT, // P + 0x14|SHIFT, // Q + 0x15|SHIFT, // R + 0x16|SHIFT, // S + 0x17|SHIFT, // T + 0x18|SHIFT, // U + 0x19|SHIFT, // V + 0x1a|SHIFT, // W + 0x1b|SHIFT, // X + 0x1c|SHIFT, // Y + 0x1d|SHIFT, // Z + 0x2f, // [ + 0x31, // bslash + 0x30, // ] + 0x23|SHIFT, // ^ + 0x2d|SHIFT, // _ + 0x35, // ` + 0x04, // a + 0x05, // b + 0x06, // c + 0x07, // d + 0x08, // e + 0x09, // f + 0x0a, // g + 0x0b, // h + 0x0c, // i + 0x0d, // j + 0x0e, // k + 0x0f, // l + 0x10, // m + 0x11, // n + 0x12, // o + 0x13, // p + 0x14, // q + 0x15, // r + 0x16, // s + 0x17, // t + 0x18, // u + 0x19, // v + 0x1a, // w + 0x1b, // x + 0x1c, // y + 0x1d, // z + 0x2f|SHIFT, // + 0x31|SHIFT, // | + 0x30|SHIFT, // } + 0x35|SHIFT, // ~ + 0 // DEL +}; + +uint8_t USBPutChar(uint8_t c); + +// press() adds the specified key (printing, non-printing, or modifier) +// to the persistent key report and sends the report. Because of the way +// USB HID works, the host acts like the key remains pressed until we +// call release(), releaseAll(), or otherwise clear the report and resend. +size_t Keyboard_::press(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _keyReport.modifiers |= (1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + setWriteError(); + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _keyReport.modifiers |= 0x02; // the left shift modifier + k &= 0x7F; + } + } + + // Add k to the key report only if it's not already present + // and if there is an empty slot. + if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && + _keyReport.keys[2] != k && _keyReport.keys[3] != k && + _keyReport.keys[4] != k && _keyReport.keys[5] != k) { + + for (i=0; i<6; i++) { + if (_keyReport.keys[i] == 0x00) { + _keyReport.keys[i] = k; + break; + } + } + if (i == 6) { + setWriteError(); + return 0; + } + } + sendReport(&_keyReport); + return 1; +} + +// release() takes the specified key out of the persistent key report and +// sends the report. This tells the OS the key is no longer pressed and that +// it shouldn't be repeated any more. +size_t Keyboard_::release(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _keyReport.modifiers &= ~(1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _keyReport.modifiers &= ~(0x02); // the left shift modifier + k &= 0x7F; + } + } + + // Test the key report to see if k is present. Clear it if it exists. + // Check all positions in case the key is present more than once (which it shouldn't be) + for (i=0; i<6; i++) { + if (0 != k && _keyReport.keys[i] == k) { + _keyReport.keys[i] = 0x00; + } + } + + sendReport(&_keyReport); + return 1; +} + +void Keyboard_::releaseAll(void) +{ + _keyReport.keys[0] = 0; + _keyReport.keys[1] = 0; + _keyReport.keys[2] = 0; + _keyReport.keys[3] = 0; + _keyReport.keys[4] = 0; + _keyReport.keys[5] = 0; + _keyReport.modifiers = 0; + sendReport(&_keyReport); +} + +size_t Keyboard_::write(uint8_t c) +{ + uint8_t p = press(c); // Keydown + uint8_t r = release(c); // Keyup + return (p); // just return the result of press() since release() almost always returns 1 +} + +#endif + +#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.cpp new file mode 100644 index 000000000..794a7be89 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.cpp @@ -0,0 +1,519 @@ +/* + HardwareSerial.cpp - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis + Modified 28 September 2010 by Mark Sproul + Modified 14 August 2012 by Alarus +*/ + +#include +#include +#include +#include +#include "Arduino.h" +#include "wiring_private.h" + +// this next line disables the entire HardwareSerial.cpp, +// this is so I can support Attiny series and any other chip without a uart +#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) + +#include "HardwareSerial.h" + +/* + * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" + * definition. + */ +#if !defined(TXC0) +#if defined(TXC) +#define TXC0 TXC +#elif defined(TXC1) +// Some devices have uart1 but no uart0 +#define TXC0 TXC1 +#else +#error TXC0 not definable in HardwareSerial.h +#endif +#endif + +// Define constants and variables for buffering incoming serial data. We're +// using a ring buffer (I think), in which head is the index of the location +// to which to write the next incoming character and tail is the index of the +// location from which to read. +#if (RAMEND < 1000) + #define SERIAL_BUFFER_SIZE 16 +#else + #define SERIAL_BUFFER_SIZE 64 +#endif + +struct ring_buffer +{ + unsigned char buffer[SERIAL_BUFFER_SIZE]; + volatile unsigned int head; + volatile unsigned int tail; +}; + +#if defined(USBCON) + ring_buffer rx_buffer = { { 0 }, 0, 0}; + ring_buffer tx_buffer = { { 0 }, 0, 0}; +#endif +#if defined(UBRRH) || defined(UBRR0H) + ring_buffer rx_buffer = { { 0 }, 0, 0 }; + ring_buffer tx_buffer = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR1H) + ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR2H) + ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR3H) + ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; +#endif + +inline void store_char(unsigned char c, ring_buffer *buffer) +{ + int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; + + // if we should be storing the received character into the location + // just before the tail (meaning that the head would advance to the + // current location of the tail), we're about to overflow the buffer + // and so we don't write the character or advance the head. + if (i != buffer->tail) { + buffer->buffer[buffer->head] = c; + buffer->head = i; + } +} + +#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) +// do nothing - on the 32u4 the first USART is USART1 +#else +#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ + !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ + !defined(SIG_UART_RECV) + #error "Don't know what the Data Received vector is called for the first UART" +#else + void serialEvent() __attribute__((weak)); + void serialEvent() {} + #define serialEvent_implemented +#if defined(USART_RX_vect) + SIGNAL(USART_RX_vect) +#elif defined(SIG_USART0_RECV) + SIGNAL(SIG_USART0_RECV) +#elif defined(SIG_UART0_RECV) + SIGNAL(SIG_UART0_RECV) +#elif defined(USART0_RX_vect) + SIGNAL(USART0_RX_vect) +#elif defined(SIG_UART_RECV) + SIGNAL(SIG_UART_RECV) +#endif + { + #if defined(UDR0) + if (bit_is_clear(UCSR0A, UPE0)) { + unsigned char c = UDR0; + store_char(c, &rx_buffer); + } else { + unsigned char c = UDR0; + }; + #elif defined(UDR) + if (bit_is_clear(UCSRA, PE)) { + unsigned char c = UDR; + store_char(c, &rx_buffer); + } else { + unsigned char c = UDR; + }; + #else + #error UDR not defined + #endif + } +#endif +#endif + +#if defined(USART1_RX_vect) + void serialEvent1() __attribute__((weak)); + void serialEvent1() {} + #define serialEvent1_implemented + SIGNAL(USART1_RX_vect) + { + if (bit_is_clear(UCSR1A, UPE1)) { + unsigned char c = UDR1; + store_char(c, &rx_buffer1); + } else { + unsigned char c = UDR1; + }; + } +#elif defined(SIG_USART1_RECV) + #error SIG_USART1_RECV +#endif + +#if defined(USART2_RX_vect) && defined(UDR2) + void serialEvent2() __attribute__((weak)); + void serialEvent2() {} + #define serialEvent2_implemented + SIGNAL(USART2_RX_vect) + { + if (bit_is_clear(UCSR2A, UPE2)) { + unsigned char c = UDR2; + store_char(c, &rx_buffer2); + } else { + unsigned char c = UDR2; + }; + } +#elif defined(SIG_USART2_RECV) + #error SIG_USART2_RECV +#endif + +#if defined(USART3_RX_vect) && defined(UDR3) + void serialEvent3() __attribute__((weak)); + void serialEvent3() {} + #define serialEvent3_implemented + SIGNAL(USART3_RX_vect) + { + if (bit_is_clear(UCSR3A, UPE3)) { + unsigned char c = UDR3; + store_char(c, &rx_buffer3); + } else { + unsigned char c = UDR3; + }; + } +#elif defined(SIG_USART3_RECV) + #error SIG_USART3_RECV +#endif + +void serialEventRun(void) +{ +#ifdef serialEvent_implemented + if (Serial.available()) serialEvent(); +#endif +#ifdef serialEvent1_implemented + if (Serial1.available()) serialEvent1(); +#endif +#ifdef serialEvent2_implemented + if (Serial2.available()) serialEvent2(); +#endif +#ifdef serialEvent3_implemented + if (Serial3.available()) serialEvent3(); +#endif +} + + +#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) +// do nothing - on the 32u4 the first USART is USART1 +#else +#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) + #error "Don't know what the Data Register Empty vector is called for the first UART" +#else +#if defined(UART0_UDRE_vect) +ISR(UART0_UDRE_vect) +#elif defined(UART_UDRE_vect) +ISR(UART_UDRE_vect) +#elif defined(USART0_UDRE_vect) +ISR(USART0_UDRE_vect) +#elif defined(USART_UDRE_vect) +ISR(USART_UDRE_vect) +#endif +{ + if (tx_buffer.head == tx_buffer.tail) { + // Buffer empty, so disable interrupts +#if defined(UCSR0B) + cbi(UCSR0B, UDRIE0); +#else + cbi(UCSRB, UDRIE); +#endif + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer.buffer[tx_buffer.tail]; + tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; + + #if defined(UDR0) + UDR0 = c; + #elif defined(UDR) + UDR = c; + #else + #error UDR not defined + #endif + } +} +#endif +#endif + +#ifdef USART1_UDRE_vect +ISR(USART1_UDRE_vect) +{ + if (tx_buffer1.head == tx_buffer1.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR1B, UDRIE1); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; + tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR1 = c; + } +} +#endif + +#ifdef USART2_UDRE_vect +ISR(USART2_UDRE_vect) +{ + if (tx_buffer2.head == tx_buffer2.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR2B, UDRIE2); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; + tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR2 = c; + } +} +#endif + +#ifdef USART3_UDRE_vect +ISR(USART3_UDRE_vect) +{ + if (tx_buffer3.head == tx_buffer3.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR3B, UDRIE3); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; + tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR3 = c; + } +} +#endif + + +// Constructors //////////////////////////////////////////////////////////////// + +HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, + volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, + volatile uint8_t *ucsra, volatile uint8_t *ucsrb, + volatile uint8_t *ucsrc, volatile uint8_t *udr, + uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) +{ + _rx_buffer = rx_buffer; + _tx_buffer = tx_buffer; + _ubrrh = ubrrh; + _ubrrl = ubrrl; + _ucsra = ucsra; + _ucsrb = ucsrb; + _ucsrc = ucsrc; + _udr = udr; + _rxen = rxen; + _txen = txen; + _rxcie = rxcie; + _udrie = udrie; + _u2x = u2x; +} + +// Public Methods ////////////////////////////////////////////////////////////// + +void HardwareSerial::begin(unsigned long baud) +{ + uint16_t baud_setting; + bool use_u2x = true; + +#if F_CPU == 16000000UL + // hardcoded exception for compatibility with the bootloader shipped + // with the Duemilanove and previous boards and the firmware on the 8U2 + // on the Uno and Mega 2560. + if (baud == 57600) { + use_u2x = false; + } +#endif + +try_again: + + if (use_u2x) { + *_ucsra = 1 << _u2x; + baud_setting = (F_CPU / 4 / baud - 1) / 2; + } else { + *_ucsra = 0; + baud_setting = (F_CPU / 8 / baud - 1) / 2; + } + + if ((baud_setting > 4095) && use_u2x) + { + use_u2x = false; + goto try_again; + } + + // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) + *_ubrrh = baud_setting >> 8; + *_ubrrl = baud_setting; + + transmitting = false; + + sbi(*_ucsrb, _rxen); + sbi(*_ucsrb, _txen); + sbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); +} + +void HardwareSerial::begin(unsigned long baud, byte config) +{ + uint16_t baud_setting; + uint8_t current_config; + bool use_u2x = true; + +#if F_CPU == 16000000UL + // hardcoded exception for compatibility with the bootloader shipped + // with the Duemilanove and previous boards and the firmware on the 8U2 + // on the Uno and Mega 2560. + if (baud == 57600) { + use_u2x = false; + } +#endif + +try_again: + + if (use_u2x) { + *_ucsra = 1 << _u2x; + baud_setting = (F_CPU / 4 / baud - 1) / 2; + } else { + *_ucsra = 0; + baud_setting = (F_CPU / 8 / baud - 1) / 2; + } + + if ((baud_setting > 4095) && use_u2x) + { + use_u2x = false; + goto try_again; + } + + // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) + *_ubrrh = baud_setting >> 8; + *_ubrrl = baud_setting; + + //set the data bits, parity, and stop bits +#if defined(__AVR_ATmega8__) + config |= 0x80; // select UCSRC register (shared with UBRRH) +#endif + *_ucsrc = config; + + sbi(*_ucsrb, _rxen); + sbi(*_ucsrb, _txen); + sbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); +} + +void HardwareSerial::end() +{ + // wait for transmission of outgoing data + while (_tx_buffer->head != _tx_buffer->tail) + ; + + cbi(*_ucsrb, _rxen); + cbi(*_ucsrb, _txen); + cbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); + + // clear any received data + _rx_buffer->head = _rx_buffer->tail; +} + +int HardwareSerial::available(void) +{ + return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; +} + +int HardwareSerial::peek(void) +{ + if (_rx_buffer->head == _rx_buffer->tail) { + return -1; + } else { + return _rx_buffer->buffer[_rx_buffer->tail]; + } +} + +int HardwareSerial::read(void) +{ + // if the head isn't ahead of the tail, we don't have any characters + if (_rx_buffer->head == _rx_buffer->tail) { + return -1; + } else { + unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; + _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; + return c; + } +} + +void HardwareSerial::flush() +{ + // UDR is kept full while the buffer is not empty, so TXC triggers when EMPTY && SENT + while (transmitting && ! (*_ucsra & _BV(TXC0))); + transmitting = false; +} + +size_t HardwareSerial::write(uint8_t c) +{ + int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; + + // If the output buffer is full, there's nothing for it other than to + // wait for the interrupt handler to empty it a bit + // ???: return 0 here instead? + while (i == _tx_buffer->tail) + ; + + _tx_buffer->buffer[_tx_buffer->head] = c; + _tx_buffer->head = i; + + sbi(*_ucsrb, _udrie); + // clear the TXC bit -- "can be cleared by writing a one to its bit location" + transmitting = true; + sbi(*_ucsra, TXC0); + + return 1; +} + +HardwareSerial::operator bool() { + return true; +} + +// Preinstantiate Objects ////////////////////////////////////////////////////// + +#if defined(UBRRH) && defined(UBRRL) + HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); +#elif defined(UBRR0H) && defined(UBRR0L) + HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); +#elif defined(USBCON) + // do nothing - Serial object and buffers are initialized in CDC code +#else + #error no serial port defined (port 0) +#endif + +#if defined(UBRR1H) + HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); +#endif +#if defined(UBRR2H) + HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); +#endif +#if defined(UBRR3H) + HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); +#endif + +#endif // whole file + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.h new file mode 100644 index 000000000..a73117f56 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.h @@ -0,0 +1,115 @@ +/* + HardwareSerial.h - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 28 September 2010 by Mark Sproul + Modified 14 August 2012 by Alarus +*/ + +#ifndef HardwareSerial_h +#define HardwareSerial_h + +#include + +#include "Stream.h" + +struct ring_buffer; + +class HardwareSerial : public Stream +{ + private: + ring_buffer *_rx_buffer; + ring_buffer *_tx_buffer; + volatile uint8_t *_ubrrh; + volatile uint8_t *_ubrrl; + volatile uint8_t *_ucsra; + volatile uint8_t *_ucsrb; + volatile uint8_t *_ucsrc; + volatile uint8_t *_udr; + uint8_t _rxen; + uint8_t _txen; + uint8_t _rxcie; + uint8_t _udrie; + uint8_t _u2x; + bool transmitting; + public: + HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, + volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, + volatile uint8_t *ucsra, volatile uint8_t *ucsrb, + volatile uint8_t *ucsrc, volatile uint8_t *udr, + uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); + void begin(unsigned long); + void begin(unsigned long, uint8_t); + void end(); + virtual int available(void); + virtual int peek(void); + virtual int read(void); + virtual void flush(void); + virtual size_t write(uint8_t); + inline size_t write(unsigned long n) { return write((uint8_t)n); } + inline size_t write(long n) { return write((uint8_t)n); } + inline size_t write(unsigned int n) { return write((uint8_t)n); } + inline size_t write(int n) { return write((uint8_t)n); } + using Print::write; // pull in write(str) and write(buf, size) from Print + operator bool(); +}; + +// Define config for Serial.begin(baud, config); +#define SERIAL_5N1 0x00 +#define SERIAL_6N1 0x02 +#define SERIAL_7N1 0x04 +#define SERIAL_8N1 0x06 +#define SERIAL_5N2 0x08 +#define SERIAL_6N2 0x0A +#define SERIAL_7N2 0x0C +#define SERIAL_8N2 0x0E +#define SERIAL_5E1 0x20 +#define SERIAL_6E1 0x22 +#define SERIAL_7E1 0x24 +#define SERIAL_8E1 0x26 +#define SERIAL_5E2 0x28 +#define SERIAL_6E2 0x2A +#define SERIAL_7E2 0x2C +#define SERIAL_8E2 0x2E +#define SERIAL_5O1 0x30 +#define SERIAL_6O1 0x32 +#define SERIAL_7O1 0x34 +#define SERIAL_8O1 0x36 +#define SERIAL_5O2 0x38 +#define SERIAL_6O2 0x3A +#define SERIAL_7O2 0x3C +#define SERIAL_8O2 0x3E + +#if defined(UBRRH) || defined(UBRR0H) + extern HardwareSerial Serial; +#elif defined(USBCON) + #include "USBAPI.h" +// extern HardwareSerial Serial_; +#endif +#if defined(UBRR1H) + extern HardwareSerial Serial1; +#endif +#if defined(UBRR2H) + extern HardwareSerial Serial2; +#endif +#if defined(UBRR3H) + extern HardwareSerial Serial3; +#endif + +extern void serialEventRun(void) __attribute__((weak)); + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.cpp new file mode 100644 index 000000000..fe3deb77a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.cpp @@ -0,0 +1,56 @@ + +#include +#include + +IPAddress::IPAddress() +{ + memset(_address, 0, sizeof(_address)); +} + +IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) +{ + _address[0] = first_octet; + _address[1] = second_octet; + _address[2] = third_octet; + _address[3] = fourth_octet; +} + +IPAddress::IPAddress(uint32_t address) +{ + memcpy(_address, &address, sizeof(_address)); +} + +IPAddress::IPAddress(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); +} + +IPAddress& IPAddress::operator=(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); + return *this; +} + +IPAddress& IPAddress::operator=(uint32_t address) +{ + memcpy(_address, (const uint8_t *)&address, sizeof(_address)); + return *this; +} + +bool IPAddress::operator==(const uint8_t* addr) +{ + return memcmp(addr, _address, sizeof(_address)) == 0; +} + +size_t IPAddress::printTo(Print& p) const +{ + size_t n = 0; + for (int i =0; i < 3; i++) + { + n += p.print(_address[i], DEC); + n += p.print('.'); + } + n += p.print(_address[3], DEC); + return n; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.h new file mode 100644 index 000000000..2585aec0e --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.h @@ -0,0 +1,76 @@ +/* + * + * MIT License: + * Copyright (c) 2011 Adrian McEwen + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * adrianm@mcqn.com 1/1/2011 + */ + +#ifndef IPAddress_h +#define IPAddress_h + +#include + +// A class to make it easier to handle and pass around IP addresses + +class IPAddress : public Printable { +private: + uint8_t _address[4]; // IPv4 address + // Access the raw byte array containing the address. Because this returns a pointer + // to the internal structure rather than a copy of the address this function should only + // be used when you know that the usage of the returned uint8_t* will be transient and not + // stored. + uint8_t* raw_address() { return _address; }; + +public: + // Constructors + IPAddress(); + IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); + IPAddress(uint32_t address); + IPAddress(const uint8_t *address); + + // Overloaded cast operator to allow IPAddress objects to be used where a pointer + // to a four-byte uint8_t array is expected + operator uint32_t() { return *((uint32_t*)_address); }; + bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; + bool operator==(const uint8_t* addr); + + // Overloaded index operator to allow getting and setting individual octets of the address + uint8_t operator[](int index) const { return _address[index]; }; + uint8_t& operator[](int index) { return _address[index]; }; + + // Overloaded copy operators to allow initialisation of IPAddress objects from other types + IPAddress& operator=(const uint8_t *address); + IPAddress& operator=(uint32_t address); + + virtual size_t printTo(Print& p) const; + + friend class EthernetClass; + friend class UDP; + friend class Client; + friend class Server; + friend class DhcpClass; + friend class DNSClient; +}; + +const IPAddress INADDR_NONE(0,0,0,0); + + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Platform.h new file mode 100644 index 000000000..8b8f74277 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Platform.h @@ -0,0 +1,23 @@ + +#ifndef __PLATFORM_H__ +#define __PLATFORM_H__ + +#include +#include +#include +#include +#include + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned long u32; + +#include "Arduino.h" + +#if defined(USBCON) + #include "USBDesc.h" + #include "USBCore.h" + #include "USBAPI.h" +#endif /* if defined(USBCON) */ + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.cpp new file mode 100644 index 000000000..53961ec47 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.cpp @@ -0,0 +1,268 @@ +/* + Print.cpp - Base class that provides print() and println() + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis + */ + +#include +#include +#include +#include +#include "Arduino.h" + +#include "Print.h" + +// Public Methods ////////////////////////////////////////////////////////////// + +/* default implementation: may be overridden */ +size_t Print::write(const uint8_t *buffer, size_t size) +{ + size_t n = 0; + while (size--) { + n += write(*buffer++); + } + return n; +} + +size_t Print::print(const __FlashStringHelper *ifsh) +{ + const char PROGMEM *p = (const char PROGMEM *)ifsh; + size_t n = 0; + while (1) { + unsigned char c = pgm_read_byte(p++); + if (c == 0) break; + n += write(c); + } + return n; +} + +size_t Print::print(const String &s) +{ + size_t n = 0; + for (uint16_t i = 0; i < s.length(); i++) { + n += write(s[i]); + } + return n; +} + +size_t Print::print(const char str[]) +{ + return write(str); +} + +size_t Print::print(char c) +{ + return write(c); +} + +size_t Print::print(unsigned char b, int base) +{ + return print((unsigned long) b, base); +} + +size_t Print::print(int n, int base) +{ + return print((long) n, base); +} + +size_t Print::print(unsigned int n, int base) +{ + return print((unsigned long) n, base); +} + +size_t Print::print(long n, int base) +{ + if (base == 0) { + return write(n); + } else if (base == 10) { + if (n < 0) { + int t = print('-'); + n = -n; + return printNumber(n, 10) + t; + } + return printNumber(n, 10); + } else { + return printNumber(n, base); + } +} + +size_t Print::print(unsigned long n, int base) +{ + if (base == 0) return write(n); + else return printNumber(n, base); +} + +size_t Print::print(double n, int digits) +{ + return printFloat(n, digits); +} + +size_t Print::println(const __FlashStringHelper *ifsh) +{ + size_t n = print(ifsh); + n += println(); + return n; +} + +size_t Print::print(const Printable& x) +{ + return x.printTo(*this); +} + +size_t Print::println(void) +{ + size_t n = print('\r'); + n += print('\n'); + return n; +} + +size_t Print::println(const String &s) +{ + size_t n = print(s); + n += println(); + return n; +} + +size_t Print::println(const char c[]) +{ + size_t n = print(c); + n += println(); + return n; +} + +size_t Print::println(char c) +{ + size_t n = print(c); + n += println(); + return n; +} + +size_t Print::println(unsigned char b, int base) +{ + size_t n = print(b, base); + n += println(); + return n; +} + +size_t Print::println(int num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(unsigned int num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(long num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(unsigned long num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(double num, int digits) +{ + size_t n = print(num, digits); + n += println(); + return n; +} + +size_t Print::println(const Printable& x) +{ + size_t n = print(x); + n += println(); + return n; +} + +// Private Methods ///////////////////////////////////////////////////////////// + +size_t Print::printNumber(unsigned long n, uint8_t base) { + char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. + char *str = &buf[sizeof(buf) - 1]; + + *str = '\0'; + + // prevent crash if called with base == 1 + if (base < 2) base = 10; + + do { + unsigned long m = n; + n /= base; + char c = m - base * n; + *--str = c < 10 ? c + '0' : c + 'A' - 10; + } while(n); + + return write(str); +} + +size_t Print::printFloat(double number, uint8_t digits) +{ + size_t n = 0; + + if (isnan(number)) return print("nan"); + if (isinf(number)) return print("inf"); + if (number > 4294967040.0) return print ("ovf"); // constant determined empirically + if (number <-4294967040.0) return print ("ovf"); // constant determined empirically + + // Handle negative numbers + if (number < 0.0) + { + n += print('-'); + number = -number; + } + + // Round correctly so that print(1.999, 2) prints as "2.00" + double rounding = 0.5; + for (uint8_t i=0; i 0) { + n += print("."); + } + + // Extract digits from the remainder one at a time + while (digits-- > 0) + { + remainder *= 10.0; + int toPrint = int(remainder); + n += print(toPrint); + remainder -= toPrint; + } + + return n; +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.h new file mode 100644 index 000000000..dc7615087 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.h @@ -0,0 +1,81 @@ +/* + Print.h - Base class that provides print() and println() + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef Print_h +#define Print_h + +#include +#include // for size_t + +#include "WString.h" +#include "Printable.h" + +#define DEC 10 +#define HEX 16 +#define OCT 8 +#define BIN 2 + +class Print +{ + private: + int write_error; + size_t printNumber(unsigned long, uint8_t); + size_t printFloat(double, uint8_t); + protected: + void setWriteError(int err = 1) { write_error = err; } + public: + Print() : write_error(0) {} + + int getWriteError() { return write_error; } + void clearWriteError() { setWriteError(0); } + + virtual size_t write(uint8_t) = 0; + size_t write(const char *str) { + if (str == NULL) return 0; + return write((const uint8_t *)str, strlen(str)); + } + virtual size_t write(const uint8_t *buffer, size_t size); + + size_t print(const __FlashStringHelper *); + size_t print(const String &); + size_t print(const char[]); + size_t print(char); + size_t print(unsigned char, int = DEC); + size_t print(int, int = DEC); + size_t print(unsigned int, int = DEC); + size_t print(long, int = DEC); + size_t print(unsigned long, int = DEC); + size_t print(double, int = 2); + size_t print(const Printable&); + + size_t println(const __FlashStringHelper *); + size_t println(const String &s); + size_t println(const char[]); + size_t println(char); + size_t println(unsigned char, int = DEC); + size_t println(int, int = DEC); + size_t println(unsigned int, int = DEC); + size_t println(long, int = DEC); + size_t println(unsigned long, int = DEC); + size_t println(double, int = 2); + size_t println(const Printable&); + size_t println(void); +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Printable.h new file mode 100644 index 000000000..d03c9af62 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Printable.h @@ -0,0 +1,40 @@ +/* + Printable.h - Interface class that allows printing of complex types + Copyright (c) 2011 Adrian McEwen. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef Printable_h +#define Printable_h + +#include + +class Print; + +/** The Printable class provides a way for new classes to allow themselves to be printed. + By deriving from Printable and implementing the printTo method, it will then be possible + for users to print out instances of this class by passing them into the usual + Print::print and Print::println methods. +*/ + +class Printable +{ + public: + virtual size_t printTo(Print& p) const = 0; +}; + +#endif + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Server.h new file mode 100644 index 000000000..9674c7626 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Server.h @@ -0,0 +1,9 @@ +#ifndef server_h +#define server_h + +class Server : public Print { +public: + virtual void begin() =0; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.cpp new file mode 100644 index 000000000..aafb7fcf9 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.cpp @@ -0,0 +1,270 @@ +/* + Stream.cpp - adds parsing methods to Stream class + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Created July 2011 + parsing functions based on TextFinder library by Michael Margolis + */ + +#include "Arduino.h" +#include "Stream.h" + +#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait +#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field + +// private method to read stream with timeout +int Stream::timedRead() +{ + int c; + _startMillis = millis(); + do { + c = read(); + if (c >= 0) return c; + } while(millis() - _startMillis < _timeout); + return -1; // -1 indicates timeout +} + +// private method to peek stream with timeout +int Stream::timedPeek() +{ + int c; + _startMillis = millis(); + do { + c = peek(); + if (c >= 0) return c; + } while(millis() - _startMillis < _timeout); + return -1; // -1 indicates timeout +} + +// returns peek of the next digit in the stream or -1 if timeout +// discards non-numeric characters +int Stream::peekNextDigit() +{ + int c; + while (1) { + c = timedPeek(); + if (c < 0) return c; // timeout + if (c == '-') return c; + if (c >= '0' && c <= '9') return c; + read(); // discard non-numeric + } +} + +// Public Methods +////////////////////////////////////////////////////////////// + +void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait +{ + _timeout = timeout; +} + + // find returns true if the target string is found +bool Stream::find(char *target) +{ + return findUntil(target, NULL); +} + +// reads data from the stream until the target string of given length is found +// returns true if target string is found, false if timed out +bool Stream::find(char *target, size_t length) +{ + return findUntil(target, length, NULL, 0); +} + +// as find but search ends if the terminator string is found +bool Stream::findUntil(char *target, char *terminator) +{ + return findUntil(target, strlen(target), terminator, strlen(terminator)); +} + +// reads data from the stream until the target string of the given length is found +// search terminated if the terminator string is found +// returns true if target string is found, false if terminated or timed out +bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) +{ + size_t index = 0; // maximum target string length is 64k bytes! + size_t termIndex = 0; + int c; + + if( *target == 0) + return true; // return true if target is a null string + while( (c = timedRead()) > 0){ + + if(c != target[index]) + index = 0; // reset index if any char does not match + + if( c == target[index]){ + //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); + if(++index >= targetLen){ // return true if all chars in the target match + return true; + } + } + + if(termLen > 0 && c == terminator[termIndex]){ + if(++termIndex >= termLen) + return false; // return false if terminate string found before target string + } + else + termIndex = 0; + } + return false; +} + + +// returns the first valid (long) integer value from the current position. +// initial characters that are not digits (or the minus sign) are skipped +// function is terminated by the first character that is not a digit. +long Stream::parseInt() +{ + return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) +} + +// as above but a given skipChar is ignored +// this allows format characters (typically commas) in values to be ignored +long Stream::parseInt(char skipChar) +{ + boolean isNegative = false; + long value = 0; + int c; + + c = peekNextDigit(); + // ignore non numeric leading characters + if(c < 0) + return 0; // zero returned if timeout + + do{ + if(c == skipChar) + ; // ignore this charactor + else if(c == '-') + isNegative = true; + else if(c >= '0' && c <= '9') // is c a digit? + value = value * 10 + c - '0'; + read(); // consume the character we got with peek + c = timedPeek(); + } + while( (c >= '0' && c <= '9') || c == skipChar ); + + if(isNegative) + value = -value; + return value; +} + + +// as parseInt but returns a floating point value +float Stream::parseFloat() +{ + return parseFloat(NO_SKIP_CHAR); +} + +// as above but the given skipChar is ignored +// this allows format characters (typically commas) in values to be ignored +float Stream::parseFloat(char skipChar){ + boolean isNegative = false; + boolean isFraction = false; + long value = 0; + char c; + float fraction = 1.0; + + c = peekNextDigit(); + // ignore non numeric leading characters + if(c < 0) + return 0; // zero returned if timeout + + do{ + if(c == skipChar) + ; // ignore + else if(c == '-') + isNegative = true; + else if (c == '.') + isFraction = true; + else if(c >= '0' && c <= '9') { // is c a digit? + value = value * 10 + c - '0'; + if(isFraction) + fraction *= 0.1; + } + read(); // consume the character we got with peek + c = timedPeek(); + } + while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); + + if(isNegative) + value = -value; + if(isFraction) + return value * fraction; + else + return value; +} + +// read characters from stream into buffer +// terminates if length characters have been read, or timeout (see setTimeout) +// returns the number of characters placed in the buffer +// the buffer is NOT null terminated. +// +size_t Stream::readBytes(char *buffer, size_t length) +{ + size_t count = 0; + while (count < length) { + int c = timedRead(); + if (c < 0) break; + *buffer++ = (char)c; + count++; + } + return count; +} + + +// as readBytes with terminator character +// terminates if length characters have been read, timeout, or if the terminator character detected +// returns the number of characters placed in the buffer (0 means no valid data found) + +size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) +{ + if (length < 1) return 0; + size_t index = 0; + while (index < length) { + int c = timedRead(); + if (c < 0 || c == terminator) break; + *buffer++ = (char)c; + index++; + } + return index; // return number of characters, not including null terminator +} + +String Stream::readString() +{ + String ret; + int c = timedRead(); + while (c >= 0) + { + ret += (char)c; + c = timedRead(); + } + return ret; +} + +String Stream::readStringUntil(char terminator) +{ + String ret; + int c = timedRead(); + while (c >= 0 && c != terminator) + { + ret += (char)c; + c = timedRead(); + } + return ret; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.h new file mode 100644 index 000000000..58bbf752f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.h @@ -0,0 +1,96 @@ +/* + Stream.h - base class for character-based streams. + Copyright (c) 2010 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + parsing functions based on TextFinder library by Michael Margolis +*/ + +#ifndef Stream_h +#define Stream_h + +#include +#include "Print.h" + +// compatability macros for testing +/* +#define getInt() parseInt() +#define getInt(skipChar) parseInt(skipchar) +#define getFloat() parseFloat() +#define getFloat(skipChar) parseFloat(skipChar) +#define getString( pre_string, post_string, buffer, length) +readBytesBetween( pre_string, terminator, buffer, length) +*/ + +class Stream : public Print +{ + private: + unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read + unsigned long _startMillis; // used for timeout measurement + int timedRead(); // private method to read stream with timeout + int timedPeek(); // private method to peek stream with timeout + int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout + + public: + virtual int available() = 0; + virtual int read() = 0; + virtual int peek() = 0; + virtual void flush() = 0; + + Stream() {_timeout=1000;} + +// parsing methods + + void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second + + bool find(char *target); // reads data from the stream until the target string is found + // returns true if target string is found, false if timed out (see setTimeout) + + bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found + // returns true if target string is found, false if timed out + + bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found + + bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found + + + long parseInt(); // returns the first valid (long) integer value from the current position. + // initial characters that are not digits (or the minus sign) are skipped + // integer is terminated by the first character that is not a digit. + + float parseFloat(); // float version of parseInt + + size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer + // terminates if length characters have been read or timeout (see setTimeout) + // returns the number of characters placed in the buffer (0 means no valid data found) + + size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character + // terminates if length characters have been read, timeout, or if the terminator character detected + // returns the number of characters placed in the buffer (0 means no valid data found) + + // Arduino String functions to be added here + String readString(); + String readStringUntil(char terminator); + + protected: + long parseInt(char skipChar); // as above but the given skipChar is ignored + // as above but the given skipChar is ignored + // this allows format characters (typically commas) in values to be ignored + + float parseFloat(char skipChar); // as above but the given skipChar is ignored +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Tone.cpp new file mode 100644 index 000000000..964f2ecae --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Tone.cpp @@ -0,0 +1,617 @@ +/* Tone.cpp + + A Tone Generator Library + + Written by Brett Hagman + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Version Modified By Date Comments +------- ----------- -------- -------- +0001 B Hagman 09/08/02 Initial coding +0002 B Hagman 09/08/18 Multiple pins +0003 B Hagman 09/08/18 Moved initialization from constructor to begin() +0004 B Hagman 09/09/26 Fixed problems with ATmega8 +0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers + 09/11/25 Changed pin toggle method to XOR + 09/11/25 Fixed timer0 from being excluded +0006 D Mellis 09/12/29 Replaced objects with functions +0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register +0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY +*************************************************/ + +#include +#include +#include "Arduino.h" +#include "pins_arduino.h" + +#if defined(TCCR2) // ATmega8, ATmega128 or similar +#define TCCR2A TCCR2 +#define TCCR2B TCCR2 +#define COM2A1 COM21 +#define COM2A0 COM20 +#define OCR2A OCR2 +#define TIMSK2 TIMSK +#define OCIE2A OCIE2 +#define TIMER2_COMPA_vect TIMER2_COMP_vect +#define TIMSK1 TIMSK +#endif + +// timerx_toggle_count: +// > 0 - duration specified +// = 0 - stopped +// < 0 - infinitely (until stop() method called, or new play() called) + +#if defined(TIMSK0) +volatile long timer0_toggle_count; +volatile uint8_t *timer0_pin_port; +volatile uint8_t timer0_pin_mask; +#endif + +volatile long timer1_toggle_count; +volatile uint8_t *timer1_pin_port; +volatile uint8_t timer1_pin_mask; +volatile long timer2_toggle_count; +volatile uint8_t *timer2_pin_port; +volatile uint8_t timer2_pin_mask; + +#if defined(TIMSK3) +volatile long timer3_toggle_count; +volatile uint8_t *timer3_pin_port; +volatile uint8_t timer3_pin_mask; +#endif + +#if defined(TIMSK4) +volatile long timer4_toggle_count; +volatile uint8_t *timer4_pin_port; +volatile uint8_t timer4_pin_mask; +#endif + +#if defined(TIMSK5) +volatile long timer5_toggle_count; +volatile uint8_t *timer5_pin_port; +volatile uint8_t timer5_pin_mask; +#endif + + +// Don't distinguish by chip type, but by register presence +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; + +#elif defined(__AVR_ATmega8__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; + +#elif defined(__AVR_ATmega32U4__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER3 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; + +#else + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +// Leave timer 0 to last. +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; + +#endif + + + +static int8_t toneBegin(uint8_t _pin) +{ + int8_t _timer = -1; + + // if we're already using the pin, the timer should be configured. + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == _pin) { + return pgm_read_byte(tone_pin_to_timer_PGM + i); + } + } + + // search for an unused timer. + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == 255) { + tone_pins[i] = _pin; + _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); + break; + } + } + + if (_timer != -1) + { + // Set timer specific stuff + // All timers in CTC mode + // 8 bit timers will require changing prescalar values, + // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar + switch (_timer) + { + #if defined(TCCR0A) && defined(TCCR0B) + case 0: + // 8 bit timer + TCCR0A = 0; + TCCR0B = 0; + bitWrite(TCCR0A, WGM01, 1); + bitWrite(TCCR0B, CS00, 1); + timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer0_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) + case 1: + // 16 bit timer + TCCR1A = 0; + TCCR1B = 0; + bitWrite(TCCR1B, WGM12, 1); + bitWrite(TCCR1B, CS10, 1); + timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer1_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR2A) && defined(TCCR2B) + case 2: + // 8 bit timer + TCCR2A = 0; + TCCR2B = 0; + bitWrite(TCCR2A, WGM21, 1); + bitWrite(TCCR2B, CS20, 1); + timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer2_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) + case 3: + // 16 bit timer + TCCR3A = 0; + TCCR3B = 0; + bitWrite(TCCR3B, WGM32, 1); + bitWrite(TCCR3B, CS30, 1); + timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer3_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) + case 4: + // 16 bit timer + TCCR4A = 0; + TCCR4B = 0; + #if defined(WGM42) + bitWrite(TCCR4B, WGM42, 1); + #elif defined(CS43) + #warning this may not be correct + // atmega32u4 + bitWrite(TCCR4B, CS43, 1); + #endif + bitWrite(TCCR4B, CS40, 1); + timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer4_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) + case 5: + // 16 bit timer + TCCR5A = 0; + TCCR5B = 0; + bitWrite(TCCR5B, WGM52, 1); + bitWrite(TCCR5B, CS50, 1); + timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer5_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + } + } + + return _timer; +} + + + +// frequency (in hertz) and duration (in milliseconds). + +void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) +{ + uint8_t prescalarbits = 0b001; + long toggle_count = 0; + uint32_t ocr = 0; + int8_t _timer; + + _timer = toneBegin(_pin); + + if (_timer >= 0) + { + // Set the pinMode as OUTPUT + pinMode(_pin, OUTPUT); + + // if we are using an 8 bit timer, scan through prescalars to find the best fit + if (_timer == 0 || _timer == 2) + { + ocr = F_CPU / frequency / 2 - 1; + prescalarbits = 0b001; // ck/1: same for both timers + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 8 - 1; + prescalarbits = 0b010; // ck/8: same for both timers + + if (_timer == 2 && ocr > 255) + { + ocr = F_CPU / frequency / 2 / 32 - 1; + prescalarbits = 0b011; + } + + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 64 - 1; + prescalarbits = _timer == 0 ? 0b011 : 0b100; + + if (_timer == 2 && ocr > 255) + { + ocr = F_CPU / frequency / 2 / 128 - 1; + prescalarbits = 0b101; + } + + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 256 - 1; + prescalarbits = _timer == 0 ? 0b100 : 0b110; + if (ocr > 255) + { + // can't do any better than /1024 + ocr = F_CPU / frequency / 2 / 1024 - 1; + prescalarbits = _timer == 0 ? 0b101 : 0b111; + } + } + } + } + +#if defined(TCCR0B) + if (_timer == 0) + { + TCCR0B = prescalarbits; + } + else +#endif +#if defined(TCCR2B) + { + TCCR2B = prescalarbits; + } +#else + { + // dummy place holder to make the above ifdefs work + } +#endif + } + else + { + // two choices for the 16 bit timers: ck/1 or ck/64 + ocr = F_CPU / frequency / 2 - 1; + + prescalarbits = 0b001; + if (ocr > 0xffff) + { + ocr = F_CPU / frequency / 2 / 64 - 1; + prescalarbits = 0b011; + } + + if (_timer == 1) + { +#if defined(TCCR1B) + TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; +#endif + } +#if defined(TCCR3B) + else if (_timer == 3) + TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; +#endif +#if defined(TCCR4B) + else if (_timer == 4) + TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; +#endif +#if defined(TCCR5B) + else if (_timer == 5) + TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; +#endif + + } + + + // Calculate the toggle count + if (duration > 0) + { + toggle_count = 2 * frequency * duration / 1000; + } + else + { + toggle_count = -1; + } + + // Set the OCR for the given timer, + // set the toggle count, + // then turn on the interrupts + switch (_timer) + { + +#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) + case 0: + OCR0A = ocr; + timer0_toggle_count = toggle_count; + bitWrite(TIMSK0, OCIE0A, 1); + break; +#endif + + case 1: +#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) + OCR1A = ocr; + timer1_toggle_count = toggle_count; + bitWrite(TIMSK1, OCIE1A, 1); +#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) + // this combination is for at least the ATmega32 + OCR1A = ocr; + timer1_toggle_count = toggle_count; + bitWrite(TIMSK, OCIE1A, 1); +#endif + break; + +#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) + case 2: + OCR2A = ocr; + timer2_toggle_count = toggle_count; + bitWrite(TIMSK2, OCIE2A, 1); + break; +#endif + +#if defined(TIMSK3) + case 3: + OCR3A = ocr; + timer3_toggle_count = toggle_count; + bitWrite(TIMSK3, OCIE3A, 1); + break; +#endif + +#if defined(TIMSK4) + case 4: + OCR4A = ocr; + timer4_toggle_count = toggle_count; + bitWrite(TIMSK4, OCIE4A, 1); + break; +#endif + +#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) + case 5: + OCR5A = ocr; + timer5_toggle_count = toggle_count; + bitWrite(TIMSK5, OCIE5A, 1); + break; +#endif + + } + } +} + + +// XXX: this function only works properly for timer 2 (the only one we use +// currently). for the others, it should end the tone, but won't restore +// proper PWM functionality for the timer. +void disableTimer(uint8_t _timer) +{ + switch (_timer) + { + case 0: + #if defined(TIMSK0) + TIMSK0 = 0; + #elif defined(TIMSK) + TIMSK = 0; // atmega32 + #endif + break; + +#if defined(TIMSK1) && defined(OCIE1A) + case 1: + bitWrite(TIMSK1, OCIE1A, 0); + break; +#endif + + case 2: + #if defined(TIMSK2) && defined(OCIE2A) + bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt + #endif + #if defined(TCCR2A) && defined(WGM20) + TCCR2A = (1 << WGM20); + #endif + #if defined(TCCR2B) && defined(CS22) + TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); + #endif + #if defined(OCR2A) + OCR2A = 0; + #endif + break; + +#if defined(TIMSK3) + case 3: + TIMSK3 = 0; + break; +#endif + +#if defined(TIMSK4) + case 4: + TIMSK4 = 0; + break; +#endif + +#if defined(TIMSK5) + case 5: + TIMSK5 = 0; + break; +#endif + } +} + + +void noTone(uint8_t _pin) +{ + int8_t _timer = -1; + + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == _pin) { + _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); + tone_pins[i] = 255; + } + } + + disableTimer(_timer); + + digitalWrite(_pin, 0); +} + +#ifdef USE_TIMER0 +ISR(TIMER0_COMPA_vect) +{ + if (timer0_toggle_count != 0) + { + // toggle the pin + *timer0_pin_port ^= timer0_pin_mask; + + if (timer0_toggle_count > 0) + timer0_toggle_count--; + } + else + { + disableTimer(0); + *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER1 +ISR(TIMER1_COMPA_vect) +{ + if (timer1_toggle_count != 0) + { + // toggle the pin + *timer1_pin_port ^= timer1_pin_mask; + + if (timer1_toggle_count > 0) + timer1_toggle_count--; + } + else + { + disableTimer(1); + *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER2 +ISR(TIMER2_COMPA_vect) +{ + + if (timer2_toggle_count != 0) + { + // toggle the pin + *timer2_pin_port ^= timer2_pin_mask; + + if (timer2_toggle_count > 0) + timer2_toggle_count--; + } + else + { + // need to call noTone() so that the tone_pins[] entry is reset, so the + // timer gets initialized next time we call tone(). + // XXX: this assumes timer 2 is always the first one used. + noTone(tone_pins[0]); +// disableTimer(2); +// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER3 +ISR(TIMER3_COMPA_vect) +{ + if (timer3_toggle_count != 0) + { + // toggle the pin + *timer3_pin_port ^= timer3_pin_mask; + + if (timer3_toggle_count > 0) + timer3_toggle_count--; + } + else + { + disableTimer(3); + *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER4 +ISR(TIMER4_COMPA_vect) +{ + if (timer4_toggle_count != 0) + { + // toggle the pin + *timer4_pin_port ^= timer4_pin_mask; + + if (timer4_toggle_count > 0) + timer4_toggle_count--; + } + else + { + disableTimer(4); + *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER5 +ISR(TIMER5_COMPA_vect) +{ + if (timer5_toggle_count != 0) + { + // toggle the pin + *timer5_pin_port ^= timer5_pin_mask; + + if (timer5_toggle_count > 0) + timer5_toggle_count--; + } + else + { + disableTimer(5); + *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop + } +} +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBAPI.h new file mode 100644 index 000000000..eb2e5937d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBAPI.h @@ -0,0 +1,196 @@ + + +#ifndef __USBAPI__ +#define __USBAPI__ + +#if defined(USBCON) + +//================================================================================ +//================================================================================ +// USB + +class USBDevice_ +{ +public: + USBDevice_(); + bool configured(); + + void attach(); + void detach(); // Serial port goes down too... + void poll(); +}; +extern USBDevice_ USBDevice; + +//================================================================================ +//================================================================================ +// Serial over CDC (Serial1 is the physical port) + +class Serial_ : public Stream +{ +private: + ring_buffer *_cdc_rx_buffer; +public: + void begin(uint16_t baud_count); + void end(void); + + virtual int available(void); + virtual void accept(void); + virtual int peek(void); + virtual int read(void); + virtual void flush(void); + virtual size_t write(uint8_t); + using Print::write; // pull in write(str) and write(buf, size) from Print + operator bool(); +}; +extern Serial_ Serial; + +//================================================================================ +//================================================================================ +// Mouse + +#define MOUSE_LEFT 1 +#define MOUSE_RIGHT 2 +#define MOUSE_MIDDLE 4 +#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) + +class Mouse_ +{ +private: + uint8_t _buttons; + void buttons(uint8_t b); +public: + Mouse_(void); + void begin(void); + void end(void); + void click(uint8_t b = MOUSE_LEFT); + void move(signed char x, signed char y, signed char wheel = 0); + void press(uint8_t b = MOUSE_LEFT); // press LEFT by default + void release(uint8_t b = MOUSE_LEFT); // release LEFT by default + bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default +}; +extern Mouse_ Mouse; + +//================================================================================ +//================================================================================ +// Keyboard + +#define KEY_LEFT_CTRL 0x80 +#define KEY_LEFT_SHIFT 0x81 +#define KEY_LEFT_ALT 0x82 +#define KEY_LEFT_GUI 0x83 +#define KEY_RIGHT_CTRL 0x84 +#define KEY_RIGHT_SHIFT 0x85 +#define KEY_RIGHT_ALT 0x86 +#define KEY_RIGHT_GUI 0x87 + +#define KEY_UP_ARROW 0xDA +#define KEY_DOWN_ARROW 0xD9 +#define KEY_LEFT_ARROW 0xD8 +#define KEY_RIGHT_ARROW 0xD7 +#define KEY_BACKSPACE 0xB2 +#define KEY_TAB 0xB3 +#define KEY_RETURN 0xB0 +#define KEY_ESC 0xB1 +#define KEY_INSERT 0xD1 +#define KEY_DELETE 0xD4 +#define KEY_PAGE_UP 0xD3 +#define KEY_PAGE_DOWN 0xD6 +#define KEY_HOME 0xD2 +#define KEY_END 0xD5 +#define KEY_CAPS_LOCK 0xC1 +#define KEY_F1 0xC2 +#define KEY_F2 0xC3 +#define KEY_F3 0xC4 +#define KEY_F4 0xC5 +#define KEY_F5 0xC6 +#define KEY_F6 0xC7 +#define KEY_F7 0xC8 +#define KEY_F8 0xC9 +#define KEY_F9 0xCA +#define KEY_F10 0xCB +#define KEY_F11 0xCC +#define KEY_F12 0xCD + +// Low level key report: up to 6 keys and shift, ctrl etc at once +typedef struct +{ + uint8_t modifiers; + uint8_t reserved; + uint8_t keys[6]; +} KeyReport; + +class Keyboard_ : public Print +{ +private: + KeyReport _keyReport; + void sendReport(KeyReport* keys); +public: + Keyboard_(void); + void begin(void); + void end(void); + virtual size_t write(uint8_t k); + virtual size_t press(uint8_t k); + virtual size_t release(uint8_t k); + virtual void releaseAll(void); +}; +extern Keyboard_ Keyboard; + +//================================================================================ +//================================================================================ +// Low level API + +typedef struct +{ + uint8_t bmRequestType; + uint8_t bRequest; + uint8_t wValueL; + uint8_t wValueH; + uint16_t wIndex; + uint16_t wLength; +} Setup; + +//================================================================================ +//================================================================================ +// HID 'Driver' + +int HID_GetInterface(uint8_t* interfaceNum); +int HID_GetDescriptor(int i); +bool HID_Setup(Setup& setup); +void HID_SendReport(uint8_t id, const void* data, int len); + +//================================================================================ +//================================================================================ +// MSC 'Driver' + +int MSC_GetInterface(uint8_t* interfaceNum); +int MSC_GetDescriptor(int i); +bool MSC_Setup(Setup& setup); +bool MSC_Data(uint8_t rx,uint8_t tx); + +//================================================================================ +//================================================================================ +// CSC 'Driver' + +int CDC_GetInterface(uint8_t* interfaceNum); +int CDC_GetDescriptor(int i); +bool CDC_Setup(Setup& setup); + +//================================================================================ +//================================================================================ + +#define TRANSFER_PGM 0x80 +#define TRANSFER_RELEASE 0x40 +#define TRANSFER_ZERO 0x20 + +int USB_SendControl(uint8_t flags, const void* d, int len); +int USB_RecvControl(void* d, int len); + +uint8_t USB_Available(uint8_t ep); +int USB_Send(uint8_t ep, const void* data, int len); // blocking +int USB_Recv(uint8_t ep, void* data, int len); // non-blocking +int USB_Recv(uint8_t ep); // non-blocking +void USB_Flush(uint8_t ep); + +#endif + +#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.cpp new file mode 100644 index 000000000..d3e017065 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.cpp @@ -0,0 +1,684 @@ + + +/* Copyright (c) 2010, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include "USBDesc.h" + +#if defined(USBCON) + +#define EP_TYPE_CONTROL 0x00 +#define EP_TYPE_BULK_IN 0x81 +#define EP_TYPE_BULK_OUT 0x80 +#define EP_TYPE_INTERRUPT_IN 0xC1 +#define EP_TYPE_INTERRUPT_OUT 0xC0 +#define EP_TYPE_ISOCHRONOUS_IN 0x41 +#define EP_TYPE_ISOCHRONOUS_OUT 0x40 + +/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ +#define TX_RX_LED_PULSE_MS 100 +volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ +volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ + +//================================================================== +//================================================================== + +extern const u16 STRING_LANGUAGE[] PROGMEM; +extern const u16 STRING_IPRODUCT[] PROGMEM; +extern const u16 STRING_IMANUFACTURER[] PROGMEM; +extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; +extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; + +const u16 STRING_LANGUAGE[2] = { + (3<<8) | (2+2), + 0x0409 // English +}; + +const u16 STRING_IPRODUCT[17] = { + (3<<8) | (2+2*16), +#if USB_PID == 0x8036 + 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o' +#elif USB_PID == 0x8037 + 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' ' +#elif USB_PID == 0x803C + 'A','r','d','u','i','n','o',' ','E','s','p','l','o','r','a',' ' +#elif USB_PID == 0x9208 + 'L','i','l','y','P','a','d','U','S','B',' ',' ',' ',' ',' ',' ' +#else + 'U','S','B',' ','I','O',' ','B','o','a','r','d',' ',' ',' ',' ' +#endif +}; + +const u16 STRING_IMANUFACTURER[12] = { + (3<<8) | (2+2*11), +#if USB_VID == 0x2341 + 'A','r','d','u','i','n','o',' ','L','L','C' +#elif USB_VID == 0x1b4f + 'S','p','a','r','k','F','u','n',' ',' ',' ' +#else + 'U','n','k','n','o','w','n',' ',' ',' ',' ' +#endif +}; + +#ifdef CDC_ENABLED +#define DEVICE_CLASS 0x02 +#else +#define DEVICE_CLASS 0x00 +#endif + +// DEVICE DESCRIPTOR +const DeviceDescriptor USB_DeviceDescriptor = + D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); + +const DeviceDescriptor USB_DeviceDescriptorA = + D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); + +//================================================================== +//================================================================== + +volatile u8 _usbConfiguration = 0; + +static inline void WaitIN(void) +{ + while (!(UEINTX & (1< len) + n = len; + len -= n; + { + LockEP lock(ep); + if (ep & TRANSFER_ZERO) + { + while (n--) + Send8(0); + } + else if (ep & TRANSFER_PGM) + { + while (n--) + Send8(pgm_read_byte(data++)); + } + else + { + while (n--) + Send8(*data++); + } + if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer + ReleaseTX(); + } + } + TXLED1; // light the TX LED + TxLEDPulse = TX_RX_LED_PULSE_MS; + return r; +} + +extern const u8 _initEndpoints[] PROGMEM; +const u8 _initEndpoints[] = +{ + 0, + +#ifdef CDC_ENABLED + EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM + EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT + EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN +#endif + +#ifdef HID_ENABLED + EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT +#endif +}; + +#define EP_SINGLE_64 0x32 // EP0 +#define EP_DOUBLE_64 0x36 // Other endpoints + +static +void InitEP(u8 index, u8 type, u8 size) +{ + UENUM = index; + UECONX = 1; + UECFG0X = type; + UECFG1X = size; +} + +static +void InitEndpoints() +{ + for (u8 i = 1; i < sizeof(_initEndpoints); i++) + { + UENUM = i; + UECONX = 1; + UECFG0X = pgm_read_byte(_initEndpoints+i); + UECFG1X = EP_DOUBLE_64; + } + UERST = 0x7E; // And reset them + UERST = 0; +} + +// Handle CLASS_INTERFACE requests +static +bool ClassInterfaceRequest(Setup& setup) +{ + u8 i = setup.wIndex; + +#ifdef CDC_ENABLED + if (CDC_ACM_INTERFACE == i) + return CDC_Setup(setup); +#endif + +#ifdef HID_ENABLED + if (HID_INTERFACE == i) + return HID_Setup(setup); +#endif + return false; +} + +int _cmark; +int _cend; +void InitControl(int end) +{ + SetEP(0); + _cmark = 0; + _cend = end; +} + +static +bool SendControl(u8 d) +{ + if (_cmark < _cend) + { + if (!WaitForINOrOUT()) + return false; + Send8(d); + if (!((_cmark + 1) & 0x3F)) + ClearIN(); // Fifo is full, release this packet + } + _cmark++; + return true; +}; + +// Clipped by _cmark/_cend +int USB_SendControl(u8 flags, const void* d, int len) +{ + int sent = len; + const u8* data = (const u8*)d; + bool pgm = flags & TRANSFER_PGM; + while (len--) + { + u8 c = pgm ? pgm_read_byte(data++) : *data++; + if (!SendControl(c)) + return -1; + } + return sent; +} + +// Does not timeout or cross fifo boundaries +// Will only work for transfers <= 64 bytes +// TODO +int USB_RecvControl(void* d, int len) +{ + WaitOUT(); + Recv((u8*)d,len); + ClearOUT(); + return len; +} + +int SendInterfaces() +{ + int total = 0; + u8 interfaces = 0; + +#ifdef CDC_ENABLED + total = CDC_GetInterface(&interfaces); +#endif + +#ifdef HID_ENABLED + total += HID_GetInterface(&interfaces); +#endif + + return interfaces; +} + +// Construct a dynamic configuration descriptor +// This really needs dynamic endpoint allocation etc +// TODO +static +bool SendConfiguration(int maxlen) +{ + // Count and measure interfaces + InitControl(0); + int interfaces = SendInterfaces(); + ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); + + // Now send them + InitControl(maxlen); + USB_SendControl(0,&config,sizeof(ConfigDescriptor)); + SendInterfaces(); + return true; +} + +u8 _cdcComposite = 0; + +static +bool SendDescriptor(Setup& setup) +{ + u8 t = setup.wValueH; + if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) + return SendConfiguration(setup.wLength); + + InitControl(setup.wLength); +#ifdef HID_ENABLED + if (HID_REPORT_DESCRIPTOR_TYPE == t) + return HID_GetDescriptor(t); +#endif + + u8 desc_length = 0; + const u8* desc_addr = 0; + if (USB_DEVICE_DESCRIPTOR_TYPE == t) + { + if (setup.wLength == 8) + _cdcComposite = 1; + desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; + } + else if (USB_STRING_DESCRIPTOR_TYPE == t) + { + if (setup.wValueL == 0) + desc_addr = (const u8*)&STRING_LANGUAGE; + else if (setup.wValueL == IPRODUCT) + desc_addr = (const u8*)&STRING_IPRODUCT; + else if (setup.wValueL == IMANUFACTURER) + desc_addr = (const u8*)&STRING_IMANUFACTURER; + else + return false; + } + + if (desc_addr == 0) + return false; + if (desc_length == 0) + desc_length = pgm_read_byte(desc_addr); + + USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); + return true; +} + +// Endpoint 0 interrupt +ISR(USB_COM_vect) +{ + SetEP(0); + if (!ReceivedSetupInt()) + return; + + Setup setup; + Recv((u8*)&setup,8); + ClearSetupInt(); + + u8 requestType = setup.bmRequestType; + if (requestType & REQUEST_DEVICETOHOST) + WaitIN(); + else + ClearIN(); + + bool ok = true; + if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) + { + // Standard Requests + u8 r = setup.bRequest; + if (GET_STATUS == r) + { + Send8(0); // TODO + Send8(0); + } + else if (CLEAR_FEATURE == r) + { + } + else if (SET_FEATURE == r) + { + } + else if (SET_ADDRESS == r) + { + WaitIN(); + UDADDR = setup.wValueL | (1<> 8) & 0xFF) + +#define CDC_V1_10 0x0110 +#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 + +#define CDC_CALL_MANAGEMENT 0x01 +#define CDC_ABSTRACT_CONTROL_MODEL 0x02 +#define CDC_HEADER 0x00 +#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 +#define CDC_UNION 0x06 +#define CDC_CS_INTERFACE 0x24 +#define CDC_CS_ENDPOINT 0x25 +#define CDC_DATA_INTERFACE_CLASS 0x0A + +#define MSC_SUBCLASS_SCSI 0x06 +#define MSC_PROTOCOL_BULK_ONLY 0x50 + +#define HID_HID_DESCRIPTOR_TYPE 0x21 +#define HID_REPORT_DESCRIPTOR_TYPE 0x22 +#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 + + +// Device +typedef struct { + u8 len; // 18 + u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE + u16 usbVersion; // 0x200 + u8 deviceClass; + u8 deviceSubClass; + u8 deviceProtocol; + u8 packetSize0; // Packet 0 + u16 idVendor; + u16 idProduct; + u16 deviceVersion; // 0x100 + u8 iManufacturer; + u8 iProduct; + u8 iSerialNumber; + u8 bNumConfigurations; +} DeviceDescriptor; + +// Config +typedef struct { + u8 len; // 9 + u8 dtype; // 2 + u16 clen; // total length + u8 numInterfaces; + u8 config; + u8 iconfig; + u8 attributes; + u8 maxPower; +} ConfigDescriptor; + +// String + +// Interface +typedef struct +{ + u8 len; // 9 + u8 dtype; // 4 + u8 number; + u8 alternate; + u8 numEndpoints; + u8 interfaceClass; + u8 interfaceSubClass; + u8 protocol; + u8 iInterface; +} InterfaceDescriptor; + +// Endpoint +typedef struct +{ + u8 len; // 7 + u8 dtype; // 5 + u8 addr; + u8 attr; + u16 packetSize; + u8 interval; +} EndpointDescriptor; + +// Interface Association Descriptor +// Used to bind 2 interfaces together in CDC compostite device +typedef struct +{ + u8 len; // 8 + u8 dtype; // 11 + u8 firstInterface; + u8 interfaceCount; + u8 functionClass; + u8 funtionSubClass; + u8 functionProtocol; + u8 iInterface; +} IADDescriptor; + +// CDC CS interface descriptor +typedef struct +{ + u8 len; // 5 + u8 dtype; // 0x24 + u8 subtype; + u8 d0; + u8 d1; +} CDCCSInterfaceDescriptor; + +typedef struct +{ + u8 len; // 4 + u8 dtype; // 0x24 + u8 subtype; + u8 d0; +} CDCCSInterfaceDescriptor4; + +typedef struct +{ + u8 len; + u8 dtype; // 0x24 + u8 subtype; // 1 + u8 bmCapabilities; + u8 bDataInterface; +} CMFunctionalDescriptor; + +typedef struct +{ + u8 len; + u8 dtype; // 0x24 + u8 subtype; // 1 + u8 bmCapabilities; +} ACMFunctionalDescriptor; + +typedef struct +{ + // IAD + IADDescriptor iad; // Only needed on compound device + + // Control + InterfaceDescriptor cif; // + CDCCSInterfaceDescriptor header; + CMFunctionalDescriptor callManagement; // Call Management + ACMFunctionalDescriptor controlManagement; // ACM + CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION + EndpointDescriptor cifin; + + // Data + InterfaceDescriptor dif; + EndpointDescriptor in; + EndpointDescriptor out; +} CDCDescriptor; + +typedef struct +{ + InterfaceDescriptor msc; + EndpointDescriptor in; + EndpointDescriptor out; +} MSCDescriptor; + +typedef struct +{ + u8 len; // 9 + u8 dtype; // 0x21 + u8 addr; + u8 versionL; // 0x101 + u8 versionH; // 0x101 + u8 country; + u8 desctype; // 0x22 report + u8 descLenL; + u8 descLenH; +} HIDDescDescriptor; + +typedef struct +{ + InterfaceDescriptor hid; + HIDDescDescriptor desc; + EndpointDescriptor in; +} HIDDescriptor; + + +#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ + { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } + +#define D_CONFIG(_totalLength,_interfaces) \ + { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } + +#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ + { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } + +#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ + { 7, 5, _addr,_attr,_packetSize, _interval } + +#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ + { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } + +#define D_HIDREPORT(_descriptorLength) \ + { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } + +#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } +#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } + + +#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBDesc.h new file mode 100644 index 000000000..900713e0f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBDesc.h @@ -0,0 +1,63 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#define CDC_ENABLED +#define HID_ENABLED + + +#ifdef CDC_ENABLED +#define CDC_INTERFACE_COUNT 2 +#define CDC_ENPOINT_COUNT 3 +#else +#define CDC_INTERFACE_COUNT 0 +#define CDC_ENPOINT_COUNT 0 +#endif + +#ifdef HID_ENABLED +#define HID_INTERFACE_COUNT 1 +#define HID_ENPOINT_COUNT 1 +#else +#define HID_INTERFACE_COUNT 0 +#define HID_ENPOINT_COUNT 0 +#endif + +#define CDC_ACM_INTERFACE 0 // CDC ACM +#define CDC_DATA_INTERFACE 1 // CDC Data +#define CDC_FIRST_ENDPOINT 1 +#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First +#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) +#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) + +#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface +#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) +#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) + +#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) + +#ifdef CDC_ENABLED +#define CDC_RX CDC_ENDPOINT_OUT +#define CDC_TX CDC_ENDPOINT_IN +#endif + +#ifdef HID_ENABLED +#define HID_TX HID_ENDPOINT_INT +#endif + +#define IMANUFACTURER 1 +#define IPRODUCT 2 + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Udp.h new file mode 100644 index 000000000..dc5644b9d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Udp.h @@ -0,0 +1,88 @@ +/* + * Udp.cpp: Library to send/receive UDP packets. + * + * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) + * 1) UDP does not guarantee the order in which assembled UDP packets are received. This + * might not happen often in practice, but in larger network topologies, a UDP + * packet can be received out of sequence. + * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being + * aware of it. Again, this may not be a concern in practice on small local networks. + * For more information, see http://www.cafeaulait.org/course/week12/35.html + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +#ifndef udp_h +#define udp_h + +#include +#include + +class UDP : public Stream { + +public: + virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use + virtual void stop() =0; // Finish with the UDP socket + + // Sending UDP packets + + // Start building up a packet to send to the remote host specific in ip and port + // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port + virtual int beginPacket(IPAddress ip, uint16_t port) =0; + // Start building up a packet to send to the remote host specific in host and port + // Returns 1 if successful, 0 if there was a problem resolving the hostname or port + virtual int beginPacket(const char *host, uint16_t port) =0; + // Finish off this packet and send it + // Returns 1 if the packet was sent successfully, 0 if there was an error + virtual int endPacket() =0; + // Write a single byte into the packet + virtual size_t write(uint8_t) =0; + // Write size bytes from buffer into the packet + virtual size_t write(const uint8_t *buffer, size_t size) =0; + + // Start processing the next available incoming packet + // Returns the size of the packet in bytes, or 0 if no packets are available + virtual int parsePacket() =0; + // Number of bytes remaining in the current packet + virtual int available() =0; + // Read a single byte from the current packet + virtual int read() =0; + // Read up to len bytes from the current packet and place them into buffer + // Returns the number of bytes read, or 0 if none are available + virtual int read(unsigned char* buffer, size_t len) =0; + // Read up to len characters from the current packet and place them into buffer + // Returns the number of characters read, or 0 if none are available + virtual int read(char* buffer, size_t len) =0; + // Return the next byte from the current packet without moving on to the next byte + virtual int peek() =0; + virtual void flush() =0; // Finish reading the current packet + + // Return the IP address of the host who sent the current incoming packet + virtual IPAddress remoteIP() =0; + // Return the port of the host who sent the current incoming packet + virtual uint16_t remotePort() =0; +protected: + uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WCharacter.h new file mode 100644 index 000000000..79733b50a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WCharacter.h @@ -0,0 +1,168 @@ +/* + WCharacter.h - Character utility functions for Wiring & Arduino + Copyright (c) 2010 Hernando Barragan. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef Character_h +#define Character_h + +#include + +// WCharacter.h prototypes +inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); +inline boolean isAlpha(int c) __attribute__((always_inline)); +inline boolean isAscii(int c) __attribute__((always_inline)); +inline boolean isWhitespace(int c) __attribute__((always_inline)); +inline boolean isControl(int c) __attribute__((always_inline)); +inline boolean isDigit(int c) __attribute__((always_inline)); +inline boolean isGraph(int c) __attribute__((always_inline)); +inline boolean isLowerCase(int c) __attribute__((always_inline)); +inline boolean isPrintable(int c) __attribute__((always_inline)); +inline boolean isPunct(int c) __attribute__((always_inline)); +inline boolean isSpace(int c) __attribute__((always_inline)); +inline boolean isUpperCase(int c) __attribute__((always_inline)); +inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); +inline int toAscii(int c) __attribute__((always_inline)); +inline int toLowerCase(int c) __attribute__((always_inline)); +inline int toUpperCase(int c)__attribute__((always_inline)); + + +// Checks for an alphanumeric character. +// It is equivalent to (isalpha(c) || isdigit(c)). +inline boolean isAlphaNumeric(int c) +{ + return ( isalnum(c) == 0 ? false : true); +} + + +// Checks for an alphabetic character. +// It is equivalent to (isupper(c) || islower(c)). +inline boolean isAlpha(int c) +{ + return ( isalpha(c) == 0 ? false : true); +} + + +// Checks whether c is a 7-bit unsigned char value +// that fits into the ASCII character set. +inline boolean isAscii(int c) +{ + return ( isascii (c) == 0 ? false : true); +} + + +// Checks for a blank character, that is, a space or a tab. +inline boolean isWhitespace(int c) +{ + return ( isblank (c) == 0 ? false : true); +} + + +// Checks for a control character. +inline boolean isControl(int c) +{ + return ( iscntrl (c) == 0 ? false : true); +} + + +// Checks for a digit (0 through 9). +inline boolean isDigit(int c) +{ + return ( isdigit (c) == 0 ? false : true); +} + + +// Checks for any printable character except space. +inline boolean isGraph(int c) +{ + return ( isgraph (c) == 0 ? false : true); +} + + +// Checks for a lower-case character. +inline boolean isLowerCase(int c) +{ + return (islower (c) == 0 ? false : true); +} + + +// Checks for any printable character including space. +inline boolean isPrintable(int c) +{ + return ( isprint (c) == 0 ? false : true); +} + + +// Checks for any printable character which is not a space +// or an alphanumeric character. +inline boolean isPunct(int c) +{ + return ( ispunct (c) == 0 ? false : true); +} + + +// Checks for white-space characters. For the avr-libc library, +// these are: space, formfeed ('\f'), newline ('\n'), carriage +// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). +inline boolean isSpace(int c) +{ + return ( isspace (c) == 0 ? false : true); +} + + +// Checks for an uppercase letter. +inline boolean isUpperCase(int c) +{ + return ( isupper (c) == 0 ? false : true); +} + + +// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 +// 8 9 a b c d e f A B C D E F. +inline boolean isHexadecimalDigit(int c) +{ + return ( isxdigit (c) == 0 ? false : true); +} + + +// Converts c to a 7-bit unsigned char value that fits into the +// ASCII character set, by clearing the high-order bits. +inline int toAscii(int c) +{ + return toascii (c); +} + + +// Warning: +// Many people will be unhappy if you use this function. +// This function will convert accented letters into random +// characters. + +// Converts the letter c to lower case, if possible. +inline int toLowerCase(int c) +{ + return tolower (c); +} + + +// Converts the letter c to upper case, if possible. +inline int toUpperCase(int c) +{ + return toupper (c); +} + +#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WInterrupts.c new file mode 100644 index 000000000..62efc9cad --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WInterrupts.c @@ -0,0 +1,322 @@ +/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ + +/* + Part of the Wiring project - http://wiring.uniandes.edu.co + + Copyright (c) 2004-05 Hernando Barragan + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 24 November 2006 by David A. Mellis + Modified 1 August 2010 by Mark Sproul +*/ + +#include +#include +#include +#include +#include + +#include "wiring_private.h" + +static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; +// volatile static voidFuncPtr twiIntFunc; + +void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { + if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { + intFunc[interruptNum] = userFunc; + + // Configure the interrupt mode (trigger on low input, any change, rising + // edge, or falling edge). The mode constants were chosen to correspond + // to the configuration bits in the hardware register, so we simply shift + // the mode into place. + + // Enable the interrupt. + + switch (interruptNum) { +#if defined(__AVR_ATmega32U4__) + // I hate doing this, but the register assignment differs between the 1280/2560 + // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't + // even present on the 32U4 this is the only way to distinguish between them. + case 0: + EICRA = (EICRA & ~((1<= howbig) { + return howsmall; + } + long diff = howbig - howsmall; + return random(diff) + howsmall; +} + +long map(long x, long in_min, long in_max, long out_min, long out_max) +{ + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; +} + +unsigned int makeWord(unsigned int w) { return w; } +unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.cpp new file mode 100644 index 000000000..c6839fc0d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.cpp @@ -0,0 +1,645 @@ +/* + WString.cpp - String library for Wiring & Arduino + ...mostly rewritten by Paul Stoffregen... + Copyright (c) 2009-10 Hernando Barragan. All rights reserved. + Copyright 2011, Paul Stoffregen, paul@pjrc.com + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "WString.h" + + +/*********************************************/ +/* Constructors */ +/*********************************************/ + +String::String(const char *cstr) +{ + init(); + if (cstr) copy(cstr, strlen(cstr)); +} + +String::String(const String &value) +{ + init(); + *this = value; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +String::String(String &&rval) +{ + init(); + move(rval); +} +String::String(StringSumHelper &&rval) +{ + init(); + move(rval); +} +#endif + +String::String(char c) +{ + init(); + char buf[2]; + buf[0] = c; + buf[1] = 0; + *this = buf; +} + +String::String(unsigned char value, unsigned char base) +{ + init(); + char buf[9]; + utoa(value, buf, base); + *this = buf; +} + +String::String(int value, unsigned char base) +{ + init(); + char buf[18]; + itoa(value, buf, base); + *this = buf; +} + +String::String(unsigned int value, unsigned char base) +{ + init(); + char buf[17]; + utoa(value, buf, base); + *this = buf; +} + +String::String(long value, unsigned char base) +{ + init(); + char buf[34]; + ltoa(value, buf, base); + *this = buf; +} + +String::String(unsigned long value, unsigned char base) +{ + init(); + char buf[33]; + ultoa(value, buf, base); + *this = buf; +} + +String::~String() +{ + free(buffer); +} + +/*********************************************/ +/* Memory Management */ +/*********************************************/ + +inline void String::init(void) +{ + buffer = NULL; + capacity = 0; + len = 0; + flags = 0; +} + +void String::invalidate(void) +{ + if (buffer) free(buffer); + buffer = NULL; + capacity = len = 0; +} + +unsigned char String::reserve(unsigned int size) +{ + if (buffer && capacity >= size) return 1; + if (changeBuffer(size)) { + if (len == 0) buffer[0] = 0; + return 1; + } + return 0; +} + +unsigned char String::changeBuffer(unsigned int maxStrLen) +{ + char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); + if (newbuffer) { + buffer = newbuffer; + capacity = maxStrLen; + return 1; + } + return 0; +} + +/*********************************************/ +/* Copy and Move */ +/*********************************************/ + +String & String::copy(const char *cstr, unsigned int length) +{ + if (!reserve(length)) { + invalidate(); + return *this; + } + len = length; + strcpy(buffer, cstr); + return *this; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +void String::move(String &rhs) +{ + if (buffer) { + if (capacity >= rhs.len) { + strcpy(buffer, rhs.buffer); + len = rhs.len; + rhs.len = 0; + return; + } else { + free(buffer); + } + } + buffer = rhs.buffer; + capacity = rhs.capacity; + len = rhs.len; + rhs.buffer = NULL; + rhs.capacity = 0; + rhs.len = 0; +} +#endif + +String & String::operator = (const String &rhs) +{ + if (this == &rhs) return *this; + + if (rhs.buffer) copy(rhs.buffer, rhs.len); + else invalidate(); + + return *this; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +String & String::operator = (String &&rval) +{ + if (this != &rval) move(rval); + return *this; +} + +String & String::operator = (StringSumHelper &&rval) +{ + if (this != &rval) move(rval); + return *this; +} +#endif + +String & String::operator = (const char *cstr) +{ + if (cstr) copy(cstr, strlen(cstr)); + else invalidate(); + + return *this; +} + +/*********************************************/ +/* concat */ +/*********************************************/ + +unsigned char String::concat(const String &s) +{ + return concat(s.buffer, s.len); +} + +unsigned char String::concat(const char *cstr, unsigned int length) +{ + unsigned int newlen = len + length; + if (!cstr) return 0; + if (length == 0) return 1; + if (!reserve(newlen)) return 0; + strcpy(buffer + len, cstr); + len = newlen; + return 1; +} + +unsigned char String::concat(const char *cstr) +{ + if (!cstr) return 0; + return concat(cstr, strlen(cstr)); +} + +unsigned char String::concat(char c) +{ + char buf[2]; + buf[0] = c; + buf[1] = 0; + return concat(buf, 1); +} + +unsigned char String::concat(unsigned char num) +{ + char buf[4]; + itoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(int num) +{ + char buf[7]; + itoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(unsigned int num) +{ + char buf[6]; + utoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(long num) +{ + char buf[12]; + ltoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(unsigned long num) +{ + char buf[11]; + ultoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +/*********************************************/ +/* Concatenate */ +/*********************************************/ + +StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) +{ + StringSumHelper &a = const_cast(lhs); + if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, char c) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(c)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, int num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, long num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +/*********************************************/ +/* Comparison */ +/*********************************************/ + +int String::compareTo(const String &s) const +{ + if (!buffer || !s.buffer) { + if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; + if (buffer && len > 0) return *(unsigned char *)buffer; + return 0; + } + return strcmp(buffer, s.buffer); +} + +unsigned char String::equals(const String &s2) const +{ + return (len == s2.len && compareTo(s2) == 0); +} + +unsigned char String::equals(const char *cstr) const +{ + if (len == 0) return (cstr == NULL || *cstr == 0); + if (cstr == NULL) return buffer[0] == 0; + return strcmp(buffer, cstr) == 0; +} + +unsigned char String::operator<(const String &rhs) const +{ + return compareTo(rhs) < 0; +} + +unsigned char String::operator>(const String &rhs) const +{ + return compareTo(rhs) > 0; +} + +unsigned char String::operator<=(const String &rhs) const +{ + return compareTo(rhs) <= 0; +} + +unsigned char String::operator>=(const String &rhs) const +{ + return compareTo(rhs) >= 0; +} + +unsigned char String::equalsIgnoreCase( const String &s2 ) const +{ + if (this == &s2) return 1; + if (len != s2.len) return 0; + if (len == 0) return 1; + const char *p1 = buffer; + const char *p2 = s2.buffer; + while (*p1) { + if (tolower(*p1++) != tolower(*p2++)) return 0; + } + return 1; +} + +unsigned char String::startsWith( const String &s2 ) const +{ + if (len < s2.len) return 0; + return startsWith(s2, 0); +} + +unsigned char String::startsWith( const String &s2, unsigned int offset ) const +{ + if (offset > len - s2.len || !buffer || !s2.buffer) return 0; + return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; +} + +unsigned char String::endsWith( const String &s2 ) const +{ + if ( len < s2.len || !buffer || !s2.buffer) return 0; + return strcmp(&buffer[len - s2.len], s2.buffer) == 0; +} + +/*********************************************/ +/* Character Access */ +/*********************************************/ + +char String::charAt(unsigned int loc) const +{ + return operator[](loc); +} + +void String::setCharAt(unsigned int loc, char c) +{ + if (loc < len) buffer[loc] = c; +} + +char & String::operator[](unsigned int index) +{ + static char dummy_writable_char; + if (index >= len || !buffer) { + dummy_writable_char = 0; + return dummy_writable_char; + } + return buffer[index]; +} + +char String::operator[]( unsigned int index ) const +{ + if (index >= len || !buffer) return 0; + return buffer[index]; +} + +void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const +{ + if (!bufsize || !buf) return; + if (index >= len) { + buf[0] = 0; + return; + } + unsigned int n = bufsize - 1; + if (n > len - index) n = len - index; + strncpy((char *)buf, buffer + index, n); + buf[n] = 0; +} + +/*********************************************/ +/* Search */ +/*********************************************/ + +int String::indexOf(char c) const +{ + return indexOf(c, 0); +} + +int String::indexOf( char ch, unsigned int fromIndex ) const +{ + if (fromIndex >= len) return -1; + const char* temp = strchr(buffer + fromIndex, ch); + if (temp == NULL) return -1; + return temp - buffer; +} + +int String::indexOf(const String &s2) const +{ + return indexOf(s2, 0); +} + +int String::indexOf(const String &s2, unsigned int fromIndex) const +{ + if (fromIndex >= len) return -1; + const char *found = strstr(buffer + fromIndex, s2.buffer); + if (found == NULL) return -1; + return found - buffer; +} + +int String::lastIndexOf( char theChar ) const +{ + return lastIndexOf(theChar, len - 1); +} + +int String::lastIndexOf(char ch, unsigned int fromIndex) const +{ + if (fromIndex >= len) return -1; + char tempchar = buffer[fromIndex + 1]; + buffer[fromIndex + 1] = '\0'; + char* temp = strrchr( buffer, ch ); + buffer[fromIndex + 1] = tempchar; + if (temp == NULL) return -1; + return temp - buffer; +} + +int String::lastIndexOf(const String &s2) const +{ + return lastIndexOf(s2, len - s2.len); +} + +int String::lastIndexOf(const String &s2, unsigned int fromIndex) const +{ + if (s2.len == 0 || len == 0 || s2.len > len) return -1; + if (fromIndex >= len) fromIndex = len - 1; + int found = -1; + for (char *p = buffer; p <= buffer + fromIndex; p++) { + p = strstr(p, s2.buffer); + if (!p) break; + if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; + } + return found; +} + +String String::substring( unsigned int left ) const +{ + return substring(left, len); +} + +String String::substring(unsigned int left, unsigned int right) const +{ + if (left > right) { + unsigned int temp = right; + right = left; + left = temp; + } + String out; + if (left > len) return out; + if (right > len) right = len; + char temp = buffer[right]; // save the replaced character + buffer[right] = '\0'; + out = buffer + left; // pointer arithmetic + buffer[right] = temp; //restore character + return out; +} + +/*********************************************/ +/* Modification */ +/*********************************************/ + +void String::replace(char find, char replace) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + if (*p == find) *p = replace; + } +} + +void String::replace(const String& find, const String& replace) +{ + if (len == 0 || find.len == 0) return; + int diff = replace.len - find.len; + char *readFrom = buffer; + char *foundAt; + if (diff == 0) { + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + memcpy(foundAt, replace.buffer, replace.len); + readFrom = foundAt + replace.len; + } + } else if (diff < 0) { + char *writeTo = buffer; + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + unsigned int n = foundAt - readFrom; + memcpy(writeTo, readFrom, n); + writeTo += n; + memcpy(writeTo, replace.buffer, replace.len); + writeTo += replace.len; + readFrom = foundAt + find.len; + len += diff; + } + strcpy(writeTo, readFrom); + } else { + unsigned int size = len; // compute size needed for result + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + readFrom = foundAt + find.len; + size += diff; + } + if (size == len) return; + if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! + int index = len - 1; + while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { + readFrom = buffer + index + find.len; + memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); + len += diff; + buffer[len] = 0; + memcpy(buffer + index, replace.buffer, replace.len); + index--; + } + } +} + +void String::toLowerCase(void) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + *p = tolower(*p); + } +} + +void String::toUpperCase(void) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + *p = toupper(*p); + } +} + +void String::trim(void) +{ + if (!buffer || len == 0) return; + char *begin = buffer; + while (isspace(*begin)) begin++; + char *end = buffer + len - 1; + while (isspace(*end) && end >= begin) end--; + len = end + 1 - begin; + if (begin > buffer) memcpy(buffer, begin, len); + buffer[len] = 0; +} + +/*********************************************/ +/* Parsing / Conversion */ +/*********************************************/ + +long String::toInt(void) const +{ + if (buffer) return atol(buffer); + return 0; +} + + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.h new file mode 100644 index 000000000..947325e5f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.h @@ -0,0 +1,205 @@ +/* + WString.h - String library for Wiring & Arduino + ...mostly rewritten by Paul Stoffregen... + Copyright (c) 2009-10 Hernando Barragan. All right reserved. + Copyright 2011, Paul Stoffregen, paul@pjrc.com + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef String_class_h +#define String_class_h +#ifdef __cplusplus + +#include +#include +#include +#include + +// When compiling programs with this class, the following gcc parameters +// dramatically increase performance and memory (RAM) efficiency, typically +// with little or no increase in code size. +// -felide-constructors +// -std=c++0x + +class __FlashStringHelper; +#define F(string_literal) (reinterpret_cast(PSTR(string_literal))) + +// An inherited class for holding the result of a concatenation. These +// result objects are assumed to be writable by subsequent concatenations. +class StringSumHelper; + +// The string class +class String +{ + // use a function pointer to allow for "if (s)" without the + // complications of an operator bool(). for more information, see: + // http://www.artima.com/cppsource/safebool.html + typedef void (String::*StringIfHelperType)() const; + void StringIfHelper() const {} + +public: + // constructors + // creates a copy of the initial value. + // if the initial value is null or invalid, or if memory allocation + // fails, the string will be marked as invalid (i.e. "if (s)" will + // be false). + String(const char *cstr = ""); + String(const String &str); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + String(String &&rval); + String(StringSumHelper &&rval); + #endif + explicit String(char c); + explicit String(unsigned char, unsigned char base=10); + explicit String(int, unsigned char base=10); + explicit String(unsigned int, unsigned char base=10); + explicit String(long, unsigned char base=10); + explicit String(unsigned long, unsigned char base=10); + ~String(void); + + // memory management + // return true on success, false on failure (in which case, the string + // is left unchanged). reserve(0), if successful, will validate an + // invalid string (i.e., "if (s)" will be true afterwards) + unsigned char reserve(unsigned int size); + inline unsigned int length(void) const {return len;} + + // creates a copy of the assigned value. if the value is null or + // invalid, or if the memory allocation fails, the string will be + // marked as invalid ("if (s)" will be false). + String & operator = (const String &rhs); + String & operator = (const char *cstr); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + String & operator = (String &&rval); + String & operator = (StringSumHelper &&rval); + #endif + + // concatenate (works w/ built-in types) + + // returns true on success, false on failure (in which case, the string + // is left unchanged). if the argument is null or invalid, the + // concatenation is considered unsucessful. + unsigned char concat(const String &str); + unsigned char concat(const char *cstr); + unsigned char concat(char c); + unsigned char concat(unsigned char c); + unsigned char concat(int num); + unsigned char concat(unsigned int num); + unsigned char concat(long num); + unsigned char concat(unsigned long num); + + // if there's not enough memory for the concatenated value, the string + // will be left unchanged (but this isn't signalled in any way) + String & operator += (const String &rhs) {concat(rhs); return (*this);} + String & operator += (const char *cstr) {concat(cstr); return (*this);} + String & operator += (char c) {concat(c); return (*this);} + String & operator += (unsigned char num) {concat(num); return (*this);} + String & operator += (int num) {concat(num); return (*this);} + String & operator += (unsigned int num) {concat(num); return (*this);} + String & operator += (long num) {concat(num); return (*this);} + String & operator += (unsigned long num) {concat(num); return (*this);} + + friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); + friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); + friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); + + // comparison (only works w/ Strings and "strings") + operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } + int compareTo(const String &s) const; + unsigned char equals(const String &s) const; + unsigned char equals(const char *cstr) const; + unsigned char operator == (const String &rhs) const {return equals(rhs);} + unsigned char operator == (const char *cstr) const {return equals(cstr);} + unsigned char operator != (const String &rhs) const {return !equals(rhs);} + unsigned char operator != (const char *cstr) const {return !equals(cstr);} + unsigned char operator < (const String &rhs) const; + unsigned char operator > (const String &rhs) const; + unsigned char operator <= (const String &rhs) const; + unsigned char operator >= (const String &rhs) const; + unsigned char equalsIgnoreCase(const String &s) const; + unsigned char startsWith( const String &prefix) const; + unsigned char startsWith(const String &prefix, unsigned int offset) const; + unsigned char endsWith(const String &suffix) const; + + // character acccess + char charAt(unsigned int index) const; + void setCharAt(unsigned int index, char c); + char operator [] (unsigned int index) const; + char& operator [] (unsigned int index); + void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; + void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const + {getBytes((unsigned char *)buf, bufsize, index);} + + // search + int indexOf( char ch ) const; + int indexOf( char ch, unsigned int fromIndex ) const; + int indexOf( const String &str ) const; + int indexOf( const String &str, unsigned int fromIndex ) const; + int lastIndexOf( char ch ) const; + int lastIndexOf( char ch, unsigned int fromIndex ) const; + int lastIndexOf( const String &str ) const; + int lastIndexOf( const String &str, unsigned int fromIndex ) const; + String substring( unsigned int beginIndex ) const; + String substring( unsigned int beginIndex, unsigned int endIndex ) const; + + // modification + void replace(char find, char replace); + void replace(const String& find, const String& replace); + void toLowerCase(void); + void toUpperCase(void); + void trim(void); + + // parsing/conversion + long toInt(void) const; + +protected: + char *buffer; // the actual char array + unsigned int capacity; // the array length minus one (for the '\0') + unsigned int len; // the String length (not counting the '\0') + unsigned char flags; // unused, for future features +protected: + void init(void); + void invalidate(void); + unsigned char changeBuffer(unsigned int maxStrLen); + unsigned char concat(const char *cstr, unsigned int length); + + // copy and move + String & copy(const char *cstr, unsigned int length); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + void move(String &rhs); + #endif +}; + +class StringSumHelper : public String +{ +public: + StringSumHelper(const String &s) : String(s) {} + StringSumHelper(const char *p) : String(p) {} + StringSumHelper(char c) : String(c) {} + StringSumHelper(unsigned char num) : String(num) {} + StringSumHelper(int num) : String(num) {} + StringSumHelper(unsigned int num) : String(num) {} + StringSumHelper(long num) : String(num) {} + StringSumHelper(unsigned long num) : String(num) {} +}; + +#endif // __cplusplus +#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/binary.h new file mode 100644 index 000000000..af1498033 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/binary.h @@ -0,0 +1,515 @@ +#ifndef Binary_h +#define Binary_h + +#define B0 0 +#define B00 0 +#define B000 0 +#define B0000 0 +#define B00000 0 +#define B000000 0 +#define B0000000 0 +#define B00000000 0 +#define B1 1 +#define B01 1 +#define B001 1 +#define B0001 1 +#define B00001 1 +#define B000001 1 +#define B0000001 1 +#define B00000001 1 +#define B10 2 +#define B010 2 +#define B0010 2 +#define B00010 2 +#define B000010 2 +#define B0000010 2 +#define B00000010 2 +#define B11 3 +#define B011 3 +#define B0011 3 +#define B00011 3 +#define B000011 3 +#define B0000011 3 +#define B00000011 3 +#define B100 4 +#define B0100 4 +#define B00100 4 +#define B000100 4 +#define B0000100 4 +#define B00000100 4 +#define B101 5 +#define B0101 5 +#define B00101 5 +#define B000101 5 +#define B0000101 5 +#define B00000101 5 +#define B110 6 +#define B0110 6 +#define B00110 6 +#define B000110 6 +#define B0000110 6 +#define B00000110 6 +#define B111 7 +#define B0111 7 +#define B00111 7 +#define B000111 7 +#define B0000111 7 +#define B00000111 7 +#define B1000 8 +#define B01000 8 +#define B001000 8 +#define B0001000 8 +#define B00001000 8 +#define B1001 9 +#define B01001 9 +#define B001001 9 +#define B0001001 9 +#define B00001001 9 +#define B1010 10 +#define B01010 10 +#define B001010 10 +#define B0001010 10 +#define B00001010 10 +#define B1011 11 +#define B01011 11 +#define B001011 11 +#define B0001011 11 +#define B00001011 11 +#define B1100 12 +#define B01100 12 +#define B001100 12 +#define B0001100 12 +#define B00001100 12 +#define B1101 13 +#define B01101 13 +#define B001101 13 +#define B0001101 13 +#define B00001101 13 +#define B1110 14 +#define B01110 14 +#define B001110 14 +#define B0001110 14 +#define B00001110 14 +#define B1111 15 +#define B01111 15 +#define B001111 15 +#define B0001111 15 +#define B00001111 15 +#define B10000 16 +#define B010000 16 +#define B0010000 16 +#define B00010000 16 +#define B10001 17 +#define B010001 17 +#define B0010001 17 +#define B00010001 17 +#define B10010 18 +#define B010010 18 +#define B0010010 18 +#define B00010010 18 +#define B10011 19 +#define B010011 19 +#define B0010011 19 +#define B00010011 19 +#define B10100 20 +#define B010100 20 +#define B0010100 20 +#define B00010100 20 +#define B10101 21 +#define B010101 21 +#define B0010101 21 +#define B00010101 21 +#define B10110 22 +#define B010110 22 +#define B0010110 22 +#define B00010110 22 +#define B10111 23 +#define B010111 23 +#define B0010111 23 +#define B00010111 23 +#define B11000 24 +#define B011000 24 +#define B0011000 24 +#define B00011000 24 +#define B11001 25 +#define B011001 25 +#define B0011001 25 +#define B00011001 25 +#define B11010 26 +#define B011010 26 +#define B0011010 26 +#define B00011010 26 +#define B11011 27 +#define B011011 27 +#define B0011011 27 +#define B00011011 27 +#define B11100 28 +#define B011100 28 +#define B0011100 28 +#define B00011100 28 +#define B11101 29 +#define B011101 29 +#define B0011101 29 +#define B00011101 29 +#define B11110 30 +#define B011110 30 +#define B0011110 30 +#define B00011110 30 +#define B11111 31 +#define B011111 31 +#define B0011111 31 +#define B00011111 31 +#define B100000 32 +#define B0100000 32 +#define B00100000 32 +#define B100001 33 +#define B0100001 33 +#define B00100001 33 +#define B100010 34 +#define B0100010 34 +#define B00100010 34 +#define B100011 35 +#define B0100011 35 +#define B00100011 35 +#define B100100 36 +#define B0100100 36 +#define B00100100 36 +#define B100101 37 +#define B0100101 37 +#define B00100101 37 +#define B100110 38 +#define B0100110 38 +#define B00100110 38 +#define B100111 39 +#define B0100111 39 +#define B00100111 39 +#define B101000 40 +#define B0101000 40 +#define B00101000 40 +#define B101001 41 +#define B0101001 41 +#define B00101001 41 +#define B101010 42 +#define B0101010 42 +#define B00101010 42 +#define B101011 43 +#define B0101011 43 +#define B00101011 43 +#define B101100 44 +#define B0101100 44 +#define B00101100 44 +#define B101101 45 +#define B0101101 45 +#define B00101101 45 +#define B101110 46 +#define B0101110 46 +#define B00101110 46 +#define B101111 47 +#define B0101111 47 +#define B00101111 47 +#define B110000 48 +#define B0110000 48 +#define B00110000 48 +#define B110001 49 +#define B0110001 49 +#define B00110001 49 +#define B110010 50 +#define B0110010 50 +#define B00110010 50 +#define B110011 51 +#define B0110011 51 +#define B00110011 51 +#define B110100 52 +#define B0110100 52 +#define B00110100 52 +#define B110101 53 +#define B0110101 53 +#define B00110101 53 +#define B110110 54 +#define B0110110 54 +#define B00110110 54 +#define B110111 55 +#define B0110111 55 +#define B00110111 55 +#define B111000 56 +#define B0111000 56 +#define B00111000 56 +#define B111001 57 +#define B0111001 57 +#define B00111001 57 +#define B111010 58 +#define B0111010 58 +#define B00111010 58 +#define B111011 59 +#define B0111011 59 +#define B00111011 59 +#define B111100 60 +#define B0111100 60 +#define B00111100 60 +#define B111101 61 +#define B0111101 61 +#define B00111101 61 +#define B111110 62 +#define B0111110 62 +#define B00111110 62 +#define B111111 63 +#define B0111111 63 +#define B00111111 63 +#define B1000000 64 +#define B01000000 64 +#define B1000001 65 +#define B01000001 65 +#define B1000010 66 +#define B01000010 66 +#define B1000011 67 +#define B01000011 67 +#define B1000100 68 +#define B01000100 68 +#define B1000101 69 +#define B01000101 69 +#define B1000110 70 +#define B01000110 70 +#define B1000111 71 +#define B01000111 71 +#define B1001000 72 +#define B01001000 72 +#define B1001001 73 +#define B01001001 73 +#define B1001010 74 +#define B01001010 74 +#define B1001011 75 +#define B01001011 75 +#define B1001100 76 +#define B01001100 76 +#define B1001101 77 +#define B01001101 77 +#define B1001110 78 +#define B01001110 78 +#define B1001111 79 +#define B01001111 79 +#define B1010000 80 +#define B01010000 80 +#define B1010001 81 +#define B01010001 81 +#define B1010010 82 +#define B01010010 82 +#define B1010011 83 +#define B01010011 83 +#define B1010100 84 +#define B01010100 84 +#define B1010101 85 +#define B01010101 85 +#define B1010110 86 +#define B01010110 86 +#define B1010111 87 +#define B01010111 87 +#define B1011000 88 +#define B01011000 88 +#define B1011001 89 +#define B01011001 89 +#define B1011010 90 +#define B01011010 90 +#define B1011011 91 +#define B01011011 91 +#define B1011100 92 +#define B01011100 92 +#define B1011101 93 +#define B01011101 93 +#define B1011110 94 +#define B01011110 94 +#define B1011111 95 +#define B01011111 95 +#define B1100000 96 +#define B01100000 96 +#define B1100001 97 +#define B01100001 97 +#define B1100010 98 +#define B01100010 98 +#define B1100011 99 +#define B01100011 99 +#define B1100100 100 +#define B01100100 100 +#define B1100101 101 +#define B01100101 101 +#define B1100110 102 +#define B01100110 102 +#define B1100111 103 +#define B01100111 103 +#define B1101000 104 +#define B01101000 104 +#define B1101001 105 +#define B01101001 105 +#define B1101010 106 +#define B01101010 106 +#define B1101011 107 +#define B01101011 107 +#define B1101100 108 +#define B01101100 108 +#define B1101101 109 +#define B01101101 109 +#define B1101110 110 +#define B01101110 110 +#define B1101111 111 +#define B01101111 111 +#define B1110000 112 +#define B01110000 112 +#define B1110001 113 +#define B01110001 113 +#define B1110010 114 +#define B01110010 114 +#define B1110011 115 +#define B01110011 115 +#define B1110100 116 +#define B01110100 116 +#define B1110101 117 +#define B01110101 117 +#define B1110110 118 +#define B01110110 118 +#define B1110111 119 +#define B01110111 119 +#define B1111000 120 +#define B01111000 120 +#define B1111001 121 +#define B01111001 121 +#define B1111010 122 +#define B01111010 122 +#define B1111011 123 +#define B01111011 123 +#define B1111100 124 +#define B01111100 124 +#define B1111101 125 +#define B01111101 125 +#define B1111110 126 +#define B01111110 126 +#define B1111111 127 +#define B01111111 127 +#define B10000000 128 +#define B10000001 129 +#define B10000010 130 +#define B10000011 131 +#define B10000100 132 +#define B10000101 133 +#define B10000110 134 +#define B10000111 135 +#define B10001000 136 +#define B10001001 137 +#define B10001010 138 +#define B10001011 139 +#define B10001100 140 +#define B10001101 141 +#define B10001110 142 +#define B10001111 143 +#define B10010000 144 +#define B10010001 145 +#define B10010010 146 +#define B10010011 147 +#define B10010100 148 +#define B10010101 149 +#define B10010110 150 +#define B10010111 151 +#define B10011000 152 +#define B10011001 153 +#define B10011010 154 +#define B10011011 155 +#define B10011100 156 +#define B10011101 157 +#define B10011110 158 +#define B10011111 159 +#define B10100000 160 +#define B10100001 161 +#define B10100010 162 +#define B10100011 163 +#define B10100100 164 +#define B10100101 165 +#define B10100110 166 +#define B10100111 167 +#define B10101000 168 +#define B10101001 169 +#define B10101010 170 +#define B10101011 171 +#define B10101100 172 +#define B10101101 173 +#define B10101110 174 +#define B10101111 175 +#define B10110000 176 +#define B10110001 177 +#define B10110010 178 +#define B10110011 179 +#define B10110100 180 +#define B10110101 181 +#define B10110110 182 +#define B10110111 183 +#define B10111000 184 +#define B10111001 185 +#define B10111010 186 +#define B10111011 187 +#define B10111100 188 +#define B10111101 189 +#define B10111110 190 +#define B10111111 191 +#define B11000000 192 +#define B11000001 193 +#define B11000010 194 +#define B11000011 195 +#define B11000100 196 +#define B11000101 197 +#define B11000110 198 +#define B11000111 199 +#define B11001000 200 +#define B11001001 201 +#define B11001010 202 +#define B11001011 203 +#define B11001100 204 +#define B11001101 205 +#define B11001110 206 +#define B11001111 207 +#define B11010000 208 +#define B11010001 209 +#define B11010010 210 +#define B11010011 211 +#define B11010100 212 +#define B11010101 213 +#define B11010110 214 +#define B11010111 215 +#define B11011000 216 +#define B11011001 217 +#define B11011010 218 +#define B11011011 219 +#define B11011100 220 +#define B11011101 221 +#define B11011110 222 +#define B11011111 223 +#define B11100000 224 +#define B11100001 225 +#define B11100010 226 +#define B11100011 227 +#define B11100100 228 +#define B11100101 229 +#define B11100110 230 +#define B11100111 231 +#define B11101000 232 +#define B11101001 233 +#define B11101010 234 +#define B11101011 235 +#define B11101100 236 +#define B11101101 237 +#define B11101110 238 +#define B11101111 239 +#define B11110000 240 +#define B11110001 241 +#define B11110010 242 +#define B11110011 243 +#define B11110100 244 +#define B11110101 245 +#define B11110110 246 +#define B11110111 247 +#define B11111000 248 +#define B11111001 249 +#define B11111010 250 +#define B11111011 251 +#define B11111100 252 +#define B11111101 253 +#define B11111110 254 +#define B11111111 255 + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/main.cpp new file mode 100644 index 000000000..3d4e079d2 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/main.cpp @@ -0,0 +1,20 @@ +#include + +int main(void) +{ + init(); + +#if defined(USBCON) + USBDevice.attach(); +#endif + + setup(); + + for (;;) { + loop(); + if (serialEventRun) serialEventRun(); + } + + return 0; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.cpp new file mode 100644 index 000000000..0f6d4220e --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.cpp @@ -0,0 +1,18 @@ +#include + +void * operator new(size_t size) +{ + return malloc(size); +} + +void operator delete(void * ptr) +{ + free(ptr); +} + +int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; +void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; +void __cxa_guard_abort (__guard *) {}; + +void __cxa_pure_virtual(void) {}; + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.h new file mode 100644 index 000000000..cd940ce8b --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.h @@ -0,0 +1,22 @@ +/* Header to define new/delete operators as they aren't provided by avr-gcc by default + Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 + */ + +#ifndef NEW_H +#define NEW_H + +#include + +void * operator new(size_t size); +void operator delete(void * ptr); + +__extension__ typedef int __guard __attribute__((mode (__DI__))); + +extern "C" int __cxa_guard_acquire(__guard *); +extern "C" void __cxa_guard_release (__guard *); +extern "C" void __cxa_guard_abort (__guard *); + +extern "C" void __cxa_pure_virtual(void); + +#endif + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring.c new file mode 100644 index 000000000..840784938 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring.c @@ -0,0 +1,324 @@ +/* + wiring.c - Partial implementation of the Wiring API for the ATmega8. + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id$ +*/ + +#include "wiring_private.h" + +// the prescaler is set so that timer0 ticks every 64 clock cycles, and the +// the overflow handler is called every 256 ticks. +#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) + +// the whole number of milliseconds per timer0 overflow +#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) + +// the fractional number of milliseconds per timer0 overflow. we shift right +// by three to fit these numbers into a byte. (for the clock speeds we care +// about - 8 and 16 MHz - this doesn't lose precision.) +#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) +#define FRACT_MAX (1000 >> 3) + +volatile unsigned long timer0_overflow_count = 0; +volatile unsigned long timer0_millis = 0; +static unsigned char timer0_fract = 0; + +#if defined (TIM0_OVF_vect) +SIGNAL(TIM0_OVF_vect) +#else +SIGNAL(TIMER0_OVF_vect) +#endif +{ + // copy these to local variables so they can be stored in registers + // (volatile variables must be read from memory on every access) + unsigned long m = timer0_millis; + unsigned char f = timer0_fract; + + m += MILLIS_INC; + f += FRACT_INC; + if (f >= FRACT_MAX) { + f -= FRACT_MAX; + m += 1; + } + + timer0_fract = f; + timer0_millis = m; + timer0_overflow_count++; +} + +unsigned long millis() +{ + unsigned long m; + uint8_t oldSREG = SREG; + + // disable interrupts while we read timer0_millis or we might get an + // inconsistent value (e.g. in the middle of a write to timer0_millis) + cli(); + m = timer0_millis; + SREG = oldSREG; + + return m; +} + +unsigned long micros() { + unsigned long m; + uint8_t oldSREG = SREG, t; + + cli(); + m = timer0_overflow_count; +#if defined(TCNT0) + t = TCNT0; +#elif defined(TCNT0L) + t = TCNT0L; +#else + #error TIMER 0 not defined +#endif + + +#ifdef TIFR0 + if ((TIFR0 & _BV(TOV0)) && (t < 255)) + m++; +#else + if ((TIFR & _BV(TOV0)) && (t < 255)) + m++; +#endif + + SREG = oldSREG; + + return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); +} + +void delay(unsigned long ms) +{ + uint16_t start = (uint16_t)micros(); + + while (ms > 0) { + if (((uint16_t)micros() - start) >= 1000) { + ms--; + start += 1000; + } + } +} + +/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ +void delayMicroseconds(unsigned int us) +{ + // calling avrlib's delay_us() function with low values (e.g. 1 or + // 2 microseconds) gives delays longer than desired. + //delay_us(us); +#if F_CPU >= 20000000L + // for the 20 MHz clock on rare Arduino boards + + // for a one-microsecond delay, simply wait 2 cycle and return. The overhead + // of the function call yields a delay of exactly a one microsecond. + __asm__ __volatile__ ( + "nop" "\n\t" + "nop"); //just waiting 2 cycle + if (--us == 0) + return; + + // the following loop takes a 1/5 of a microsecond (4 cycles) + // per iteration, so execute it five times for each microsecond of + // delay requested. + us = (us<<2) + us; // x5 us + + // account for the time taken in the preceeding commands. + us -= 2; + +#elif F_CPU >= 16000000L + // for the 16 MHz clock on most Arduino boards + + // for a one-microsecond delay, simply return. the overhead + // of the function call yields a delay of approximately 1 1/8 us. + if (--us == 0) + return; + + // the following loop takes a quarter of a microsecond (4 cycles) + // per iteration, so execute it four times for each microsecond of + // delay requested. + us <<= 2; + + // account for the time taken in the preceeding commands. + us -= 2; +#else + // for the 8 MHz internal clock on the ATmega168 + + // for a one- or two-microsecond delay, simply return. the overhead of + // the function calls takes more than two microseconds. can't just + // subtract two, since us is unsigned; we'd overflow. + if (--us == 0) + return; + if (--us == 0) + return; + + // the following loop takes half of a microsecond (4 cycles) + // per iteration, so execute it twice for each microsecond of + // delay requested. + us <<= 1; + + // partially compensate for the time taken by the preceeding commands. + // we can't subtract any more than this or we'd overflow w/ small delays. + us--; +#endif + + // busy wait + __asm__ __volatile__ ( + "1: sbiw %0,1" "\n\t" // 2 cycles + "brne 1b" : "=w" (us) : "0" (us) // 2 cycles + ); +} + +void init() +{ + // this needs to be called before setup() or some functions won't + // work there + sei(); + + // on the ATmega168, timer 0 is also used for fast hardware pwm + // (using phase-correct PWM would mean that timer 0 overflowed half as often + // resulting in different millis() behavior on the ATmega8 and ATmega168) +#if defined(TCCR0A) && defined(WGM01) + sbi(TCCR0A, WGM01); + sbi(TCCR0A, WGM00); +#endif + + // set timer 0 prescale factor to 64 +#if defined(__AVR_ATmega128__) + // CPU specific: different values for the ATmega128 + sbi(TCCR0, CS02); +#elif defined(TCCR0) && defined(CS01) && defined(CS00) + // this combination is for the standard atmega8 + sbi(TCCR0, CS01); + sbi(TCCR0, CS00); +#elif defined(TCCR0B) && defined(CS01) && defined(CS00) + // this combination is for the standard 168/328/1280/2560 + sbi(TCCR0B, CS01); + sbi(TCCR0B, CS00); +#elif defined(TCCR0A) && defined(CS01) && defined(CS00) + // this combination is for the __AVR_ATmega645__ series + sbi(TCCR0A, CS01); + sbi(TCCR0A, CS00); +#else + #error Timer 0 prescale factor 64 not set correctly +#endif + + // enable timer 0 overflow interrupt +#if defined(TIMSK) && defined(TOIE0) + sbi(TIMSK, TOIE0); +#elif defined(TIMSK0) && defined(TOIE0) + sbi(TIMSK0, TOIE0); +#else + #error Timer 0 overflow interrupt not set correctly +#endif + + // timers 1 and 2 are used for phase-correct hardware pwm + // this is better for motors as it ensures an even waveform + // note, however, that fast pwm mode can achieve a frequency of up + // 8 MHz (with a 16 MHz clock) at 50% duty cycle + +#if defined(TCCR1B) && defined(CS11) && defined(CS10) + TCCR1B = 0; + + // set timer 1 prescale factor to 64 + sbi(TCCR1B, CS11); +#if F_CPU >= 8000000L + sbi(TCCR1B, CS10); +#endif +#elif defined(TCCR1) && defined(CS11) && defined(CS10) + sbi(TCCR1, CS11); +#if F_CPU >= 8000000L + sbi(TCCR1, CS10); +#endif +#endif + // put timer 1 in 8-bit phase correct pwm mode +#if defined(TCCR1A) && defined(WGM10) + sbi(TCCR1A, WGM10); +#elif defined(TCCR1) + #warning this needs to be finished +#endif + + // set timer 2 prescale factor to 64 +#if defined(TCCR2) && defined(CS22) + sbi(TCCR2, CS22); +#elif defined(TCCR2B) && defined(CS22) + sbi(TCCR2B, CS22); +#else + #warning Timer 2 not finished (may not be present on this CPU) +#endif + + // configure timer 2 for phase correct pwm (8-bit) +#if defined(TCCR2) && defined(WGM20) + sbi(TCCR2, WGM20); +#elif defined(TCCR2A) && defined(WGM20) + sbi(TCCR2A, WGM20); +#else + #warning Timer 2 not finished (may not be present on this CPU) +#endif + +#if defined(TCCR3B) && defined(CS31) && defined(WGM30) + sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 + sbi(TCCR3B, CS30); + sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode +#endif + +#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ + sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 + sbi(TCCR4B, CS41); + sbi(TCCR4B, CS40); + sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode + sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A + sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D +#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ +#if defined(TCCR4B) && defined(CS41) && defined(WGM40) + sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 + sbi(TCCR4B, CS40); + sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode +#endif +#endif /* end timer4 block for ATMEGA1280/2560 and similar */ + +#if defined(TCCR5B) && defined(CS51) && defined(WGM50) + sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 + sbi(TCCR5B, CS50); + sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode +#endif + +#if defined(ADCSRA) + // set a2d prescale factor to 128 + // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. + // XXX: this will not work properly for other clock speeds, and + // this code should use F_CPU to determine the prescale factor. + sbi(ADCSRA, ADPS2); + sbi(ADCSRA, ADPS1); + sbi(ADCSRA, ADPS0); + + // enable a2d conversions + sbi(ADCSRA, ADEN); +#endif + + // the bootloader connects pins 0 and 1 to the USART; disconnect them + // here so they can be used as normal digital i/o; they will be + // reconnected in Serial.begin() +#if defined(UCSRB) + UCSRB = 0; +#elif defined(UCSR0B) + UCSR0B = 0; +#endif +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_analog.c new file mode 100644 index 000000000..38c8e3970 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_analog.c @@ -0,0 +1,282 @@ +/* + wiring_analog.c - analog input and output + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 28 September 2010 by Mark Sproul + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" +#include "pins_arduino.h" + +uint8_t analog_reference = DEFAULT; + +void analogReference(uint8_t mode) +{ + // can't actually set the register here because the default setting + // will connect AVCC and the AREF pin, which would cause a short if + // there's something connected to AREF. + analog_reference = mode; +} + +int analogRead(uint8_t pin) +{ + uint8_t low, high; + +#if defined(PORTL) // 100 pin chips + if (pin >= 54) pin -= 54; // allow for channel or pin numbers +#elif defined(__AVR_ATmega32U4__) + if (pin >= 18) pin -= 18; // allow for channel or pin numbers +#elif defined(PORTA) // 40/44 pin chips + if (pin >= 24) pin -= 24; // allow for channel or pin numbers +#else + if (pin >= 14) pin -= 14; // allow for channel or pin numbers +#endif + +#if defined(__AVR_ATmega32U4__) + pin = analogPinToChannel(pin); + ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); +#elif defined(ADCSRB) && defined(MUX5) + // the MUX5 bit of ADCSRB selects whether we're reading from channels + // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). + ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); +#endif + + // set the analog reference (high two bits of ADMUX) and select the + // channel (low 4 bits). this also sets ADLAR (left-adjust result) + // to 0 (the default). +#if defined(ADMUX) + ADMUX = (analog_reference << 6) | (pin & 0x07); +#endif + + // without a delay, we seem to read from the wrong channel + //delay(1); + +#if defined(ADCSRA) && defined(ADCL) + // start the conversion + sbi(ADCSRA, ADSC); + + // ADSC is cleared when the conversion finishes + while (bit_is_set(ADCSRA, ADSC)); + + // we have to read ADCL first; doing so locks both ADCL + // and ADCH until ADCH is read. reading ADCL second would + // cause the results of each conversion to be discarded, + // as ADCL and ADCH would be locked when it completed. + low = ADCL; + high = ADCH; +#else + // we dont have an ADC, return 0 + low = 0; + high = 0; +#endif + + // combine the two bytes + return (high << 8) | low; +} + +// Right now, PWM output only works on the pins with +// hardware support. These are defined in the appropriate +// pins_*.c file. For the rest of the pins, we default +// to digital output. +void analogWrite(uint8_t pin, int val) +{ + // We need to make sure the PWM output is enabled for those pins + // that support it, as we turn it off when digitally reading or + // writing with them. Also, make sure the pin is in output mode + // for consistenty with Wiring, which doesn't require a pinMode + // call for the analog output pins. + pinMode(pin, OUTPUT); + if (val == 0) + { + digitalWrite(pin, LOW); + } + else if (val == 255) + { + digitalWrite(pin, HIGH); + } + else + { + switch(digitalPinToTimer(pin)) + { + // XXX fix needed for atmega8 + #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) + case TIMER0A: + // connect pwm to pin on timer 0 + sbi(TCCR0, COM00); + OCR0 = val; // set pwm duty + break; + #endif + + #if defined(TCCR0A) && defined(COM0A1) + case TIMER0A: + // connect pwm to pin on timer 0, channel A + sbi(TCCR0A, COM0A1); + OCR0A = val; // set pwm duty + break; + #endif + + #if defined(TCCR0A) && defined(COM0B1) + case TIMER0B: + // connect pwm to pin on timer 0, channel B + sbi(TCCR0A, COM0B1); + OCR0B = val; // set pwm duty + break; + #endif + + #if defined(TCCR1A) && defined(COM1A1) + case TIMER1A: + // connect pwm to pin on timer 1, channel A + sbi(TCCR1A, COM1A1); + OCR1A = val; // set pwm duty + break; + #endif + + #if defined(TCCR1A) && defined(COM1B1) + case TIMER1B: + // connect pwm to pin on timer 1, channel B + sbi(TCCR1A, COM1B1); + OCR1B = val; // set pwm duty + break; + #endif + + #if defined(TCCR2) && defined(COM21) + case TIMER2: + // connect pwm to pin on timer 2 + sbi(TCCR2, COM21); + OCR2 = val; // set pwm duty + break; + #endif + + #if defined(TCCR2A) && defined(COM2A1) + case TIMER2A: + // connect pwm to pin on timer 2, channel A + sbi(TCCR2A, COM2A1); + OCR2A = val; // set pwm duty + break; + #endif + + #if defined(TCCR2A) && defined(COM2B1) + case TIMER2B: + // connect pwm to pin on timer 2, channel B + sbi(TCCR2A, COM2B1); + OCR2B = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3A1) + case TIMER3A: + // connect pwm to pin on timer 3, channel A + sbi(TCCR3A, COM3A1); + OCR3A = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3B1) + case TIMER3B: + // connect pwm to pin on timer 3, channel B + sbi(TCCR3A, COM3B1); + OCR3B = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3C1) + case TIMER3C: + // connect pwm to pin on timer 3, channel C + sbi(TCCR3A, COM3C1); + OCR3C = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) + case TIMER4A: + //connect pwm to pin on timer 4, channel A + sbi(TCCR4A, COM4A1); + #if defined(COM4A0) // only used on 32U4 + cbi(TCCR4A, COM4A0); + #endif + OCR4A = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) && defined(COM4B1) + case TIMER4B: + // connect pwm to pin on timer 4, channel B + sbi(TCCR4A, COM4B1); + OCR4B = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) && defined(COM4C1) + case TIMER4C: + // connect pwm to pin on timer 4, channel C + sbi(TCCR4A, COM4C1); + OCR4C = val; // set pwm duty + break; + #endif + + #if defined(TCCR4C) && defined(COM4D1) + case TIMER4D: + // connect pwm to pin on timer 4, channel D + sbi(TCCR4C, COM4D1); + #if defined(COM4D0) // only used on 32U4 + cbi(TCCR4C, COM4D0); + #endif + OCR4D = val; // set pwm duty + break; + #endif + + + #if defined(TCCR5A) && defined(COM5A1) + case TIMER5A: + // connect pwm to pin on timer 5, channel A + sbi(TCCR5A, COM5A1); + OCR5A = val; // set pwm duty + break; + #endif + + #if defined(TCCR5A) && defined(COM5B1) + case TIMER5B: + // connect pwm to pin on timer 5, channel B + sbi(TCCR5A, COM5B1); + OCR5B = val; // set pwm duty + break; + #endif + + #if defined(TCCR5A) && defined(COM5C1) + case TIMER5C: + // connect pwm to pin on timer 5, channel C + sbi(TCCR5A, COM5C1); + OCR5C = val; // set pwm duty + break; + #endif + + case NOT_ON_TIMER: + default: + if (val < 128) { + digitalWrite(pin, LOW); + } else { + digitalWrite(pin, HIGH); + } + } + } +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_digital.c new file mode 100644 index 000000000..be323b1df --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_digital.c @@ -0,0 +1,178 @@ +/* + wiring_digital.c - digital input and output functions + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 28 September 2010 by Mark Sproul + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#define ARDUINO_MAIN +#include "wiring_private.h" +#include "pins_arduino.h" + +void pinMode(uint8_t pin, uint8_t mode) +{ + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + volatile uint8_t *reg, *out; + + if (port == NOT_A_PIN) return; + + // JWS: can I let the optimizer do this? + reg = portModeRegister(port); + out = portOutputRegister(port); + + if (mode == INPUT) { + uint8_t oldSREG = SREG; + cli(); + *reg &= ~bit; + *out &= ~bit; + SREG = oldSREG; + } else if (mode == INPUT_PULLUP) { + uint8_t oldSREG = SREG; + cli(); + *reg &= ~bit; + *out |= bit; + SREG = oldSREG; + } else { + uint8_t oldSREG = SREG; + cli(); + *reg |= bit; + SREG = oldSREG; + } +} + +// Forcing this inline keeps the callers from having to push their own stuff +// on the stack. It is a good performance win and only takes 1 more byte per +// user than calling. (It will take more bytes on the 168.) +// +// But shouldn't this be moved into pinMode? Seems silly to check and do on +// each digitalread or write. +// +// Mark Sproul: +// - Removed inline. Save 170 bytes on atmega1280 +// - changed to a switch statment; added 32 bytes but much easier to read and maintain. +// - Added more #ifdefs, now compiles for atmega645 +// +//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); +//static inline void turnOffPWM(uint8_t timer) +static void turnOffPWM(uint8_t timer) +{ + switch (timer) + { + #if defined(TCCR1A) && defined(COM1A1) + case TIMER1A: cbi(TCCR1A, COM1A1); break; + #endif + #if defined(TCCR1A) && defined(COM1B1) + case TIMER1B: cbi(TCCR1A, COM1B1); break; + #endif + + #if defined(TCCR2) && defined(COM21) + case TIMER2: cbi(TCCR2, COM21); break; + #endif + + #if defined(TCCR0A) && defined(COM0A1) + case TIMER0A: cbi(TCCR0A, COM0A1); break; + #endif + + #if defined(TIMER0B) && defined(COM0B1) + case TIMER0B: cbi(TCCR0A, COM0B1); break; + #endif + #if defined(TCCR2A) && defined(COM2A1) + case TIMER2A: cbi(TCCR2A, COM2A1); break; + #endif + #if defined(TCCR2A) && defined(COM2B1) + case TIMER2B: cbi(TCCR2A, COM2B1); break; + #endif + + #if defined(TCCR3A) && defined(COM3A1) + case TIMER3A: cbi(TCCR3A, COM3A1); break; + #endif + #if defined(TCCR3A) && defined(COM3B1) + case TIMER3B: cbi(TCCR3A, COM3B1); break; + #endif + #if defined(TCCR3A) && defined(COM3C1) + case TIMER3C: cbi(TCCR3A, COM3C1); break; + #endif + + #if defined(TCCR4A) && defined(COM4A1) + case TIMER4A: cbi(TCCR4A, COM4A1); break; + #endif + #if defined(TCCR4A) && defined(COM4B1) + case TIMER4B: cbi(TCCR4A, COM4B1); break; + #endif + #if defined(TCCR4A) && defined(COM4C1) + case TIMER4C: cbi(TCCR4A, COM4C1); break; + #endif + #if defined(TCCR4C) && defined(COM4D1) + case TIMER4D: cbi(TCCR4C, COM4D1); break; + #endif + + #if defined(TCCR5A) + case TIMER5A: cbi(TCCR5A, COM5A1); break; + case TIMER5B: cbi(TCCR5A, COM5B1); break; + case TIMER5C: cbi(TCCR5A, COM5C1); break; + #endif + } +} + +void digitalWrite(uint8_t pin, uint8_t val) +{ + uint8_t timer = digitalPinToTimer(pin); + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + volatile uint8_t *out; + + if (port == NOT_A_PIN) return; + + // If the pin that support PWM output, we need to turn it off + // before doing a digital write. + if (timer != NOT_ON_TIMER) turnOffPWM(timer); + + out = portOutputRegister(port); + + uint8_t oldSREG = SREG; + cli(); + + if (val == LOW) { + *out &= ~bit; + } else { + *out |= bit; + } + + SREG = oldSREG; +} + +int digitalRead(uint8_t pin) +{ + uint8_t timer = digitalPinToTimer(pin); + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + + if (port == NOT_A_PIN) return LOW; + + // If the pin that support PWM output, we need to turn it off + // before getting a digital reading. + if (timer != NOT_ON_TIMER) turnOffPWM(timer); + + if (*portInputRegister(port) & bit) return HIGH; + return LOW; +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_private.h new file mode 100644 index 000000000..c91289e2d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_private.h @@ -0,0 +1,71 @@ +/* + wiring_private.h - Internal header file. + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ +*/ + +#ifndef WiringPrivate_h +#define WiringPrivate_h + +#include +#include +#include +#include + +#include "Arduino.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +#define EXTERNAL_INT_0 0 +#define EXTERNAL_INT_1 1 +#define EXTERNAL_INT_2 2 +#define EXTERNAL_INT_3 3 +#define EXTERNAL_INT_4 4 +#define EXTERNAL_INT_5 5 +#define EXTERNAL_INT_6 6 +#define EXTERNAL_INT_7 7 + +#if defined (SIG_INTERRUPT7) +#define EXTERNAL_NUM_INTERRUPTS 8 +#elif defined (SIG_INTERRUPT2) +#define EXTERNAL_NUM_INTERRUPTS 3 +#elif defined(__AVR_ATmega32U4__) +#define EXTERNAL_NUM_INTERRUPTS 4 +#else +#define EXTERNAL_NUM_INTERRUPTS 2 +#endif + +typedef void (*voidFuncPtr)(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_pulse.c new file mode 100644 index 000000000..0d968865d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_pulse.c @@ -0,0 +1,69 @@ +/* + wiring_pulse.c - pulseIn() function + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" +#include "pins_arduino.h" + +/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH + * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds + * to 3 minutes in length, but must be called at least a few dozen microseconds + * before the start of the pulse. */ +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) +{ + // cache the port and bit of the pin in order to speed up the + // pulse width measuring loop and achieve finer resolution. calling + // digitalRead() instead yields much coarser resolution. + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + uint8_t stateMask = (state ? bit : 0); + unsigned long width = 0; // keep initialization out of time critical area + + // convert the timeout from microseconds to a number of times through + // the initial loop; it takes 16 clock cycles per iteration. + unsigned long numloops = 0; + unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; + + // wait for any previous pulse to end + while ((*portInputRegister(port) & bit) == stateMask) + if (numloops++ == maxloops) + return 0; + + // wait for the pulse to start + while ((*portInputRegister(port) & bit) != stateMask) + if (numloops++ == maxloops) + return 0; + + // wait for the pulse to stop + while ((*portInputRegister(port) & bit) == stateMask) { + if (numloops++ == maxloops) + return 0; + width++; + } + + // convert the reading to microseconds. The loop has been determined + // to be 20 clock cycles long and have about 16 clocks between the edge + // and the start of the loop. There will be some error introduced by + // the interrupt handlers. + return clockCyclesToMicroseconds(width * 21 + 16); +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_shift.c new file mode 100644 index 000000000..cfe786758 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_shift.c @@ -0,0 +1,55 @@ +/* + wiring_shift.c - shiftOut() function + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" + +uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { + uint8_t value = 0; + uint8_t i; + + for (i = 0; i < 8; ++i) { + digitalWrite(clockPin, HIGH); + if (bitOrder == LSBFIRST) + value |= digitalRead(dataPin) << i; + else + value |= digitalRead(dataPin) << (7 - i); + digitalWrite(clockPin, LOW); + } + return value; +} + +void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) +{ + uint8_t i; + + for (i = 0; i < 8; i++) { + if (bitOrder == LSBFIRST) + digitalWrite(dataPin, !!(val & (1 << i))); + else + digitalWrite(dataPin, !!(val & (1 << (7 - i)))); + + digitalWrite(clockPin, HIGH); + digitalWrite(clockPin, LOW); + } +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/variants/gen7/pins_arduino.h b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/variants/gen7/pins_arduino.h new file mode 100644 index 000000000..23f3d2a07 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/variants/gen7/pins_arduino.h @@ -0,0 +1,235 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Modified to meet the ATmega644, ATmega644P and ATmega1284P. + + Copyright (c) 2007 David A. Mellis + Copyright (c) 2012 Markus "Traumflug" Hitter + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA +*/ + +/* + It should be noted the Gen7 board doesn't really have all those I/O pins, + most of them are hardwired on the base board already. So this pin layout + matches that of the Sanguino board, like the previous versions. +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 32 +#define NUM_ANALOG_INPUTS 8 +#define analogInputToDigitalPin(p) ((p < 8) ? (p) + 24 : -1) + +#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15) + +static const uint8_t SS = 4; +static const uint8_t MOSI = 5; +static const uint8_t MISO = 6; +static const uint8_t SCK = 7; + +static const uint8_t SDA = 17; +static const uint8_t SCL = 16; +static const uint8_t LED_BUILTIN = -1; + +static const uint8_t A0 = 24; +static const uint8_t A1 = 25; +static const uint8_t A2 = 26; +static const uint8_t A3 = 27; +static const uint8_t A4 = 28; +static const uint8_t A5 = 29; +static const uint8_t A6 = 20; +static const uint8_t A7 = 21; + +#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 33) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) (((p) <= 9) ? 2 : (((p) <= 23) ? 0 : 1)) +#define digitalPinToPCMSK(p) (((p) <= 9) ? (&PCMSK2) : (((p) <= 23) ? (&PCMSK0) : (((p) <= 33) ? (&PCMSK1) : ((uint8_t *)0)))) +#define digitalPinToPCMSKbit(p) (((p) <= 9) ? (p) : (((p) <= 23) ? ((p) - 10) : ((p) - 24))) + +#ifdef ARDUINO_MAIN + +// On the Gen7 board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA644P / SANGUINO +// +// +---\/---+ +// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) +// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) +// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) +// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) +// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) +// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) +// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) +// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) +// RST 9| |32 AREF +// VCC 10| |31 GND +// GND 11| |30 AVCC +// XTAL2 12| |29 PC7 (D 23) +// XTAL1 13| |28 PC6 (D 22) +// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI +// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO +// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS +// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK +// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA +// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL +// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM +// +--------+ +// +// TX1 and RX1 are not available on the ATmega644. + + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + &DDRA, + &DDRB, + &DDRC, + &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + &PORTA, + &PORTB, + &PORTC, + &PORTD, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + &PINA, + &PINB, + &PINC, + &PIND, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PB, /* 0 */ + PB, + PB, + PB, + PB, + PB, + PB, + PB, + PD, /* 8 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PC, /* 16 */ + PC, + PC, + PC, + PC, + PC, + PC, + PC, + PA, /* 24 */ + PA, + PA, + PA, + PA, + PA, + PA, + PA /* 31 */ +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(0), /* 0, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 16, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(7), /* 24, port A */ + _BV(6), + _BV(5), + _BV(4), + _BV(3), + _BV(2), + _BV(1), + _BV(0) +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, /* 0 - PB0 */ + NOT_ON_TIMER, /* 1 - PB1 */ + NOT_ON_TIMER, /* 2 - PB2 */ + TIMER0A, /* 3 - PB3 */ + TIMER0B, /* 4 - PB4 */ + NOT_ON_TIMER, /* 5 - PB5 */ + NOT_ON_TIMER, /* 6 - PB6 */ + NOT_ON_TIMER, /* 7 - PB7 */ + NOT_ON_TIMER, /* 8 - PD0 */ + NOT_ON_TIMER, /* 9 - PD1 */ + NOT_ON_TIMER, /* 10 - PD2 */ + NOT_ON_TIMER, /* 11 - PD3 */ + TIMER1B, /* 12 - PD4 */ + TIMER1A, /* 13 - PD5 */ + TIMER2B, /* 14 - PD6 */ + TIMER2A, /* 15 - PD7 */ + NOT_ON_TIMER, /* 16 - PC0 */ + NOT_ON_TIMER, /* 17 - PC1 */ + NOT_ON_TIMER, /* 18 - PC2 */ + NOT_ON_TIMER, /* 19 - PC3 */ + NOT_ON_TIMER, /* 20 - PC4 */ + NOT_ON_TIMER, /* 21 - PC5 */ + NOT_ON_TIMER, /* 22 - PC6 */ + NOT_ON_TIMER, /* 23 - PC7 */ + NOT_ON_TIMER, /* 24 - PA0 */ + NOT_ON_TIMER, /* 25 - PA1 */ + NOT_ON_TIMER, /* 26 - PA2 */ + NOT_ON_TIMER, /* 27 - PA3 */ + NOT_ON_TIMER, /* 28 - PA4 */ + NOT_ON_TIMER, /* 29 - PA5 */ + NOT_ON_TIMER, /* 30 - PA6 */ + NOT_ON_TIMER /* 31 - PA7 */ +}; + +#endif /* ARDUINO_MAIN */ + +#endif /* Pins_Arduino_h */ + + + From d84934d8c5bdb7f8298760ce487da4c9c33bc438 Mon Sep 17 00:00:00 2001 From: Filip Mulier Date: Mon, 10 Nov 2014 21:43:58 -0600 Subject: [PATCH 07/33] Display Filament Sensor data on 20x4 LCD Changes to support displaying the real-time filament width and the volume factor on a 20x4 LCD. The data is displayed on the 4th line. First the status message is displayed for 5 seconds, and then the filament data is displayed. The status message can be seen by re-selecting the info screen in the menu. --- Marlin/Configuration.h | 4 ++- Marlin/ultralcd.cpp | 29 +++++++++++++++++++ Marlin/ultralcd.h | 5 ++++ .../ultralcd_implementation_hitachi_HD44780.h | 16 +++++++++- 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d2aba196d..e2cadaa17 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -773,7 +773,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of * * Motherboards * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector - * 81 - Printrboard - Uses Analog input 2 on the Aux 2 connector + * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E) * 301 - Rambo - uses Analog input 3 * Note may require analog pins to be defined for different motherboards **********************************************************************/ @@ -789,6 +789,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of //defines used in the code #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially +//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec. +//#define FILAMENT_LCD_DISPLAY diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 734c859d0..5873cc714 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -20,6 +20,12 @@ int absPreheatHPBTemp; int absPreheatFanSpeed; +#ifdef FILAMENT_LCD_DISPLAY +unsigned long message_millis=0; +#endif + + + #ifdef ULTIPANEL static float manual_feedrate[] = MANUAL_FEEDRATE; #endif // ULTIPANEL @@ -195,6 +201,9 @@ static void lcd_status_screen() encoderPosition = 0; lcd_quick_feedback(); lcd_implementation_init(); // to maybe revive the LCD if static electricity killed it. +#ifdef FILAMENT_LCD_DISPLAY + message_millis=millis(); //get status message to show up for a while +#endif } #ifdef ULTIPANEL_FEEDMULTIPLY @@ -1321,6 +1330,9 @@ void lcd_setstatus(const char* message) return; strncpy(lcd_status_message, message, LCD_WIDTH); lcdDrawUpdate = 2; +#ifdef FILAMENT_LCD_DISPLAY + message_millis=millis(); //get status message to show up for a while +#endif } void lcd_setstatuspgm(const char* message) { @@ -1328,6 +1340,9 @@ void lcd_setstatuspgm(const char* message) return; strncpy_P(lcd_status_message, message, LCD_WIDTH); lcdDrawUpdate = 2; +#ifdef FILAMENT_LCD_DISPLAY + message_millis=millis(); //get status message to show up for a while +#endif } void lcd_setalertstatuspgm(const char* message) { @@ -1515,6 +1530,20 @@ char *ftostr32(const float &x) return conv; } +//Float to string with 1.23 format +char *ftostr12ns(const float &x) +{ + long xx=x*100; + + xx=abs(xx); + conv[0]=(xx/100)%10+'0'; + conv[1]='.'; + conv[2]=(xx/10)%10+'0'; + conv[3]=(xx)%10+'0'; + conv[4]=0; + return conv; +} + char *itostr31(const int &xx) { conv[0]=(xx>=0)?'+':'-'; diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 9bf685805..ca342c144 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -44,6 +44,10 @@ extern int absPreheatFanSpeed; extern bool cancel_heatup; + + #ifdef FILAMENT_LCD_DISPLAY + extern unsigned long message_millis; + #endif void lcd_buzz(long duration,uint16_t freq); bool lcd_clicked(); @@ -109,6 +113,7 @@ char *ftostr3(const float &x); char *ftostr31ns(const float &x); // float to string without sign character char *ftostr31(const float &x); char *ftostr32(const float &x); +char *ftostr12ns(const float &x); char *ftostr5(const float &x); char *ftostr51(const float &x); char *ftostr52(const float &x); diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index befb25bfd..d5f62e869 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -499,9 +499,23 @@ static void lcd_implementation_status_screen() } #endif - //Status message line on the last line + //Display both Status message line and Filament display on the last line + #ifdef FILAMENT_LCD_DISPLAY + if(message_millis+5000>millis()){ //display any status for the first 5 sec after screen is initiated + lcd.setCursor(0, LCD_HEIGHT - 1); + lcd.print(lcd_status_message); + } else { + lcd.setCursor(0,LCD_HEIGHT - 1); + lcd_printPGM(PSTR("Dia ")); + lcd.print(ftostr12ns(filament_width_meas)); + lcd_printPGM(PSTR(" V")); + lcd.print(itostr3(100.0*volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM])); + lcd.print('%'); + } + #else lcd.setCursor(0, LCD_HEIGHT - 1); lcd.print(lcd_status_message); + #endif } static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char) { From 3b1ab845362328802a10c00ef153e80ec13f1c22 Mon Sep 17 00:00:00 2001 From: Filip Mulier Date: Mon, 10 Nov 2014 21:46:37 -0600 Subject: [PATCH 08/33] Display Filament Sensor data on graphic LCD Added support to show the filament width on the status line of the graphic LCD. The status will show for 5 sec and then switch over to data. Status can be seen by clicking the button. --- Marlin/dogm_lcd_implementation.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 8d450cb37..ec661f15c 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -334,7 +334,21 @@ static void lcd_implementation_status_screen() // Status line u8g.setFont(FONT_STATUSMENU); u8g.setPrintPos(0,61); - u8g.print(lcd_status_message); + #ifndef FILAMENT_LCD_DISPLAY + u8g.print(lcd_status_message); + #else + if(message_millis+5000>millis()){ //Display both Status message line and Filament display on the last line + u8g.print(lcd_status_message); + } + else + { + lcd_printPGM(PSTR("dia:")); + u8g.print(ftostr12ns(filament_width_meas)); + lcd_printPGM(PSTR(" factor:")); + u8g.print(itostr3(extrudemultiply)); + u8g.print('%'); + } + #endif } From 1651ccc0cc483fb8f65b4d2adf0518fb6488fb3b Mon Sep 17 00:00:00 2001 From: Filip Mulier Date: Mon, 10 Nov 2014 22:05:20 -0600 Subject: [PATCH 09/33] Added Filament Sensor to the README Added some background on the filament sensor to explain it better. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 5eda8465c..8b4bebb04 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Features: * Automatic operation of extruder/cold-end cooling fans based on nozzle temperature * RC Servo Support, specify angle or duration for continuous rotation servos. * Bed Auto Leveling. +* Support for a filament diameter sensor, which adjusts extrusion volume The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments. @@ -391,6 +392,13 @@ For example, suppose you measured the endstop position and it was 20mm to the ri That's it.. enjoy never having to calibrate your Z endstop neither leveling your bed by hand anymore ;-) +Filament Sensor +--------------- +Supports the use of a real time filament diameter sensor that measures the diameter of the filament going into the extruder and then adjusts the extrusion rate to compensate for filament that does not match what is defined in the g-code. The diameter can also be displayed on the LCD screen. This potentially eliminates the need to measure filament diameter when changing spools of filament. Gcode becomes independent of the filament diameter. Can also compensate for changing diameter. +For examples of these sensors, see: http://www.thingiverse.com/thing:454584, https://www.youmagine.com/designs/filament-diameter-sensor, http://diy3dprinting.blogspot.com/2014/01/diy-filament-diameter-sensor.html. Any sensor which produces a voltage equivalent to the diameter in mm (i.e. 1v = 1mm) can be used. This provides a very simple interface and may encourage more innovation in this area. +4 new Mcodes are defined to set relevant parameters: M404, M405, M406, M407 - see above. + + Implements a delay buffer to handle the transit delay between where the filament is measured and when it gets to the extruder. From 0d35b1d0b844f50bba63f7dbadd372a40261a819 Mon Sep 17 00:00:00 2001 From: Lionello Lunesu Date: Mon, 24 Nov 2014 22:51:16 +0800 Subject: [PATCH 10/33] Allow negative values in menus --- Marlin/ultralcd.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 734c859d0..48bc7c3b0 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1004,15 +1004,15 @@ void lcd_sdcard_menu() #define menu_edit_type(_type, _name, _strFunc, scale) \ void menu_edit_ ## _name () \ { \ - if ((int32_t)encoderPosition < minEditValue) \ - encoderPosition = minEditValue; \ + if ((int32_t)encoderPosition < 0) \ + encoderPosition = 0; \ if ((int32_t)encoderPosition > maxEditValue) \ encoderPosition = maxEditValue; \ if (lcdDrawUpdate) \ - lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \ + lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \ if (LCD_CLICKED) \ { \ - *((_type*)editValue) = ((_type)encoderPosition) / scale; \ + *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \ lcd_quick_feedback(); \ currentMenu = prevMenu; \ encoderPosition = prevEncoderPosition; \ @@ -1020,15 +1020,15 @@ void lcd_sdcard_menu() } \ void menu_edit_callback_ ## _name () \ { \ - if ((int32_t)encoderPosition < minEditValue) \ - encoderPosition = minEditValue; \ + if ((int32_t)encoderPosition < 0) \ + encoderPosition = 0; \ if ((int32_t)encoderPosition > maxEditValue) \ encoderPosition = maxEditValue; \ if (lcdDrawUpdate) \ - lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \ + lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \ if (LCD_CLICKED) \ { \ - *((_type*)editValue) = ((_type)encoderPosition) / scale; \ + *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \ lcd_quick_feedback(); \ currentMenu = prevMenu; \ encoderPosition = prevEncoderPosition; \ @@ -1046,8 +1046,8 @@ void lcd_sdcard_menu() editLabel = pstr; \ editValue = ptr; \ minEditValue = minValue * scale; \ - maxEditValue = maxValue * scale; \ - encoderPosition = (*ptr) * scale; \ + maxEditValue = maxValue * scale - minEditValue; \ + encoderPosition = (*ptr) * scale - minEditValue; \ }\ static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) \ { \ @@ -1060,8 +1060,8 @@ void lcd_sdcard_menu() editLabel = pstr; \ editValue = ptr; \ minEditValue = minValue * scale; \ - maxEditValue = maxValue * scale; \ - encoderPosition = (*ptr) * scale; \ + maxEditValue = maxValue * scale - minEditValue; \ + encoderPosition = (*ptr) * scale - minEditValue; \ callbackFunc = callback;\ } menu_edit_type(int, int3, itostr3, 1) @@ -1183,7 +1183,7 @@ void lcd_init() #ifdef SR_LCD_2W_NL // Non latching 2 wire shift register pinMode (SR_DATA_PIN, OUTPUT); pinMode (SR_CLK_PIN, OUTPUT); - #elif defined(SHIFT_CLK) + #elif defined(SHIFT_CLK) pinMode(SHIFT_CLK,OUTPUT); pinMode(SHIFT_LD,OUTPUT); pinMode(SHIFT_EN,OUTPUT); From ff38d7c293cc10c65361b73eb275e28cd6894aee Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 30 Nov 2014 19:56:06 -0800 Subject: [PATCH 11/33] Print a message when printing is aborted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Messages in gcode files like “M117 Printing…†were not being cleared on Stop Print. --- Marlin/language.h | 13 +++++++++++++ Marlin/ultralcd.cpp | 2 ++ 2 files changed, 15 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index ee5d77dbc..5f412b42f 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -243,6 +243,7 @@ #define MSG_DWELL "Sleep..." #define MSG_USERWAIT "Wait for user..." #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "No move." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -369,6 +370,7 @@ #define MSG_DWELL "Uspij..." #define MSG_USERWAIT "Oczekiwanie..." #define MSG_RESUMING "Wznawianie druku" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Brak ruchu" #define MSG_KILLED "Ubity. " #define MSG_STOPPED "Zatrzymany. " @@ -497,6 +499,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Atten. de l'util." #define MSG_RESUMING "Repri. de l'impr." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Aucun mouvement." #define MSG_KILLED "MORT." #define MSG_STOPPED "STOPPE." @@ -626,6 +629,7 @@ #define MSG_DWELL "Warten..." #define MSG_USERWAIT "Warte auf Nutzer" #define MSG_RESUMING "Druck fortsetzung" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Kein Zug." #define MSG_KILLED "KILLED" #define MSG_STOPPED "GESTOPPT" @@ -752,6 +756,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Esperando ordenes" #define MSG_RESUMING "Resumiendo impre." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA" @@ -887,6 +892,7 @@ #define MSG_DWELL "Сон..." #define MSG_USERWAIT "Ожиданиие" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ðет движениÑ." #define MSG_KILLED "УБИТО." #define MSG_STOPPED "ОСТÐÐОВЛЕÐО." @@ -1013,6 +1019,7 @@ #define MSG_DWELL "Sospensione..." #define MSG_USERWAIT "Attendi Utente..." #define MSG_RESUMING "Riprendi Stampa" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Nessun Movimento." #define MSG_KILLED "UCCISO. " #define MSG_STOPPED "ARRESTATO. " @@ -1144,6 +1151,7 @@ #define MSG_DWELL "Repouso..." #define MSG_USERWAIT "Esperando ordem" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sem movimento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA. " @@ -1272,6 +1280,7 @@ #define MSG_DWELL "Nukkumassa..." #define MSG_USERWAIT "Odotet. valintaa" #define MSG_RESUMING "Jatke. tulostusta" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ei liiketta." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -1395,6 +1404,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Asperan. ordines" #define MSG_RESUMING "Contin. impresion" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "ATURADA D'EMERCH." #define MSG_STOPPED "ATURADA." @@ -1529,6 +1539,7 @@ #define MSG_DWELL "Slapen..." #define MSG_USERWAIT "Wachten..." #define MSG_RESUMING "Print hervatten" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Geen beweging." #define MSG_KILLED "AFGEBROKEN. " #define MSG_STOPPED "GESTOPT. " @@ -1654,6 +1665,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Esperant usuari.." #define MSG_RESUMING "Reprenent imp." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sense moviment." #define MSG_KILLED "PARADA DE EMERG. " #define MSG_STOPPED "ATURAT. " @@ -1778,6 +1790,7 @@ #define MSG_DWELL "Lo egin..." #define MSG_USERWAIT "Aginduak zain..." #define MSG_RESUMING "Jarraitzen inpri." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Mugimendu gabe" #define MSG_KILLED "LARRIALDI GELDIA" #define MSG_STOPPED "GELDITUTA. " diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 734c859d0..e22880ea6 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -258,6 +258,8 @@ static void lcd_sdcard_stop() autotempShutdown(); cancel_heatup = true; + + lcd_setstatus(MSG_PRINT_ABORTED); } /* Menu implementation */ From 181e487f13dda6ebc11eeee33a44eabcebf02025 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 30 Nov 2014 19:56:06 -0800 Subject: [PATCH 12/33] Print a message when printing is aborted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Messages in gcode files like “M117 Printing…†were not being cleared on Stop Print. --- Marlin/language.h | 13 +++++++++++++ Marlin/ultralcd.cpp | 2 ++ 2 files changed, 15 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index 8fd165b40..3e6e17043 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -243,6 +243,7 @@ #define MSG_DWELL "Sleep..." #define MSG_USERWAIT "Wait for user..." #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "No move." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -369,6 +370,7 @@ #define MSG_DWELL "Uspij..." #define MSG_USERWAIT "Oczekiwanie..." #define MSG_RESUMING "Wznawianie druku" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Brak ruchu" #define MSG_KILLED "Ubity. " #define MSG_STOPPED "Zatrzymany. " @@ -497,6 +499,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Atten. de l'util." #define MSG_RESUMING "Repri. de l'impr." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Aucun mouvement." #define MSG_KILLED "MORT." #define MSG_STOPPED "STOPPE." @@ -626,6 +629,7 @@ #define MSG_DWELL "Warten..." #define MSG_USERWAIT "Warte auf Nutzer" #define MSG_RESUMING "Druck fortsetzung" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Kein Zug." #define MSG_KILLED "KILLED" #define MSG_STOPPED "GESTOPPT" @@ -752,6 +756,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Esperando ordenes" #define MSG_RESUMING "Resumiendo impre." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA" @@ -887,6 +892,7 @@ #define MSG_DWELL "Сон..." #define MSG_USERWAIT "Ожиданиие" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ðет движениÑ." #define MSG_KILLED "УБИТО." #define MSG_STOPPED "ОСТÐÐОВЛЕÐО." @@ -1013,6 +1019,7 @@ #define MSG_DWELL "Sospensione..." #define MSG_USERWAIT "Attendi Utente..." #define MSG_RESUMING "Riprendi Stampa" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Nessun Movimento." #define MSG_KILLED "UCCISO. " #define MSG_STOPPED "ARRESTATO. " @@ -1144,6 +1151,7 @@ #define MSG_DWELL "Repouso..." #define MSG_USERWAIT "Esperando ordem" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sem movimento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA. " @@ -1272,6 +1280,7 @@ #define MSG_DWELL "Nukkumassa..." #define MSG_USERWAIT "Odotet. valintaa" #define MSG_RESUMING "Jatke. tulostusta" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ei liiketta." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -1395,6 +1404,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Asperan. ordines" #define MSG_RESUMING "Contin. impresion" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "ATURADA D'EMERCH." #define MSG_STOPPED "ATURADA." @@ -1529,6 +1539,7 @@ #define MSG_DWELL "Slapen..." #define MSG_USERWAIT "Wachten..." #define MSG_RESUMING "Print hervatten" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Geen beweging." #define MSG_KILLED "AFGEBROKEN. " #define MSG_STOPPED "GESTOPT. " @@ -1654,6 +1665,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Esperant usuari.." #define MSG_RESUMING "Reprenent imp." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sense moviment." #define MSG_KILLED "PARADA DE EMERG. " #define MSG_STOPPED "ATURAT. " @@ -1778,6 +1790,7 @@ #define MSG_DWELL "Lo egin..." #define MSG_USERWAIT "Aginduak zain..." #define MSG_RESUMING "Jarraitzen inpri." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Mugimendu gabe" #define MSG_KILLED "LARRIALDI GELDIA" #define MSG_STOPPED "GELDITUTA. " diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 550b9cb0b..bbfbd67f7 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -279,6 +279,8 @@ static void lcd_sdcard_stop() autotempShutdown(); cancel_heatup = true; + + lcd_setstatus(MSG_PRINT_ABORTED); } /* Menu implementation */ From 1ba7c31395585f384c382bc8aebc233d7d5a1cf5 Mon Sep 17 00:00:00 2001 From: Bo Herrmannsen Date: Thu, 4 Dec 2014 23:45:51 +0100 Subject: [PATCH 13/33] Adding Melzi board these are the files needed to support the Melzi board --- .../Arduino_1.x.x/hardware/Melzi/boards.txt | 20 + .../Melzi/bootloaders/atmega644p/ATmegaBOOT.c | 1090 +++++++++++++++++ .../atmega644p/ATmegaBOOT_1284P.hex | 117 ++ .../Melzi/bootloaders/atmega644p/Makefile | 56 + .../hardware/Melzi/cores/arduino/Arduino.h | 215 ++++ .../hardware/Melzi/cores/arduino/CDC.cpp | 239 ++++ .../hardware/Melzi/cores/arduino/Client.h | 26 + .../hardware/Melzi/cores/arduino/HID.cpp | 520 ++++++++ .../Melzi/cores/arduino/HardwareSerial.cpp | 519 ++++++++ .../Melzi/cores/arduino/HardwareSerial.h | 115 ++ .../Melzi/cores/arduino/IPAddress.cpp | 56 + .../hardware/Melzi/cores/arduino/IPAddress.h | 76 ++ .../hardware/Melzi/cores/arduino/Platform.h | 23 + .../hardware/Melzi/cores/arduino/Print.cpp | 268 ++++ .../hardware/Melzi/cores/arduino/Print.h | 81 ++ .../hardware/Melzi/cores/arduino/Printable.h | 40 + .../hardware/Melzi/cores/arduino/Server.h | 9 + .../hardware/Melzi/cores/arduino/Stream.cpp | 270 ++++ .../hardware/Melzi/cores/arduino/Stream.h | 96 ++ .../hardware/Melzi/cores/arduino/Tone.cpp | 616 ++++++++++ .../hardware/Melzi/cores/arduino/USBAPI.h | 196 +++ .../hardware/Melzi/cores/arduino/USBCore.cpp | 684 +++++++++++ .../hardware/Melzi/cores/arduino/USBCore.h | 303 +++++ .../hardware/Melzi/cores/arduino/USBDesc.h | 63 + .../hardware/Melzi/cores/arduino/Udp.h | 88 ++ .../hardware/Melzi/cores/arduino/WCharacter.h | 168 +++ .../Melzi/cores/arduino/WInterrupts.c | 322 +++++ .../hardware/Melzi/cores/arduino/WMath.cpp | 60 + .../hardware/Melzi/cores/arduino/WString.cpp | 645 ++++++++++ .../hardware/Melzi/cores/arduino/WString.h | 205 ++++ .../hardware/Melzi/cores/arduino/binary.h | 515 ++++++++ .../hardware/Melzi/cores/arduino/main.cpp | 20 + .../hardware/Melzi/cores/arduino/new.cpp | 18 + .../hardware/Melzi/cores/arduino/new.h | 22 + .../hardware/Melzi/cores/arduino/wiring.c | 324 +++++ .../Melzi/cores/arduino/wiring_analog.c | 282 +++++ .../Melzi/cores/arduino/wiring_digital.c | 178 +++ .../Melzi/cores/arduino/wiring_private.h | 71 ++ .../Melzi/cores/arduino/wiring_pulse.c | 69 ++ .../Melzi/cores/arduino/wiring_shift.c | 55 + .../Melzi/variants/standard/pins_arduino.h | 286 +++++ 41 files changed, 9026 insertions(+) create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/boards.txt create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT_1284P.hex create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/Makefile create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Arduino.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/CDC.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Client.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HID.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Platform.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Printable.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Server.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Tone.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBAPI.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBDesc.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Udp.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WCharacter.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WInterrupts.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WMath.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/binary.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/main.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.cpp create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_analog.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_digital.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_private.h create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_pulse.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_shift.c create mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/variants/standard/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/boards.txt b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/boards.txt new file mode 100644 index 000000000..9ea824446 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/boards.txt @@ -0,0 +1,20 @@ +############################################################## + +atmega1284.name=Melzi W/ ATmega1284p 16mhz + +atmega1284.upload.protocol=arduino +atmega1284.upload.maximum_size=129024 +atmega1284.upload.speed=57600 + +atmega1284.bootloader.low_fuses=0xD6 +atmega1284.bootloader.high_fuses=0xD4 +atmega1284.bootloader.extended_fuses=0xFD +atmega1284.bootloader.path=atmega644p +atmega1284.bootloader.file=ATmegaBOOT_1284P.hex +atmega1284.bootloader.unlock_bits=0x3F +atmega1284.bootloader.lock_bits=0x0F + +atmega1284.build.mcu=atmega1284p +atmega1284.build.f_cpu=16000000L +atmega1284.build.core=arduino +atmega1284.build.variant=standard diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT.c new file mode 100644 index 000000000..68b96db09 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT.c @@ -0,0 +1,1090 @@ +/**********************************************************/ +/* Serial Bootloader for Atmel megaAVR Controllers */ +/* */ +/* tested with ATmega8, ATmega128 and ATmega168 */ +/* should work with other mega's, see code for details */ +/* */ +/* ATmegaBOOT.c */ +/* */ +/* */ +/* 20090308: integrated Mega changes into main bootloader */ +/* source by D. Mellis */ +/* 20080930: hacked for Arduino Mega (with the 1280 */ +/* processor, backwards compatible) */ +/* by D. Cuartielles */ +/* 20070626: hacked for Arduino Diecimila (which auto- */ +/* resets when a USB connection is made to it) */ +/* by D. Mellis */ +/* 20060802: hacked for Arduino by D. Cuartielles */ +/* based on a previous hack by D. Mellis */ +/* and D. Cuartielles */ +/* */ +/* Monitor and debug functions were added to the original */ +/* code by Dr. Erik Lins, chip45.com. (See below) */ +/* */ +/* Thanks to Karl Pitrich for fixing a bootloader pin */ +/* problem and more informative LED blinking! */ +/* */ +/* For the latest version see: */ +/* http://www.chip45.com/ */ +/* */ +/* ------------------------------------------------------ */ +/* */ +/* based on stk500boot.c */ +/* Copyright (c) 2003, Jason P. Kyle */ +/* All rights reserved. */ +/* see avr1.org for original file and information */ +/* */ +/* This program is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU General */ +/* Public License as published by the Free Software */ +/* Foundation; either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will */ +/* be useful, but WITHOUT ANY WARRANTY; without even the */ +/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ +/* PARTICULAR PURPOSE. See the GNU General Public */ +/* License for more details. */ +/* */ +/* You should have received a copy of the GNU General */ +/* Public License along with this program; if not, write */ +/* to the Free Software Foundation, Inc., */ +/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* */ +/* Licence can be viewed at */ +/* http://www.fsf.org/licenses/gpl.txt */ +/* */ +/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ +/* m8515,m8535. ATmega161 has a very small boot block so */ +/* isn't supported. */ +/* */ +/* Tested with m168 */ +/**********************************************************/ + +/* $Id$ */ + + +/* some includes */ +#include +#include +#include +#include +#include +#include + +/* the current avr-libc eeprom functions do not support the ATmega168 */ +/* own eeprom write/read functions are used instead */ +#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) +#include +#endif + +/* Use the F_CPU defined in Makefile */ + +/* 20060803: hacked by DojoCorp */ +/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ +/* set the waiting time for the bootloader */ +/* get this from the Makefile instead */ +/* #define MAX_TIME_COUNT (F_CPU>>4) */ + +/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ +#define MAX_ERROR_COUNT 5 +#define NUM_LED_FLASHES 3 +/* set the UART baud rate */ +/* 20060803: hacked by DojoCorp */ +//#define BAUD_RATE 115200 +#ifndef BAUD_RATE +#define BAUD_RATE 19200 +#endif + + +/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ +/* never allow AVR Studio to do an update !!!! */ +#define HW_VER 0x02 +#define SW_MAJOR 0x01 +#define SW_MINOR 0x10 + + +/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ +/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ +/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ +/* BL0... means UART0, BL1... means UART1 */ +#ifdef __AVR_ATmega128__ +#define BL_DDR DDRF +#define BL_PORT PORTF +#define BL_PIN PINF +#define BL0 PINF7 +#define BL1 PINF6 +#elif defined __AVR_ATmega1280__ +/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ +#elif defined __AVR_ATmega1284P__ + +#else +/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ +#define BL_DDR DDRD +#define BL_PORT PORTD +#define BL_PIN PIND +#define BL PIND6 +#endif + + +/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ +/* if monitor functions are included, LED goes on after monitor was entered */ +#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ +/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB7 +#elif defined __AVR_ATmega1284P__ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB0 +#else +/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ +/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB5 +#endif + + +/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) +//#define MONITOR 1 +#endif +#undef MONITOR + +/* define various device id's */ +/* manufacturer byte is always the same */ +#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( + +#if defined __AVR_ATmega1280__ +#define SIG2 0x97 +#define SIG3 0x03 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega1284P__ +#define SIG2 0x97 +#define SIG3 0x05 +#define PAGE_SIZE 0x080U //128 words + +#elif defined __AVR_ATmega1281__ +#define SIG2 0x97 +#define SIG3 0x04 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega128__ +#define SIG2 0x97 +#define SIG3 0x02 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega64__ +#define SIG2 0x96 +#define SIG3 0x02 +#define PAGE_SIZE 0x80U //128 words + +#elif defined __AVR_ATmega32__ +#define SIG2 0x95 +#define SIG3 0x02 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega16__ +#define SIG2 0x94 +#define SIG3 0x03 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega8__ +#define SIG2 0x93 +#define SIG3 0x07 +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega88__ +#define SIG2 0x93 +#define SIG3 0x0a +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega168__ +#define SIG2 0x94 +#define SIG3 0x06 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega328P__ +#define SIG2 0x95 +#define SIG3 0x0F +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega162__ +#define SIG2 0x94 +#define SIG3 0x04 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega163__ +#define SIG2 0x94 +#define SIG3 0x02 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega169__ +#define SIG2 0x94 +#define SIG3 0x05 +#define PAGE_SIZE 0x40U //64 words + +#elif defined __AVR_ATmega8515__ +#define SIG2 0x93 +#define SIG3 0x06 +#define PAGE_SIZE 0x20U //32 words + +#elif defined __AVR_ATmega8535__ +#define SIG2 0x93 +#define SIG3 0x08 +#define PAGE_SIZE 0x20U //32 words +#endif + + +/* function prototypes */ +void putch(char); +char getch(void); +void getNch(uint8_t); +void byte_response(uint8_t); +void nothing_response(void); +char gethex(void); +void puthex(char); +void flash_led(uint8_t); + +/* some variables */ +union address_union +{ + uint16_t word; + uint8_t byte[2]; +} address; + +union length_union +{ + uint16_t word; + uint8_t byte[2]; +} length; + +struct flags_struct +{ + unsigned eeprom : 1; + unsigned rampz : 1; +} flags; + +uint8_t buff[256]; +uint8_t address_high; + + +uint8_t i; +uint8_t bootuart = 0; + +uint8_t error_count = 0; + +void (*app_start)(void) = 0x0000; + + +/* main program starts here */ +int main(void) +{ + uint8_t ch,ch2; + uint16_t w; +#ifdef WATCHDOG_MODS + ch = MCUSR; + MCUSR = 0; + WDTCSR |= _BV(WDCE) | _BV(WDE); + WDTCSR = 0; + // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. + if (! (ch & _BV(EXTRF))) // if its a not an external reset... + app_start(); // skip bootloader +#else + asm volatile("nop\n\t"); +#endif + /* set pin direction for bootloader pin and enable pullup */ + /* for ATmega128, two pins need to be initialized */ +#ifdef __AVR_ATmega128__ + BL_DDR &= ~_BV(BL0); + BL_DDR &= ~_BV(BL1); + BL_PORT |= _BV(BL0); + BL_PORT |= _BV(BL1); +#else + /* We run the bootloader regardless of the state of this pin. Thus, don't + put it in a different state than the other pins. --DAM, 070709 + This also applies to Arduino Mega -- DC, 080930 + BL_DDR &= ~_BV(BL); + BL_PORT |= _BV(BL); + */ +#endif +#ifdef __AVR_ATmega128__ + /* check which UART should be used for booting */ + if(bit_is_clear(BL_PIN, BL0)) + { + bootuart = 1; + } + else if(bit_is_clear(BL_PIN, BL1)) + { + bootuart = 2; + } +#endif +#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__ + /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ + /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ + bootuart = 1; +#endif + /* check if flash is programmed already, if not start bootloader anyway */ + if(pgm_read_byte_near(0x0000) != 0xFF) + { +#ifdef __AVR_ATmega128__ + /* no UART was selected, start application */ + if(!bootuart) + { + app_start(); + } +#else + /* check if bootloader pin is set low */ + /* we don't start this part neither for the m8, nor m168 */ + //if(bit_is_set(BL_PIN, BL)) { + // app_start(); + // } +#endif + } +#ifdef __AVR_ATmega128__ + /* no bootuart was selected, default to uart 0 */ + if(!bootuart) + { + bootuart = 1; + } +#endif + /* initialize UART(s) depending on CPU defined */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + if(bootuart == 1) + { + UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSR0A = 0x00; + UCSR0C = 0x06; + UCSR0B = _BV(TXEN0)|_BV(RXEN0); + } + if(bootuart == 2) + { + UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSR1A = 0x00; + UCSR1C = 0x06; + UCSR1B = _BV(TXEN1)|_BV(RXEN1); + } +#elif defined __AVR_ATmega163__ + UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSRA = 0x00; + UCSRB = _BV(TXEN)|_BV(RXEN); +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) +#ifdef DOUBLE_SPEED + UCSR0A = (1<> 8; +#else + UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; +#endif + UCSR0B = (1<>8; // set baud rate + UBRRL = (((F_CPU/BAUD_RATE)/16)-1); + UCSRB = (1<> 8; + UCSRA = 0x00; + UCSRC = 0x06; + UCSRB = _BV(TXEN)|_BV(RXEN); +#endif +#if defined __AVR_ATmega1280__ + /* Enable internal pull-up resistor on pin D0 (RX), in order + to supress line noise that prevents the bootloader from + timing out (DAM: 20070509) */ + /* feature added to the Arduino Mega --DC: 080930 */ + DDRE &= ~_BV(PINE0); + PORTE |= _BV(PINE0); +#endif + /* set LED pin as output */ + LED_DDR |= _BV(LED); + /* flash onboard LED to signal entering of bootloader */ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + // 4x for UART0, 5x for UART1 + flash_led(NUM_LED_FLASHES + bootuart); +#else + flash_led(NUM_LED_FLASHES); +#endif + /* 20050803: by DojoCorp, this is one of the parts provoking the + system to stop listening, cancelled from the original */ + //putch('\0'); + /* forever loop */ + for (;;) + { + /* get character from UART */ + ch = getch(); + /* A bunch of if...else if... gives smaller code than switch...case ! */ + /* Hello is anyone home ? */ + if(ch=='0') + { + nothing_response(); + } + /* Request programmer ID */ + /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ + /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ + else if(ch=='1') + { + if (getch() == ' ') + { + putch(0x14); + putch('A'); + putch('V'); + putch('R'); + putch(' '); + putch('I'); + putch('S'); + putch('P'); + putch(0x10); + } + else + { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } + } + /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ + else if(ch=='@') + { + ch2 = getch(); + if (ch2>0x85) getch(); + nothing_response(); + } + /* AVR ISP/STK500 board requests */ + else if(ch=='A') + { + ch2 = getch(); + if(ch2==0x80) byte_response(HW_VER); // Hardware version + else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version + else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version + else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 + else byte_response(0x00); // Covers various unnecessary responses we don't care about + } + /* Device Parameters DON'T CARE, DEVICE IS FIXED */ + else if(ch=='B') + { + getNch(20); + nothing_response(); + } + /* Parallel programming stuff DON'T CARE */ + else if(ch=='E') + { + getNch(5); + nothing_response(); + } + /* P: Enter programming mode */ + /* R: Erase device, don't care as we will erase one page at a time anyway. */ + else if(ch=='P' || ch=='R') + { + nothing_response(); + } + /* Leave programming mode */ + else if(ch=='Q') + { + nothing_response(); +#ifdef WATCHDOG_MODS + // autoreset via watchdog (sneaky!) + WDTCSR = _BV(WDE); + while (1); // 16 ms +#endif + } + /* Set address, little endian. EEPROM in bytes, FLASH in words */ + /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ + /* This might explain why little endian was used here, big endian used everywhere else. */ + else if(ch=='U') + { + address.byte[0] = getch(); + address.byte[1] = getch(); + nothing_response(); + } + /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ + else if(ch=='V') + { + if (getch() == 0x30) + { + getch(); + ch = getch(); + getch(); + if (ch == 0) + { + byte_response(SIG1); + } + else if (ch == 1) + { + byte_response(SIG2); + } + else + { + byte_response(SIG3); + } + } + else + { + getNch(3); + byte_response(0x00); + } + } + /* Write memory, length is big endian and is in bytes */ + else if(ch=='d') + { + length.byte[1] = getch(); + length.byte[0] = getch(); + flags.eeprom = 0; + if (getch() == 'E') flags.eeprom = 1; + for (w=0; w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME + else address_high = 0x00; +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) + RAMPZ = address_high; +#endif + address.word = address.word << 1; //address * 2 -> byte location + /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ + if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes + cli(); //Disable interrupts, just to be sure +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) + while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete +#else + while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete +#endif + asm volatile( + "clr r17 \n\t" //page_word_count + "lds r30,address \n\t" //Address of FLASH location (in bytes) + "lds r31,address+1 \n\t" + "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM + "ldi r29,hi8(buff) \n\t" + "lds r24,length \n\t" //Length of data to be written (in bytes) + "lds r25,length+1 \n\t" + "length_loop: \n\t" //Main loop, repeat for number of words in block + "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page + "brne no_page_erase \n\t" + "wait_spm1: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm1 \n\t" + "ldi r16,0x03 \n\t" //Erase page pointed to by Z + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "wait_spm2: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm2 \n\t" + "ldi r16,0x11 \n\t" //Re-enable RWW section + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "no_page_erase: \n\t" + "ld r0,Y+ \n\t" //Write 2 bytes into page buffer + "ld r1,Y+ \n\t" + "wait_spm3: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm3 \n\t" + "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer + "sts %0,r16 \n\t" + "spm \n\t" + "inc r17 \n\t" //page_word_count++ + "cpi r17,%1 \n\t" + "brlo same_page \n\t" //Still same page in FLASH + "write_page: \n\t" + "clr r17 \n\t" //New page, write current one first + "wait_spm4: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm4 \n\t" +#ifdef __AVR_ATmega163__ + "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write +#endif + "ldi r16,0x05 \n\t" //Write page pointed to by Z + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" + "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) +#endif + "wait_spm5: \n\t" + "lds r16,%0 \n\t" //Wait for previous spm to complete + "andi r16,1 \n\t" + "cpi r16,1 \n\t" + "breq wait_spm5 \n\t" + "ldi r16,0x11 \n\t" //Re-enable RWW section + "sts %0,r16 \n\t" + "spm \n\t" +#ifdef __AVR_ATmega163__ + ".word 0xFFFF \n\t" + "nop \n\t" +#endif + "same_page: \n\t" + "adiw r30,2 \n\t" //Next word in FLASH + "sbiw r24,2 \n\t" //length-2 + "breq final_write \n\t" //Finished + "rjmp length_loop \n\t" + "final_write: \n\t" + "cpi r17,0 \n\t" + "breq block_done \n\t" + "adiw r24,2 \n\t" //length+2, fool above check on length after short page write + "rjmp write_page \n\t" + "block_done: \n\t" + "clr __zero_reg__ \n\t" //restore zero register +#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ || __AVR_ATmega1284P__ + : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" +#else + : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" +#endif + ); + /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ + /* exit the bootloader without a power cycle anyhow */ + } + putch(0x14); + putch(0x10); + } + else + { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } + } + /* Read memory block mode, length is big endian. */ + else if(ch=='t') + { + length.byte[1] = getch(); + length.byte[0] = getch(); +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME + else flags.rampz = 0; +#endif + address.word = address.word << 1; // address * 2 -> byte location + if (getch() == 'E') flags.eeprom = 1; + else flags.eeprom = 0; + if (getch() == ' ') // Command terminator + { + putch(0x14); + for (w=0; w < length.word; w++) // Can handle odd and even lengths okay + { + if (flags.eeprom) // Byte access EEPROM read + { +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + while(EECR & (1<= 'a') + { + return (a - 'a' + 0x0a); + } + else if(a >= '0') + { + return(a - '0'); + } + return a; +} + + +char gethex(void) +{ + return (gethexnib() << 4) + gethexnib(); +} + + +void puthex(char ch) +{ + char ah; + ah = ch >> 4; + if(ah >= 0x0a) + { + ah = ah - 0x0a + 'a'; + } + else + { + ah += '0'; + } + ch &= 0x0f; + if(ch >= 0x0a) + { + ch = ch - 0x0a + 'a'; + } + else + { + ch += '0'; + } + putch(ah); + putch(ch); +} + + +void putch(char ch) +{ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + if(bootuart == 1) + { + while (!(UCSR0A & _BV(UDRE0))); + UDR0 = ch; + } + else if (bootuart == 2) + { + while (!(UCSR1A & _BV(UDRE1))); + UDR1 = ch; + } +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + while (!(UCSR0A & _BV(UDRE0))); + UDR0 = ch; +#else + /* m8,16,32,169,8515,8535,163 */ + while (!(UCSRA & _BV(UDRE))); + UDR = ch; +#endif +} + + +char getch(void) +{ +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + uint32_t count = 0; + if(bootuart == 1) + { + while(!(UCSR0A & _BV(RXC0))) + { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR0; + } + else if(bootuart == 2) + { + while(!(UCSR1A & _BV(RXC1))) + { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR1; + } + return 0; +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + uint32_t count = 0; + while(!(UCSR0A & _BV(RXC0))) + { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR0; +#else + /* m8,16,32,169,8515,8535,163 */ + uint32_t count = 0; + while(!(UCSRA & _BV(RXC))) + { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + return UDR; +#endif +} + + +void getNch(uint8_t count) +{ + while(count--) + { +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) + if(bootuart == 1) + { + while(!(UCSR0A & _BV(RXC0))); + UDR0; + } + else if(bootuart == 2) + { + while(!(UCSR1A & _BV(RXC1))); + UDR1; + } +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) + getch(); +#else + /* m8,16,32,169,8515,8535,163 */ + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + //while(!(UCSRA & _BV(RXC))); + //UDR; + getch(); // need to handle time out +#endif + } +} + + +void byte_response(uint8_t val) +{ + if (getch() == ' ') + { + putch(0x14); + putch(val); + putch(0x10); + } + else + { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } +} + + +void nothing_response(void) +{ + if (getch() == ' ') + { + putch(0x14); + putch(0x10); + } + else + { + if (++error_count == MAX_ERROR_COUNT) + app_start(); + } +} + +void flash_led(uint8_t count) +{ + while (count--) + { + LED_PORT |= _BV(LED); + _delay_ms(100); + LED_PORT &= ~_BV(LED); + _delay_ms(100); + } +} + + +/* end of file ATmegaBOOT.c */ diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT_1284P.hex b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT_1284P.hex new file mode 100644 index 000000000..b06d866fc --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT_1284P.hex @@ -0,0 +1,117 @@ +:020000021000EC +:10F800000C9446FC0C9465FC0C9465FC0C9465FC13 +:10F810000C9465FC0C9465FC0C9465FC0C9465FCE4 +:10F820000C9465FC0C9465FC0C9465FC0C9465FCD4 +:10F830000C9465FC0C9465FC0C9465FC0C9465FCC4 +:10F840000C9465FC0C9465FC0C9465FC0C9465FCB4 +:10F850000C9465FC0C9465FC0C9465FC0C9465FCA4 +:10F860000C9465FC0C9465FC0C9465FC0C9465FC94 +:10F870000C9465FC0C9465FC0C9465FC0C9465FC84 +:10F880000C9465FC0C9465FC0C9465FC11241FBE63 +:10F89000CFEFD0E4DEBFCDBF11E0A0E0B1E0E6E005 +:10F8A000FFEF01E00BBF02C007900D92A230B1073D +:10F8B000D9F712E0A2E0B1E001C01D92AD30B1076E +:10F8C000E1F70E945FFD0C9481FF0C9400FC909185 +:10F8D0000201913039F49091C00095FFFCCF8093E4 +:10F8E000C6000895923031F49091C80095FFFCCF86 +:10F8F0008093CE0008951F93982F95959595959593 +:10F900009595905D182F1F701A3014F0195A01C088 +:10F91000105D892F0E9467FC812F0E9467FC1F9158 +:10F920000895EF92FF920F931F938091020181300F +:10F93000F1F4EE24FF24870113C00894E11CF11CAC +:10F94000011D111D81E0E81682E1F8068AE708072B +:10F9500080E0180728F0E0910401F0910501099575 +:10F960008091C00087FFE9CF8091C60021C082301E +:10F97000F1F4EE24FF24870113C00894E11CF11C6C +:10F98000011D111D81E0E81682E1F8068AE70807EB +:10F9900080E0180728F0E0910401F0910501099535 +:10F9A0008091C80087FFE9CF8091CE0001C080E040 +:10F9B0001F910F91FF90EF9008951F930E9491FC6B +:10F9C000182F0E9467FC113614F0175503C010332E +:10F9D0000CF01053812F1F9108951F930E94DDFC9E +:10F9E000182F0E94DDFC1295107F810F1F91089542 +:10F9F0009091020112C0913039F42091C00027FF8C +:10FA0000FCCF2091C60008C0923031F42091C8008C +:10FA100027FFFCCF2091CE008150882361F7089505 +:10FA20001F93182F0E9491FC803251F484E10E94B0 +:10FA300067FC812F0E9467FC80E10E9467FC0CC07C +:10FA4000809103018F5F80930301853029F4E09159 +:10FA50000401F091050109951F9108950E9491FC00 +:10FA6000803239F484E10E9467FC80E10E9467FCE7 +:10FA70000895809103018F5F80930301853029F4FD +:10FA8000E0910401F09105010995089515C0289AA7 +:10FA90002FEF31EE44E0215030404040E1F700C00C +:10FAA000000028982FEF31EE44E0215030404040D4 +:10FAB000E1F700C000008150882349F70895BF9204 +:10FAC000CF92DF92EF92FF920F931F93CF93DF932A +:10FAD00094B714BE8091600088618093600010929A +:10FAE000600091FD05C0E0910401F09105010995C8 +:10FAF00081E08093020180E18093C4001092C500F0 +:10FB00001092C00086E08093C20088E18093C1001B +:10FB1000209A84E00E9446FDBB24B3940E9491FC8D +:10FB2000803309F441C08133E1F40E9491FC8032BA +:10FB300009F0C3C184E10E9467FC81E40E9467FC74 +:10FB400086E50E9467FC82E50E9467FC80E20E94D5 +:10FB500067FC89E40E9467FC83E50E9467FC80E5FE +:10FB600029C1803439F40E9491FC8638E8F00E9463 +:10FB700091FC1AC0813499F40E9491FC803811F4F0 +:10FB800082E098C1813811F481E094C1823811F487 +:10FB900080E190C1883909F08CC183E08BC1823447 +:10FBA00031F484E10E94F8FC0E942EFDB7CF853429 +:10FBB00011F485E0F7CF8035B9F38235A9F38135AB +:10FBC00031F40E942EFD88E080936000FFCF8535E0 +:10FBD00049F40E9491FC809306010E9491FC80935D +:10FBE0000701E2CF8635C9F40E9491FC803389F485 +:10FBF0000E9491FC0E9491FC082F0E9491FC00231E +:10FC000011F48EE157C1013011F487E953C185E049 +:10FC100051C183E00E94F8FC4CC1843609F0D0C089 +:10FC20000E9491FC809309020E9491FC809308023B +:10FC300080910C028E7F80930C020E9491FC85348F +:10FC400029F480910C02816080930C0258E0C52E4B +:10FC500051E0D52E760100E010E007C00E9491FC33 +:10FC6000F70181937F010F5F1F4F809108029091F0 +:10FC700009020817190790F30E9491FC803209F0DD +:10FC80001CC180910C0280FF29C0809106019091D7 +:10FC90000701880F991F909307018093060100E0E8 +:10FCA00010E014C0F60161916F01809106019091FE +:10FCB00007010E9473FF8091060190910701019650 +:10FCC00090930701809306010F5F1F4F80910802F8 +:10FCD000909109020817190728F36BC0809107015A +:10FCE000880F880B8B2180930B028BBF80910601BC +:10FCF00090910701880F991F909307018093060147 +:10FD00008091080280FF09C0809108029091090249 +:10FD100001969093090280930802F894F999FECF16 +:10FD20001127E0910601F0910701C8E0D1E0809130 +:10FD3000080290910902103091F40091570001706F +:10FD40000130D9F303E000935700E8950091570084 +:10FD500001700130D9F301E100935700E895099053 +:10FD600019900091570001700130D9F301E0009320 +:10FD70005700E8951395103898F011270091570017 +:10FD800001700130D9F305E000935700E895009128 +:10FD9000570001700130D9F301E100935700E89555 +:10FDA0003296029709F0C7CF103011F00296E5CFD6 +:10FDB000112484E10E9467FC80E10E9467FCAECEC2 +:10FDC000843709F063C00E9491FC809309020E946D +:10FDD00091FC809308028091060190910701209187 +:10FDE0000C0297FF02C0226001C02D7F20930C02FD +:10FDF000880F991F90930701809306010E9491FC40 +:10FE000020910C02853411F4216001C02E7F2093D3 +:10FE10000C020E9491FC803209F080CE84E10E94A5 +:10FE200067FC00E010E02AC080910C0280FF07C050 +:10FE300080910601909107010E946BFF12C0E09132 +:10FE40000601F091070181FD02C084910AC0CF0133 +:10FE5000A0E0B0E080509040AF4FBF4FABBFFC017F +:10FE600087910E9467FC809106019091070101969D +:10FE700090930701809306010F5F1F4F8091080246 +:10FE8000909109020817190778F296CF853779F40F +:10FE90000E9491FC803289F484E10E9467FC8EE12B +:10FEA0000E9467FC87E90E9467FC85E083CF863764 +:10FEB00021F480E00E9410FD31CE809103018F5F1C +:10FEC00080930301853009F029CEE0910401F0917F +:10FED0000501099523CEF999FECF92BD81BDF89A0F +:10FEE000992780B50895262FF999FECF1FBA92BDA4 +:10FEF00081BD20BD0FB6F894FA9AF99A0FBE01960B +:06FF00000895F894FFCF04 +:02FF0600800079 +:040000031000F800F1 +:00000001FF diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/Makefile b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/Makefile new file mode 100644 index 000000000..b9ad6039b --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/Makefile @@ -0,0 +1,56 @@ +# Makefile for ATmegaBOOT +# E.Lins, 18.7.2005 +# $Id$ + + +# program name should not be changed... +PROGRAM = ATmegaBOOT_1284P + +# enter the target CPU frequency +AVR_FREQ = 16000000L + +MCU_TARGET = atmega1284p +LDSECTION = --section-start=.text=0x1F800 + +OBJ = $(PROGRAM).o +OPTIMIZE = -Os + +DEFS = -DWATCHDOG_MODS -DBAUD_RATE=57600 +LIBS = + +CC = avr-gcc + + +# Override is only needed by avr-lib build system. + +override CFLAGS = -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) +override LDFLAGS = -Wl,$(LDSECTION) +#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) + +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump + +all: CFLAGS += '-DMAX_TIME_COUNT=16000000L>>1' -DADABOOT +all: $(PROGRAM).hex + +$(PROGRAM).hex: $(PROGRAM).elf + $(OBJCOPY) -j .text -j .data -O ihex $< $@ + +$(PROGRAM).elf: $(OBJ) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) + +$(OBJ): ATmegaBOOT.c + avr-gcc $(CFLAGS) $(LDFLAGS) -c -Wall -mmcu=$(MCU_TARGET) ATmegaBOOT.c -o $(PROGRAM).o + +%.lst: %.elf + $(OBJDUMP) -h -S $< > $@ + +%.srec: %.elf + $(OBJCOPY) -j .text -j .data -O srec $< $@ + +%.bin: %.elf + $(OBJCOPY) -j .text -j .data -O binary $< $@ + +clean: + rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Arduino.h new file mode 100644 index 000000000..b26582589 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Arduino.h @@ -0,0 +1,215 @@ +#ifndef Arduino_h +#define Arduino_h + +#include +#include +#include + +#include +#include +#include + +#include "binary.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +#define HIGH 0x1 +#define LOW 0x0 + +#define INPUT 0x0 +#define OUTPUT 0x1 +#define INPUT_PULLUP 0x2 + +#define true 0x1 +#define false 0x0 + +#define PI 3.1415926535897932384626433832795 +#define HALF_PI 1.5707963267948966192313216916398 +#define TWO_PI 6.283185307179586476925286766559 +#define DEG_TO_RAD 0.017453292519943295769236907684886 +#define RAD_TO_DEG 57.295779513082320876798154814105 + +#define SERIAL 0x0 +#define DISPLAY 0x1 + +#define LSBFIRST 0 +#define MSBFIRST 1 + +#define CHANGE 1 +#define FALLING 2 +#define RISING 3 + +#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) +#define DEFAULT 0 +#define EXTERNAL 1 +#define INTERNAL 2 +#else +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) +#define INTERNAL1V1 2 +#define INTERNAL2V56 3 +#else +#define INTERNAL 3 +#endif +#define DEFAULT 1 +#define EXTERNAL 0 +#endif + +// undefine stdlib's abs if encountered +#ifdef abs +#undef abs +#endif + +#define min(a,b) ((a)<(b)?(a):(b)) +#define max(a,b) ((a)>(b)?(a):(b)) +#define abs(x) ((x)>0?(x):-(x)) +#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) +#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) +#define radians(deg) ((deg)*DEG_TO_RAD) +#define degrees(rad) ((rad)*RAD_TO_DEG) +#define sq(x) ((x)*(x)) + +#define interrupts() sei() +#define noInterrupts() cli() + +#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) +#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) +#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) + +#define lowByte(w) ((uint8_t) ((w) & 0xff)) +#define highByte(w) ((uint8_t) ((w) >> 8)) + +#define bitRead(value, bit) (((value) >> (bit)) & 0x01) +#define bitSet(value, bit) ((value) |= (1UL << (bit))) +#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) +#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) + + +typedef unsigned int word; + +#define bit(b) (1UL << (b)) + +typedef uint8_t boolean; +typedef uint8_t byte; + +void init(void); + +void pinMode(uint8_t, uint8_t); +void digitalWrite(uint8_t, uint8_t); +int digitalRead(uint8_t); +int analogRead(uint8_t); +void analogReference(uint8_t mode); +void analogWrite(uint8_t, int); + +unsigned long millis(void); +unsigned long micros(void); +void delay(unsigned long); +void delayMicroseconds(unsigned int us); +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); + +void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); +uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); + +void attachInterrupt(uint8_t, void (*)(void), int mode); +void detachInterrupt(uint8_t); + +void setup(void); +void loop(void); + +// Get the bit location within the hardware port of the given virtual pin. +// This comes from the pins_*.c file for the active board configuration. + +#define analogInPinToBit(P) (P) + +// On the ATmega1280, the addresses of some of the port registers are +// greater than 255, so we can't store them in uint8_t's. +extern const uint16_t PROGMEM port_to_mode_PGM[]; +extern const uint16_t PROGMEM port_to_input_PGM[]; +extern const uint16_t PROGMEM port_to_output_PGM[]; + +extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; +extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; +extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; + +// Get the bit location within the hardware port of the given virtual pin. +// This comes from the pins_*.c file for the active board configuration. +// +// These perform slightly better as macros compared to inline functions +// +#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) +#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) +#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) +#define analogInPinToBit(P) (P) +#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) +#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) +#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) + +#define NOT_A_PIN 0 +#define NOT_A_PORT 0 + +#ifdef ARDUINO_MAIN +#define PA 1 +#define PB 2 +#define PC 3 +#define PD 4 +#define PE 5 +#define PF 6 +#define PG 7 +#define PH 8 +#define PJ 10 +#define PK 11 +#define PL 12 +#endif + +#define NOT_ON_TIMER 0 +#define TIMER0A 1 +#define TIMER0B 2 +#define TIMER1A 3 +#define TIMER1B 4 +#define TIMER2 5 +#define TIMER2A 6 +#define TIMER2B 7 + +#define TIMER3A 8 +#define TIMER3B 9 +#define TIMER3C 10 +#define TIMER4A 11 +#define TIMER4B 12 +#define TIMER4C 13 +#define TIMER4D 14 +#define TIMER5A 15 +#define TIMER5B 16 +#define TIMER5C 17 + +#ifdef __cplusplus +} // extern "C" +#endif + +#ifdef __cplusplus +#include "WCharacter.h" +#include "WString.h" +#include "HardwareSerial.h" + +uint16_t makeWord(uint16_t w); +uint16_t makeWord(byte h, byte l); + +#define word(...) makeWord(__VA_ARGS__) + +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); + +void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); +void noTone(uint8_t _pin); + +// WMath prototypes +long random(long); +long random(long, long); +void randomSeed(unsigned int); +long map(long, long, long, long, long); + +#endif + +#include "pins_arduino.h" + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/CDC.cpp new file mode 100644 index 000000000..701e48398 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/CDC.cpp @@ -0,0 +1,239 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include + +#if defined(USBCON) +#ifdef CDC_ENABLED + +#if (RAMEND < 1000) +#define SERIAL_BUFFER_SIZE 16 +#else +#define SERIAL_BUFFER_SIZE 64 +#endif + +struct ring_buffer +{ + unsigned char buffer[SERIAL_BUFFER_SIZE]; + volatile int head; + volatile int tail; +}; + +ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; + +typedef struct +{ + u32 dwDTERate; + u8 bCharFormat; + u8 bParityType; + u8 bDataBits; + u8 lineState; +} LineInfo; + +static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; + +#define WEAK __attribute__ ((weak)) + +extern const CDCDescriptor _cdcInterface PROGMEM; +const CDCDescriptor _cdcInterface = +{ + D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), + + // CDC communication interface + D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), + D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) + D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) + D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported + D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 + D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), + + // CDC data interface + D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), + D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), + D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) +}; + +int WEAK CDC_GetInterface(u8* interfaceNum) +{ + interfaceNum[0] += 2; // uses 2 + return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); +} + +bool WEAK CDC_Setup(Setup& setup) +{ + u8 r = setup.bRequest; + u8 requestType = setup.bmRequestType; + + if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) + { + if (CDC_GET_LINE_CODING == r) + { + USB_SendControl(0,(void*)&_usbLineInfo,7); + return true; + } + } + + if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) + { + if (CDC_SET_LINE_CODING == r) + { + USB_RecvControl((void*)&_usbLineInfo,7); + return true; + } + + if (CDC_SET_CONTROL_LINE_STATE == r) + { + _usbLineInfo.lineState = setup.wValueL; + + // auto-reset into the bootloader is triggered when the port, already + // open at 1200 bps, is closed. this is the signal to start the watchdog + // with a relatively long period so it can finish housekeeping tasks + // like servicing endpoints before the sketch ends + if (1200 == _usbLineInfo.dwDTERate) { + // We check DTR state to determine if host port is open (bit 0 of lineState). + if ((_usbLineInfo.lineState & 0x01) == 0) { + *(uint16_t *)0x0800 = 0x7777; + wdt_enable(WDTO_120MS); + } else { + // Most OSs do some intermediate steps when configuring ports and DTR can + // twiggle more than once before stabilizing. + // To avoid spurious resets we set the watchdog to 250ms and eventually + // cancel if DTR goes back high. + + wdt_disable(); + wdt_reset(); + *(uint16_t *)0x0800 = 0x0; + } + } + return true; + } + } + return false; +} + + +int _serialPeek = -1; +void Serial_::begin(uint16_t baud_count) +{ +} + +void Serial_::end(void) +{ +} + +void Serial_::accept(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; + + // if we should be storing the received character into the location + // just before the tail (meaning that the head would advance to the + // current location of the tail), we're about to overflow the buffer + // and so we don't write the character or advance the head. + + // while we have room to store a byte + while (i != buffer->tail) { + int c = USB_Recv(CDC_RX); + if (c == -1) + break; // no more data + buffer->buffer[buffer->head] = c; + buffer->head = i; + + i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; + } +} + +int Serial_::available(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; +} + +int Serial_::peek(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + if (buffer->head == buffer->tail) { + return -1; + } else { + return buffer->buffer[buffer->tail]; + } +} + +int Serial_::read(void) +{ + ring_buffer *buffer = &cdc_rx_buffer; + // if the head isn't ahead of the tail, we don't have any characters + if (buffer->head == buffer->tail) { + return -1; + } else { + unsigned char c = buffer->buffer[buffer->tail]; + buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; + return c; + } +} + +void Serial_::flush(void) +{ + USB_Flush(CDC_TX); +} + +size_t Serial_::write(uint8_t c) +{ + /* only try to send bytes if the high-level CDC connection itself + is open (not just the pipe) - the OS should set lineState when the port + is opened and clear lineState when the port is closed. + bytes sent before the user opens the connection or after + the connection is closed are lost - just like with a UART. */ + + // TODO - ZE - check behavior on different OSes and test what happens if an + // open connection isn't broken cleanly (cable is yanked out, host dies + // or locks up, or host virtual serial port hangs) + if (_usbLineInfo.lineState > 0) { + int r = USB_Send(CDC_TX,&c,1); + if (r > 0) { + return r; + } else { + setWriteError(); + return 0; + } + } + setWriteError(); + return 0; +} + +// This operator is a convenient way for a sketch to check whether the +// port has actually been configured and opened by the host (as opposed +// to just being connected to the host). It can be used, for example, in +// setup() before printing to ensure that an application on the host is +// actually ready to receive and display the data. +// We add a short delay before returning to fix a bug observed by Federico +// where the port is configured (lineState != 0) but not quite opened. +Serial_::operator bool() { + bool result = false; + if (_usbLineInfo.lineState > 0) + result = true; + delay(10); + return result; +} + +Serial_ Serial; + +#endif +#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Client.h new file mode 100644 index 000000000..ea134838a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Client.h @@ -0,0 +1,26 @@ +#ifndef client_h +#define client_h +#include "Print.h" +#include "Stream.h" +#include "IPAddress.h" + +class Client : public Stream { + +public: + virtual int connect(IPAddress ip, uint16_t port) =0; + virtual int connect(const char *host, uint16_t port) =0; + virtual size_t write(uint8_t) =0; + virtual size_t write(const uint8_t *buf, size_t size) =0; + virtual int available() = 0; + virtual int read() = 0; + virtual int read(uint8_t *buf, size_t size) = 0; + virtual int peek() = 0; + virtual void flush() = 0; + virtual void stop() = 0; + virtual uint8_t connected() = 0; + virtual operator bool() = 0; +protected: + uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HID.cpp new file mode 100644 index 000000000..ac6360844 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HID.cpp @@ -0,0 +1,520 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include "USBDesc.h" + +#if defined(USBCON) +#ifdef HID_ENABLED + +//#define RAWHID_ENABLED + +// Singletons for mouse and keyboard + +Mouse_ Mouse; +Keyboard_ Keyboard; + +//================================================================================ +//================================================================================ + +// HID report descriptor + +#define LSB(_x) ((_x) & 0xFF) +#define MSB(_x) ((_x) >> 8) + +#define RAWHID_USAGE_PAGE 0xFFC0 +#define RAWHID_USAGE 0x0C00 +#define RAWHID_TX_SIZE 64 +#define RAWHID_RX_SIZE 64 + +extern const u8 _hidReportDescriptor[] PROGMEM; +const u8 _hidReportDescriptor[] = { + + // Mouse + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 + 0x09, 0x02, // USAGE (Mouse) + 0xa1, 0x01, // COLLECTION (Application) + 0x09, 0x01, // USAGE (Pointer) + 0xa1, 0x00, // COLLECTION (Physical) + 0x85, 0x01, // REPORT_ID (1) + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x03, // USAGE_MAXIMUM (Button 3) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x95, 0x03, // REPORT_COUNT (3) + 0x75, 0x01, // REPORT_SIZE (1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x05, // REPORT_SIZE (5) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x03, // REPORT_COUNT (3) + 0x81, 0x06, // INPUT (Data,Var,Rel) + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION + + // Keyboard + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 + 0x09, 0x06, // USAGE (Keyboard) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, 0x02, // REPORT_ID (2) + 0x05, 0x07, // USAGE_PAGE (Keyboard) + + 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) + 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + + 0x95, 0x08, // REPORT_COUNT (8) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x08, // REPORT_SIZE (8) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + + 0x95, 0x06, // REPORT_COUNT (6) + 0x75, 0x08, // REPORT_SIZE (8) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x65, // LOGICAL_MAXIMUM (101) + 0x05, 0x07, // USAGE_PAGE (Keyboard) + + 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) + 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) + 0x81, 0x00, // INPUT (Data,Ary,Abs) + 0xc0, // END_COLLECTION + +#if RAWHID_ENABLED + // RAW HID + 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 + 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), + + 0xA1, 0x01, // Collection 0x01 + 0x85, 0x03, // REPORT_ID (3) + 0x75, 0x08, // report size = 8 bits + 0x15, 0x00, // logical minimum = 0 + 0x26, 0xFF, 0x00, // logical maximum = 255 + + 0x95, 64, // report count TX + 0x09, 0x01, // usage + 0x81, 0x02, // Input (array) + + 0x95, 64, // report count RX + 0x09, 0x02, // usage + 0x91, 0x02, // Output (array) + 0xC0 // end collection +#endif +}; + +extern const HIDDescriptor _hidInterface PROGMEM; +const HIDDescriptor _hidInterface = +{ + D_INTERFACE(HID_INTERFACE,1,3,0,0), + D_HIDREPORT(sizeof(_hidReportDescriptor)), + D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) +}; + +//================================================================================ +//================================================================================ +// Driver + +u8 _hid_protocol = 1; +u8 _hid_idle = 1; + +#define WEAK __attribute__ ((weak)) + +int WEAK HID_GetInterface(u8* interfaceNum) +{ + interfaceNum[0] += 1; // uses 1 + return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); +} + +int WEAK HID_GetDescriptor(int i) +{ + return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); +} + +void WEAK HID_SendReport(u8 id, const void* data, int len) +{ + USB_Send(HID_TX, &id, 1); + USB_Send(HID_TX | TRANSFER_RELEASE,data,len); +} + +bool WEAK HID_Setup(Setup& setup) +{ + u8 r = setup.bRequest; + u8 requestType = setup.bmRequestType; + if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) + { + if (HID_GET_REPORT == r) + { + //HID_GetReport(); + return true; + } + if (HID_GET_PROTOCOL == r) + { + //Send8(_hid_protocol); // TODO + return true; + } + } + + if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) + { + if (HID_SET_PROTOCOL == r) + { + _hid_protocol = setup.wValueL; + return true; + } + + if (HID_SET_IDLE == r) + { + _hid_idle = setup.wValueL; + return true; + } + } + return false; +} + +//================================================================================ +//================================================================================ +// Mouse + +Mouse_::Mouse_(void) : _buttons(0) +{ +} + +void Mouse_::begin(void) +{ +} + +void Mouse_::end(void) +{ +} + +void Mouse_::click(uint8_t b) +{ + _buttons = b; + move(0,0,0); + _buttons = 0; + move(0,0,0); +} + +void Mouse_::move(signed char x, signed char y, signed char wheel) +{ + u8 m[4]; + m[0] = _buttons; + m[1] = x; + m[2] = y; + m[3] = wheel; + HID_SendReport(1,m,4); +} + +void Mouse_::buttons(uint8_t b) +{ + if (b != _buttons) + { + _buttons = b; + move(0,0,0); + } +} + +void Mouse_::press(uint8_t b) +{ + buttons(_buttons | b); +} + +void Mouse_::release(uint8_t b) +{ + buttons(_buttons & ~b); +} + +bool Mouse_::isPressed(uint8_t b) +{ + if ((b & _buttons) > 0) + return true; + return false; +} + +//================================================================================ +//================================================================================ +// Keyboard + +Keyboard_::Keyboard_(void) +{ +} + +void Keyboard_::begin(void) +{ +} + +void Keyboard_::end(void) +{ +} + +void Keyboard_::sendReport(KeyReport* keys) +{ + HID_SendReport(2,keys,sizeof(KeyReport)); +} + +extern +const uint8_t _asciimap[128] PROGMEM; + +#define SHIFT 0x80 +const uint8_t _asciimap[128] = +{ + 0x00, // NUL + 0x00, // SOH + 0x00, // STX + 0x00, // ETX + 0x00, // EOT + 0x00, // ENQ + 0x00, // ACK + 0x00, // BEL + 0x2a, // BS Backspace + 0x2b, // TAB Tab + 0x28, // LF Enter + 0x00, // VT + 0x00, // FF + 0x00, // CR + 0x00, // SO + 0x00, // SI + 0x00, // DEL + 0x00, // DC1 + 0x00, // DC2 + 0x00, // DC3 + 0x00, // DC4 + 0x00, // NAK + 0x00, // SYN + 0x00, // ETB + 0x00, // CAN + 0x00, // EM + 0x00, // SUB + 0x00, // ESC + 0x00, // FS + 0x00, // GS + 0x00, // RS + 0x00, // US + + 0x2c, // ' ' + 0x1e|SHIFT, // ! + 0x34|SHIFT, // " + 0x20|SHIFT, // # + 0x21|SHIFT, // $ + 0x22|SHIFT, // % + 0x24|SHIFT, // & + 0x34, // ' + 0x26|SHIFT, // ( + 0x27|SHIFT, // ) + 0x25|SHIFT, // * + 0x2e|SHIFT, // + + 0x36, // , + 0x2d, // - + 0x37, // . + 0x38, // / + 0x27, // 0 + 0x1e, // 1 + 0x1f, // 2 + 0x20, // 3 + 0x21, // 4 + 0x22, // 5 + 0x23, // 6 + 0x24, // 7 + 0x25, // 8 + 0x26, // 9 + 0x33|SHIFT, // : + 0x33, // ; + 0x36|SHIFT, // < + 0x2e, // = + 0x37|SHIFT, // > + 0x38|SHIFT, // ? + 0x1f|SHIFT, // @ + 0x04|SHIFT, // A + 0x05|SHIFT, // B + 0x06|SHIFT, // C + 0x07|SHIFT, // D + 0x08|SHIFT, // E + 0x09|SHIFT, // F + 0x0a|SHIFT, // G + 0x0b|SHIFT, // H + 0x0c|SHIFT, // I + 0x0d|SHIFT, // J + 0x0e|SHIFT, // K + 0x0f|SHIFT, // L + 0x10|SHIFT, // M + 0x11|SHIFT, // N + 0x12|SHIFT, // O + 0x13|SHIFT, // P + 0x14|SHIFT, // Q + 0x15|SHIFT, // R + 0x16|SHIFT, // S + 0x17|SHIFT, // T + 0x18|SHIFT, // U + 0x19|SHIFT, // V + 0x1a|SHIFT, // W + 0x1b|SHIFT, // X + 0x1c|SHIFT, // Y + 0x1d|SHIFT, // Z + 0x2f, // [ + 0x31, // bslash + 0x30, // ] + 0x23|SHIFT, // ^ + 0x2d|SHIFT, // _ + 0x35, // ` + 0x04, // a + 0x05, // b + 0x06, // c + 0x07, // d + 0x08, // e + 0x09, // f + 0x0a, // g + 0x0b, // h + 0x0c, // i + 0x0d, // j + 0x0e, // k + 0x0f, // l + 0x10, // m + 0x11, // n + 0x12, // o + 0x13, // p + 0x14, // q + 0x15, // r + 0x16, // s + 0x17, // t + 0x18, // u + 0x19, // v + 0x1a, // w + 0x1b, // x + 0x1c, // y + 0x1d, // z + 0x2f|SHIFT, // + 0x31|SHIFT, // | + 0x30|SHIFT, // } + 0x35|SHIFT, // ~ + 0 // DEL +}; + +uint8_t USBPutChar(uint8_t c); + +// press() adds the specified key (printing, non-printing, or modifier) +// to the persistent key report and sends the report. Because of the way +// USB HID works, the host acts like the key remains pressed until we +// call release(), releaseAll(), or otherwise clear the report and resend. +size_t Keyboard_::press(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _keyReport.modifiers |= (1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + setWriteError(); + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _keyReport.modifiers |= 0x02; // the left shift modifier + k &= 0x7F; + } + } + + // Add k to the key report only if it's not already present + // and if there is an empty slot. + if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && + _keyReport.keys[2] != k && _keyReport.keys[3] != k && + _keyReport.keys[4] != k && _keyReport.keys[5] != k) { + + for (i=0; i<6; i++) { + if (_keyReport.keys[i] == 0x00) { + _keyReport.keys[i] = k; + break; + } + } + if (i == 6) { + setWriteError(); + return 0; + } + } + sendReport(&_keyReport); + return 1; +} + +// release() takes the specified key out of the persistent key report and +// sends the report. This tells the OS the key is no longer pressed and that +// it shouldn't be repeated any more. +size_t Keyboard_::release(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _keyReport.modifiers &= ~(1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _keyReport.modifiers &= ~(0x02); // the left shift modifier + k &= 0x7F; + } + } + + // Test the key report to see if k is present. Clear it if it exists. + // Check all positions in case the key is present more than once (which it shouldn't be) + for (i=0; i<6; i++) { + if (0 != k && _keyReport.keys[i] == k) { + _keyReport.keys[i] = 0x00; + } + } + + sendReport(&_keyReport); + return 1; +} + +void Keyboard_::releaseAll(void) +{ + _keyReport.keys[0] = 0; + _keyReport.keys[1] = 0; + _keyReport.keys[2] = 0; + _keyReport.keys[3] = 0; + _keyReport.keys[4] = 0; + _keyReport.keys[5] = 0; + _keyReport.modifiers = 0; + sendReport(&_keyReport); +} + +size_t Keyboard_::write(uint8_t c) +{ + uint8_t p = press(c); // Keydown + uint8_t r = release(c); // Keyup + return (p); // just return the result of press() since release() almost always returns 1 +} + +#endif + +#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.cpp new file mode 100644 index 000000000..794a7be89 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.cpp @@ -0,0 +1,519 @@ +/* + HardwareSerial.cpp - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis + Modified 28 September 2010 by Mark Sproul + Modified 14 August 2012 by Alarus +*/ + +#include +#include +#include +#include +#include "Arduino.h" +#include "wiring_private.h" + +// this next line disables the entire HardwareSerial.cpp, +// this is so I can support Attiny series and any other chip without a uart +#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) + +#include "HardwareSerial.h" + +/* + * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" + * definition. + */ +#if !defined(TXC0) +#if defined(TXC) +#define TXC0 TXC +#elif defined(TXC1) +// Some devices have uart1 but no uart0 +#define TXC0 TXC1 +#else +#error TXC0 not definable in HardwareSerial.h +#endif +#endif + +// Define constants and variables for buffering incoming serial data. We're +// using a ring buffer (I think), in which head is the index of the location +// to which to write the next incoming character and tail is the index of the +// location from which to read. +#if (RAMEND < 1000) + #define SERIAL_BUFFER_SIZE 16 +#else + #define SERIAL_BUFFER_SIZE 64 +#endif + +struct ring_buffer +{ + unsigned char buffer[SERIAL_BUFFER_SIZE]; + volatile unsigned int head; + volatile unsigned int tail; +}; + +#if defined(USBCON) + ring_buffer rx_buffer = { { 0 }, 0, 0}; + ring_buffer tx_buffer = { { 0 }, 0, 0}; +#endif +#if defined(UBRRH) || defined(UBRR0H) + ring_buffer rx_buffer = { { 0 }, 0, 0 }; + ring_buffer tx_buffer = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR1H) + ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR2H) + ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; +#endif +#if defined(UBRR3H) + ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; + ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; +#endif + +inline void store_char(unsigned char c, ring_buffer *buffer) +{ + int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; + + // if we should be storing the received character into the location + // just before the tail (meaning that the head would advance to the + // current location of the tail), we're about to overflow the buffer + // and so we don't write the character or advance the head. + if (i != buffer->tail) { + buffer->buffer[buffer->head] = c; + buffer->head = i; + } +} + +#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) +// do nothing - on the 32u4 the first USART is USART1 +#else +#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ + !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ + !defined(SIG_UART_RECV) + #error "Don't know what the Data Received vector is called for the first UART" +#else + void serialEvent() __attribute__((weak)); + void serialEvent() {} + #define serialEvent_implemented +#if defined(USART_RX_vect) + SIGNAL(USART_RX_vect) +#elif defined(SIG_USART0_RECV) + SIGNAL(SIG_USART0_RECV) +#elif defined(SIG_UART0_RECV) + SIGNAL(SIG_UART0_RECV) +#elif defined(USART0_RX_vect) + SIGNAL(USART0_RX_vect) +#elif defined(SIG_UART_RECV) + SIGNAL(SIG_UART_RECV) +#endif + { + #if defined(UDR0) + if (bit_is_clear(UCSR0A, UPE0)) { + unsigned char c = UDR0; + store_char(c, &rx_buffer); + } else { + unsigned char c = UDR0; + }; + #elif defined(UDR) + if (bit_is_clear(UCSRA, PE)) { + unsigned char c = UDR; + store_char(c, &rx_buffer); + } else { + unsigned char c = UDR; + }; + #else + #error UDR not defined + #endif + } +#endif +#endif + +#if defined(USART1_RX_vect) + void serialEvent1() __attribute__((weak)); + void serialEvent1() {} + #define serialEvent1_implemented + SIGNAL(USART1_RX_vect) + { + if (bit_is_clear(UCSR1A, UPE1)) { + unsigned char c = UDR1; + store_char(c, &rx_buffer1); + } else { + unsigned char c = UDR1; + }; + } +#elif defined(SIG_USART1_RECV) + #error SIG_USART1_RECV +#endif + +#if defined(USART2_RX_vect) && defined(UDR2) + void serialEvent2() __attribute__((weak)); + void serialEvent2() {} + #define serialEvent2_implemented + SIGNAL(USART2_RX_vect) + { + if (bit_is_clear(UCSR2A, UPE2)) { + unsigned char c = UDR2; + store_char(c, &rx_buffer2); + } else { + unsigned char c = UDR2; + }; + } +#elif defined(SIG_USART2_RECV) + #error SIG_USART2_RECV +#endif + +#if defined(USART3_RX_vect) && defined(UDR3) + void serialEvent3() __attribute__((weak)); + void serialEvent3() {} + #define serialEvent3_implemented + SIGNAL(USART3_RX_vect) + { + if (bit_is_clear(UCSR3A, UPE3)) { + unsigned char c = UDR3; + store_char(c, &rx_buffer3); + } else { + unsigned char c = UDR3; + }; + } +#elif defined(SIG_USART3_RECV) + #error SIG_USART3_RECV +#endif + +void serialEventRun(void) +{ +#ifdef serialEvent_implemented + if (Serial.available()) serialEvent(); +#endif +#ifdef serialEvent1_implemented + if (Serial1.available()) serialEvent1(); +#endif +#ifdef serialEvent2_implemented + if (Serial2.available()) serialEvent2(); +#endif +#ifdef serialEvent3_implemented + if (Serial3.available()) serialEvent3(); +#endif +} + + +#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) +// do nothing - on the 32u4 the first USART is USART1 +#else +#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) + #error "Don't know what the Data Register Empty vector is called for the first UART" +#else +#if defined(UART0_UDRE_vect) +ISR(UART0_UDRE_vect) +#elif defined(UART_UDRE_vect) +ISR(UART_UDRE_vect) +#elif defined(USART0_UDRE_vect) +ISR(USART0_UDRE_vect) +#elif defined(USART_UDRE_vect) +ISR(USART_UDRE_vect) +#endif +{ + if (tx_buffer.head == tx_buffer.tail) { + // Buffer empty, so disable interrupts +#if defined(UCSR0B) + cbi(UCSR0B, UDRIE0); +#else + cbi(UCSRB, UDRIE); +#endif + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer.buffer[tx_buffer.tail]; + tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; + + #if defined(UDR0) + UDR0 = c; + #elif defined(UDR) + UDR = c; + #else + #error UDR not defined + #endif + } +} +#endif +#endif + +#ifdef USART1_UDRE_vect +ISR(USART1_UDRE_vect) +{ + if (tx_buffer1.head == tx_buffer1.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR1B, UDRIE1); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; + tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR1 = c; + } +} +#endif + +#ifdef USART2_UDRE_vect +ISR(USART2_UDRE_vect) +{ + if (tx_buffer2.head == tx_buffer2.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR2B, UDRIE2); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; + tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR2 = c; + } +} +#endif + +#ifdef USART3_UDRE_vect +ISR(USART3_UDRE_vect) +{ + if (tx_buffer3.head == tx_buffer3.tail) { + // Buffer empty, so disable interrupts + cbi(UCSR3B, UDRIE3); + } + else { + // There is more data in the output buffer. Send the next byte + unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; + tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; + + UDR3 = c; + } +} +#endif + + +// Constructors //////////////////////////////////////////////////////////////// + +HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, + volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, + volatile uint8_t *ucsra, volatile uint8_t *ucsrb, + volatile uint8_t *ucsrc, volatile uint8_t *udr, + uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) +{ + _rx_buffer = rx_buffer; + _tx_buffer = tx_buffer; + _ubrrh = ubrrh; + _ubrrl = ubrrl; + _ucsra = ucsra; + _ucsrb = ucsrb; + _ucsrc = ucsrc; + _udr = udr; + _rxen = rxen; + _txen = txen; + _rxcie = rxcie; + _udrie = udrie; + _u2x = u2x; +} + +// Public Methods ////////////////////////////////////////////////////////////// + +void HardwareSerial::begin(unsigned long baud) +{ + uint16_t baud_setting; + bool use_u2x = true; + +#if F_CPU == 16000000UL + // hardcoded exception for compatibility with the bootloader shipped + // with the Duemilanove and previous boards and the firmware on the 8U2 + // on the Uno and Mega 2560. + if (baud == 57600) { + use_u2x = false; + } +#endif + +try_again: + + if (use_u2x) { + *_ucsra = 1 << _u2x; + baud_setting = (F_CPU / 4 / baud - 1) / 2; + } else { + *_ucsra = 0; + baud_setting = (F_CPU / 8 / baud - 1) / 2; + } + + if ((baud_setting > 4095) && use_u2x) + { + use_u2x = false; + goto try_again; + } + + // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) + *_ubrrh = baud_setting >> 8; + *_ubrrl = baud_setting; + + transmitting = false; + + sbi(*_ucsrb, _rxen); + sbi(*_ucsrb, _txen); + sbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); +} + +void HardwareSerial::begin(unsigned long baud, byte config) +{ + uint16_t baud_setting; + uint8_t current_config; + bool use_u2x = true; + +#if F_CPU == 16000000UL + // hardcoded exception for compatibility with the bootloader shipped + // with the Duemilanove and previous boards and the firmware on the 8U2 + // on the Uno and Mega 2560. + if (baud == 57600) { + use_u2x = false; + } +#endif + +try_again: + + if (use_u2x) { + *_ucsra = 1 << _u2x; + baud_setting = (F_CPU / 4 / baud - 1) / 2; + } else { + *_ucsra = 0; + baud_setting = (F_CPU / 8 / baud - 1) / 2; + } + + if ((baud_setting > 4095) && use_u2x) + { + use_u2x = false; + goto try_again; + } + + // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) + *_ubrrh = baud_setting >> 8; + *_ubrrl = baud_setting; + + //set the data bits, parity, and stop bits +#if defined(__AVR_ATmega8__) + config |= 0x80; // select UCSRC register (shared with UBRRH) +#endif + *_ucsrc = config; + + sbi(*_ucsrb, _rxen); + sbi(*_ucsrb, _txen); + sbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); +} + +void HardwareSerial::end() +{ + // wait for transmission of outgoing data + while (_tx_buffer->head != _tx_buffer->tail) + ; + + cbi(*_ucsrb, _rxen); + cbi(*_ucsrb, _txen); + cbi(*_ucsrb, _rxcie); + cbi(*_ucsrb, _udrie); + + // clear any received data + _rx_buffer->head = _rx_buffer->tail; +} + +int HardwareSerial::available(void) +{ + return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; +} + +int HardwareSerial::peek(void) +{ + if (_rx_buffer->head == _rx_buffer->tail) { + return -1; + } else { + return _rx_buffer->buffer[_rx_buffer->tail]; + } +} + +int HardwareSerial::read(void) +{ + // if the head isn't ahead of the tail, we don't have any characters + if (_rx_buffer->head == _rx_buffer->tail) { + return -1; + } else { + unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; + _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; + return c; + } +} + +void HardwareSerial::flush() +{ + // UDR is kept full while the buffer is not empty, so TXC triggers when EMPTY && SENT + while (transmitting && ! (*_ucsra & _BV(TXC0))); + transmitting = false; +} + +size_t HardwareSerial::write(uint8_t c) +{ + int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; + + // If the output buffer is full, there's nothing for it other than to + // wait for the interrupt handler to empty it a bit + // ???: return 0 here instead? + while (i == _tx_buffer->tail) + ; + + _tx_buffer->buffer[_tx_buffer->head] = c; + _tx_buffer->head = i; + + sbi(*_ucsrb, _udrie); + // clear the TXC bit -- "can be cleared by writing a one to its bit location" + transmitting = true; + sbi(*_ucsra, TXC0); + + return 1; +} + +HardwareSerial::operator bool() { + return true; +} + +// Preinstantiate Objects ////////////////////////////////////////////////////// + +#if defined(UBRRH) && defined(UBRRL) + HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); +#elif defined(UBRR0H) && defined(UBRR0L) + HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); +#elif defined(USBCON) + // do nothing - Serial object and buffers are initialized in CDC code +#else + #error no serial port defined (port 0) +#endif + +#if defined(UBRR1H) + HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); +#endif +#if defined(UBRR2H) + HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); +#endif +#if defined(UBRR3H) + HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); +#endif + +#endif // whole file + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.h new file mode 100644 index 000000000..a73117f56 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.h @@ -0,0 +1,115 @@ +/* + HardwareSerial.h - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 28 September 2010 by Mark Sproul + Modified 14 August 2012 by Alarus +*/ + +#ifndef HardwareSerial_h +#define HardwareSerial_h + +#include + +#include "Stream.h" + +struct ring_buffer; + +class HardwareSerial : public Stream +{ + private: + ring_buffer *_rx_buffer; + ring_buffer *_tx_buffer; + volatile uint8_t *_ubrrh; + volatile uint8_t *_ubrrl; + volatile uint8_t *_ucsra; + volatile uint8_t *_ucsrb; + volatile uint8_t *_ucsrc; + volatile uint8_t *_udr; + uint8_t _rxen; + uint8_t _txen; + uint8_t _rxcie; + uint8_t _udrie; + uint8_t _u2x; + bool transmitting; + public: + HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, + volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, + volatile uint8_t *ucsra, volatile uint8_t *ucsrb, + volatile uint8_t *ucsrc, volatile uint8_t *udr, + uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); + void begin(unsigned long); + void begin(unsigned long, uint8_t); + void end(); + virtual int available(void); + virtual int peek(void); + virtual int read(void); + virtual void flush(void); + virtual size_t write(uint8_t); + inline size_t write(unsigned long n) { return write((uint8_t)n); } + inline size_t write(long n) { return write((uint8_t)n); } + inline size_t write(unsigned int n) { return write((uint8_t)n); } + inline size_t write(int n) { return write((uint8_t)n); } + using Print::write; // pull in write(str) and write(buf, size) from Print + operator bool(); +}; + +// Define config for Serial.begin(baud, config); +#define SERIAL_5N1 0x00 +#define SERIAL_6N1 0x02 +#define SERIAL_7N1 0x04 +#define SERIAL_8N1 0x06 +#define SERIAL_5N2 0x08 +#define SERIAL_6N2 0x0A +#define SERIAL_7N2 0x0C +#define SERIAL_8N2 0x0E +#define SERIAL_5E1 0x20 +#define SERIAL_6E1 0x22 +#define SERIAL_7E1 0x24 +#define SERIAL_8E1 0x26 +#define SERIAL_5E2 0x28 +#define SERIAL_6E2 0x2A +#define SERIAL_7E2 0x2C +#define SERIAL_8E2 0x2E +#define SERIAL_5O1 0x30 +#define SERIAL_6O1 0x32 +#define SERIAL_7O1 0x34 +#define SERIAL_8O1 0x36 +#define SERIAL_5O2 0x38 +#define SERIAL_6O2 0x3A +#define SERIAL_7O2 0x3C +#define SERIAL_8O2 0x3E + +#if defined(UBRRH) || defined(UBRR0H) + extern HardwareSerial Serial; +#elif defined(USBCON) + #include "USBAPI.h" +// extern HardwareSerial Serial_; +#endif +#if defined(UBRR1H) + extern HardwareSerial Serial1; +#endif +#if defined(UBRR2H) + extern HardwareSerial Serial2; +#endif +#if defined(UBRR3H) + extern HardwareSerial Serial3; +#endif + +extern void serialEventRun(void) __attribute__((weak)); + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.cpp new file mode 100644 index 000000000..fe3deb77a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.cpp @@ -0,0 +1,56 @@ + +#include +#include + +IPAddress::IPAddress() +{ + memset(_address, 0, sizeof(_address)); +} + +IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) +{ + _address[0] = first_octet; + _address[1] = second_octet; + _address[2] = third_octet; + _address[3] = fourth_octet; +} + +IPAddress::IPAddress(uint32_t address) +{ + memcpy(_address, &address, sizeof(_address)); +} + +IPAddress::IPAddress(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); +} + +IPAddress& IPAddress::operator=(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); + return *this; +} + +IPAddress& IPAddress::operator=(uint32_t address) +{ + memcpy(_address, (const uint8_t *)&address, sizeof(_address)); + return *this; +} + +bool IPAddress::operator==(const uint8_t* addr) +{ + return memcmp(addr, _address, sizeof(_address)) == 0; +} + +size_t IPAddress::printTo(Print& p) const +{ + size_t n = 0; + for (int i =0; i < 3; i++) + { + n += p.print(_address[i], DEC); + n += p.print('.'); + } + n += p.print(_address[3], DEC); + return n; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.h new file mode 100644 index 000000000..2585aec0e --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.h @@ -0,0 +1,76 @@ +/* + * + * MIT License: + * Copyright (c) 2011 Adrian McEwen + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * adrianm@mcqn.com 1/1/2011 + */ + +#ifndef IPAddress_h +#define IPAddress_h + +#include + +// A class to make it easier to handle and pass around IP addresses + +class IPAddress : public Printable { +private: + uint8_t _address[4]; // IPv4 address + // Access the raw byte array containing the address. Because this returns a pointer + // to the internal structure rather than a copy of the address this function should only + // be used when you know that the usage of the returned uint8_t* will be transient and not + // stored. + uint8_t* raw_address() { return _address; }; + +public: + // Constructors + IPAddress(); + IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); + IPAddress(uint32_t address); + IPAddress(const uint8_t *address); + + // Overloaded cast operator to allow IPAddress objects to be used where a pointer + // to a four-byte uint8_t array is expected + operator uint32_t() { return *((uint32_t*)_address); }; + bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; + bool operator==(const uint8_t* addr); + + // Overloaded index operator to allow getting and setting individual octets of the address + uint8_t operator[](int index) const { return _address[index]; }; + uint8_t& operator[](int index) { return _address[index]; }; + + // Overloaded copy operators to allow initialisation of IPAddress objects from other types + IPAddress& operator=(const uint8_t *address); + IPAddress& operator=(uint32_t address); + + virtual size_t printTo(Print& p) const; + + friend class EthernetClass; + friend class UDP; + friend class Client; + friend class Server; + friend class DhcpClass; + friend class DNSClient; +}; + +const IPAddress INADDR_NONE(0,0,0,0); + + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Platform.h new file mode 100644 index 000000000..8b8f74277 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Platform.h @@ -0,0 +1,23 @@ + +#ifndef __PLATFORM_H__ +#define __PLATFORM_H__ + +#include +#include +#include +#include +#include + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned long u32; + +#include "Arduino.h" + +#if defined(USBCON) + #include "USBDesc.h" + #include "USBCore.h" + #include "USBAPI.h" +#endif /* if defined(USBCON) */ + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.cpp new file mode 100644 index 000000000..53961ec47 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.cpp @@ -0,0 +1,268 @@ +/* + Print.cpp - Base class that provides print() and println() + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis + */ + +#include +#include +#include +#include +#include "Arduino.h" + +#include "Print.h" + +// Public Methods ////////////////////////////////////////////////////////////// + +/* default implementation: may be overridden */ +size_t Print::write(const uint8_t *buffer, size_t size) +{ + size_t n = 0; + while (size--) { + n += write(*buffer++); + } + return n; +} + +size_t Print::print(const __FlashStringHelper *ifsh) +{ + const char PROGMEM *p = (const char PROGMEM *)ifsh; + size_t n = 0; + while (1) { + unsigned char c = pgm_read_byte(p++); + if (c == 0) break; + n += write(c); + } + return n; +} + +size_t Print::print(const String &s) +{ + size_t n = 0; + for (uint16_t i = 0; i < s.length(); i++) { + n += write(s[i]); + } + return n; +} + +size_t Print::print(const char str[]) +{ + return write(str); +} + +size_t Print::print(char c) +{ + return write(c); +} + +size_t Print::print(unsigned char b, int base) +{ + return print((unsigned long) b, base); +} + +size_t Print::print(int n, int base) +{ + return print((long) n, base); +} + +size_t Print::print(unsigned int n, int base) +{ + return print((unsigned long) n, base); +} + +size_t Print::print(long n, int base) +{ + if (base == 0) { + return write(n); + } else if (base == 10) { + if (n < 0) { + int t = print('-'); + n = -n; + return printNumber(n, 10) + t; + } + return printNumber(n, 10); + } else { + return printNumber(n, base); + } +} + +size_t Print::print(unsigned long n, int base) +{ + if (base == 0) return write(n); + else return printNumber(n, base); +} + +size_t Print::print(double n, int digits) +{ + return printFloat(n, digits); +} + +size_t Print::println(const __FlashStringHelper *ifsh) +{ + size_t n = print(ifsh); + n += println(); + return n; +} + +size_t Print::print(const Printable& x) +{ + return x.printTo(*this); +} + +size_t Print::println(void) +{ + size_t n = print('\r'); + n += print('\n'); + return n; +} + +size_t Print::println(const String &s) +{ + size_t n = print(s); + n += println(); + return n; +} + +size_t Print::println(const char c[]) +{ + size_t n = print(c); + n += println(); + return n; +} + +size_t Print::println(char c) +{ + size_t n = print(c); + n += println(); + return n; +} + +size_t Print::println(unsigned char b, int base) +{ + size_t n = print(b, base); + n += println(); + return n; +} + +size_t Print::println(int num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(unsigned int num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(long num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(unsigned long num, int base) +{ + size_t n = print(num, base); + n += println(); + return n; +} + +size_t Print::println(double num, int digits) +{ + size_t n = print(num, digits); + n += println(); + return n; +} + +size_t Print::println(const Printable& x) +{ + size_t n = print(x); + n += println(); + return n; +} + +// Private Methods ///////////////////////////////////////////////////////////// + +size_t Print::printNumber(unsigned long n, uint8_t base) { + char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. + char *str = &buf[sizeof(buf) - 1]; + + *str = '\0'; + + // prevent crash if called with base == 1 + if (base < 2) base = 10; + + do { + unsigned long m = n; + n /= base; + char c = m - base * n; + *--str = c < 10 ? c + '0' : c + 'A' - 10; + } while(n); + + return write(str); +} + +size_t Print::printFloat(double number, uint8_t digits) +{ + size_t n = 0; + + if (isnan(number)) return print("nan"); + if (isinf(number)) return print("inf"); + if (number > 4294967040.0) return print ("ovf"); // constant determined empirically + if (number <-4294967040.0) return print ("ovf"); // constant determined empirically + + // Handle negative numbers + if (number < 0.0) + { + n += print('-'); + number = -number; + } + + // Round correctly so that print(1.999, 2) prints as "2.00" + double rounding = 0.5; + for (uint8_t i=0; i 0) { + n += print("."); + } + + // Extract digits from the remainder one at a time + while (digits-- > 0) + { + remainder *= 10.0; + int toPrint = int(remainder); + n += print(toPrint); + remainder -= toPrint; + } + + return n; +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.h new file mode 100644 index 000000000..dc7615087 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.h @@ -0,0 +1,81 @@ +/* + Print.h - Base class that provides print() and println() + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef Print_h +#define Print_h + +#include +#include // for size_t + +#include "WString.h" +#include "Printable.h" + +#define DEC 10 +#define HEX 16 +#define OCT 8 +#define BIN 2 + +class Print +{ + private: + int write_error; + size_t printNumber(unsigned long, uint8_t); + size_t printFloat(double, uint8_t); + protected: + void setWriteError(int err = 1) { write_error = err; } + public: + Print() : write_error(0) {} + + int getWriteError() { return write_error; } + void clearWriteError() { setWriteError(0); } + + virtual size_t write(uint8_t) = 0; + size_t write(const char *str) { + if (str == NULL) return 0; + return write((const uint8_t *)str, strlen(str)); + } + virtual size_t write(const uint8_t *buffer, size_t size); + + size_t print(const __FlashStringHelper *); + size_t print(const String &); + size_t print(const char[]); + size_t print(char); + size_t print(unsigned char, int = DEC); + size_t print(int, int = DEC); + size_t print(unsigned int, int = DEC); + size_t print(long, int = DEC); + size_t print(unsigned long, int = DEC); + size_t print(double, int = 2); + size_t print(const Printable&); + + size_t println(const __FlashStringHelper *); + size_t println(const String &s); + size_t println(const char[]); + size_t println(char); + size_t println(unsigned char, int = DEC); + size_t println(int, int = DEC); + size_t println(unsigned int, int = DEC); + size_t println(long, int = DEC); + size_t println(unsigned long, int = DEC); + size_t println(double, int = 2); + size_t println(const Printable&); + size_t println(void); +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Printable.h new file mode 100644 index 000000000..d03c9af62 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Printable.h @@ -0,0 +1,40 @@ +/* + Printable.h - Interface class that allows printing of complex types + Copyright (c) 2011 Adrian McEwen. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef Printable_h +#define Printable_h + +#include + +class Print; + +/** The Printable class provides a way for new classes to allow themselves to be printed. + By deriving from Printable and implementing the printTo method, it will then be possible + for users to print out instances of this class by passing them into the usual + Print::print and Print::println methods. +*/ + +class Printable +{ + public: + virtual size_t printTo(Print& p) const = 0; +}; + +#endif + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Server.h new file mode 100644 index 000000000..9674c7626 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Server.h @@ -0,0 +1,9 @@ +#ifndef server_h +#define server_h + +class Server : public Print { +public: + virtual void begin() =0; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.cpp new file mode 100644 index 000000000..aafb7fcf9 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.cpp @@ -0,0 +1,270 @@ +/* + Stream.cpp - adds parsing methods to Stream class + Copyright (c) 2008 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Created July 2011 + parsing functions based on TextFinder library by Michael Margolis + */ + +#include "Arduino.h" +#include "Stream.h" + +#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait +#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field + +// private method to read stream with timeout +int Stream::timedRead() +{ + int c; + _startMillis = millis(); + do { + c = read(); + if (c >= 0) return c; + } while(millis() - _startMillis < _timeout); + return -1; // -1 indicates timeout +} + +// private method to peek stream with timeout +int Stream::timedPeek() +{ + int c; + _startMillis = millis(); + do { + c = peek(); + if (c >= 0) return c; + } while(millis() - _startMillis < _timeout); + return -1; // -1 indicates timeout +} + +// returns peek of the next digit in the stream or -1 if timeout +// discards non-numeric characters +int Stream::peekNextDigit() +{ + int c; + while (1) { + c = timedPeek(); + if (c < 0) return c; // timeout + if (c == '-') return c; + if (c >= '0' && c <= '9') return c; + read(); // discard non-numeric + } +} + +// Public Methods +////////////////////////////////////////////////////////////// + +void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait +{ + _timeout = timeout; +} + + // find returns true if the target string is found +bool Stream::find(char *target) +{ + return findUntil(target, NULL); +} + +// reads data from the stream until the target string of given length is found +// returns true if target string is found, false if timed out +bool Stream::find(char *target, size_t length) +{ + return findUntil(target, length, NULL, 0); +} + +// as find but search ends if the terminator string is found +bool Stream::findUntil(char *target, char *terminator) +{ + return findUntil(target, strlen(target), terminator, strlen(terminator)); +} + +// reads data from the stream until the target string of the given length is found +// search terminated if the terminator string is found +// returns true if target string is found, false if terminated or timed out +bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) +{ + size_t index = 0; // maximum target string length is 64k bytes! + size_t termIndex = 0; + int c; + + if( *target == 0) + return true; // return true if target is a null string + while( (c = timedRead()) > 0){ + + if(c != target[index]) + index = 0; // reset index if any char does not match + + if( c == target[index]){ + //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); + if(++index >= targetLen){ // return true if all chars in the target match + return true; + } + } + + if(termLen > 0 && c == terminator[termIndex]){ + if(++termIndex >= termLen) + return false; // return false if terminate string found before target string + } + else + termIndex = 0; + } + return false; +} + + +// returns the first valid (long) integer value from the current position. +// initial characters that are not digits (or the minus sign) are skipped +// function is terminated by the first character that is not a digit. +long Stream::parseInt() +{ + return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) +} + +// as above but a given skipChar is ignored +// this allows format characters (typically commas) in values to be ignored +long Stream::parseInt(char skipChar) +{ + boolean isNegative = false; + long value = 0; + int c; + + c = peekNextDigit(); + // ignore non numeric leading characters + if(c < 0) + return 0; // zero returned if timeout + + do{ + if(c == skipChar) + ; // ignore this charactor + else if(c == '-') + isNegative = true; + else if(c >= '0' && c <= '9') // is c a digit? + value = value * 10 + c - '0'; + read(); // consume the character we got with peek + c = timedPeek(); + } + while( (c >= '0' && c <= '9') || c == skipChar ); + + if(isNegative) + value = -value; + return value; +} + + +// as parseInt but returns a floating point value +float Stream::parseFloat() +{ + return parseFloat(NO_SKIP_CHAR); +} + +// as above but the given skipChar is ignored +// this allows format characters (typically commas) in values to be ignored +float Stream::parseFloat(char skipChar){ + boolean isNegative = false; + boolean isFraction = false; + long value = 0; + char c; + float fraction = 1.0; + + c = peekNextDigit(); + // ignore non numeric leading characters + if(c < 0) + return 0; // zero returned if timeout + + do{ + if(c == skipChar) + ; // ignore + else if(c == '-') + isNegative = true; + else if (c == '.') + isFraction = true; + else if(c >= '0' && c <= '9') { // is c a digit? + value = value * 10 + c - '0'; + if(isFraction) + fraction *= 0.1; + } + read(); // consume the character we got with peek + c = timedPeek(); + } + while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); + + if(isNegative) + value = -value; + if(isFraction) + return value * fraction; + else + return value; +} + +// read characters from stream into buffer +// terminates if length characters have been read, or timeout (see setTimeout) +// returns the number of characters placed in the buffer +// the buffer is NOT null terminated. +// +size_t Stream::readBytes(char *buffer, size_t length) +{ + size_t count = 0; + while (count < length) { + int c = timedRead(); + if (c < 0) break; + *buffer++ = (char)c; + count++; + } + return count; +} + + +// as readBytes with terminator character +// terminates if length characters have been read, timeout, or if the terminator character detected +// returns the number of characters placed in the buffer (0 means no valid data found) + +size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) +{ + if (length < 1) return 0; + size_t index = 0; + while (index < length) { + int c = timedRead(); + if (c < 0 || c == terminator) break; + *buffer++ = (char)c; + index++; + } + return index; // return number of characters, not including null terminator +} + +String Stream::readString() +{ + String ret; + int c = timedRead(); + while (c >= 0) + { + ret += (char)c; + c = timedRead(); + } + return ret; +} + +String Stream::readStringUntil(char terminator) +{ + String ret; + int c = timedRead(); + while (c >= 0 && c != terminator) + { + ret += (char)c; + c = timedRead(); + } + return ret; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.h new file mode 100644 index 000000000..58bbf752f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.h @@ -0,0 +1,96 @@ +/* + Stream.h - base class for character-based streams. + Copyright (c) 2010 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + parsing functions based on TextFinder library by Michael Margolis +*/ + +#ifndef Stream_h +#define Stream_h + +#include +#include "Print.h" + +// compatability macros for testing +/* +#define getInt() parseInt() +#define getInt(skipChar) parseInt(skipchar) +#define getFloat() parseFloat() +#define getFloat(skipChar) parseFloat(skipChar) +#define getString( pre_string, post_string, buffer, length) +readBytesBetween( pre_string, terminator, buffer, length) +*/ + +class Stream : public Print +{ + private: + unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read + unsigned long _startMillis; // used for timeout measurement + int timedRead(); // private method to read stream with timeout + int timedPeek(); // private method to peek stream with timeout + int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout + + public: + virtual int available() = 0; + virtual int read() = 0; + virtual int peek() = 0; + virtual void flush() = 0; + + Stream() {_timeout=1000;} + +// parsing methods + + void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second + + bool find(char *target); // reads data from the stream until the target string is found + // returns true if target string is found, false if timed out (see setTimeout) + + bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found + // returns true if target string is found, false if timed out + + bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found + + bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found + + + long parseInt(); // returns the first valid (long) integer value from the current position. + // initial characters that are not digits (or the minus sign) are skipped + // integer is terminated by the first character that is not a digit. + + float parseFloat(); // float version of parseInt + + size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer + // terminates if length characters have been read or timeout (see setTimeout) + // returns the number of characters placed in the buffer (0 means no valid data found) + + size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character + // terminates if length characters have been read, timeout, or if the terminator character detected + // returns the number of characters placed in the buffer (0 means no valid data found) + + // Arduino String functions to be added here + String readString(); + String readStringUntil(char terminator); + + protected: + long parseInt(char skipChar); // as above but the given skipChar is ignored + // as above but the given skipChar is ignored + // this allows format characters (typically commas) in values to be ignored + + float parseFloat(char skipChar); // as above but the given skipChar is ignored +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Tone.cpp new file mode 100644 index 000000000..9bb6fe721 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Tone.cpp @@ -0,0 +1,616 @@ +/* Tone.cpp + + A Tone Generator Library + + Written by Brett Hagman + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Version Modified By Date Comments +------- ----------- -------- -------- +0001 B Hagman 09/08/02 Initial coding +0002 B Hagman 09/08/18 Multiple pins +0003 B Hagman 09/08/18 Moved initialization from constructor to begin() +0004 B Hagman 09/09/26 Fixed problems with ATmega8 +0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers + 09/11/25 Changed pin toggle method to XOR + 09/11/25 Fixed timer0 from being excluded +0006 D Mellis 09/12/29 Replaced objects with functions +0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register +0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY +*************************************************/ + +#include +#include +#include "Arduino.h" +#include "pins_arduino.h" + +#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) +#define TCCR2A TCCR2 +#define TCCR2B TCCR2 +#define COM2A1 COM21 +#define COM2A0 COM20 +#define OCR2A OCR2 +#define TIMSK2 TIMSK +#define OCIE2A OCIE2 +#define TIMER2_COMPA_vect TIMER2_COMP_vect +#define TIMSK1 TIMSK +#endif + +// timerx_toggle_count: +// > 0 - duration specified +// = 0 - stopped +// < 0 - infinitely (until stop() method called, or new play() called) + +#if !defined(__AVR_ATmega8__) +volatile long timer0_toggle_count; +volatile uint8_t *timer0_pin_port; +volatile uint8_t timer0_pin_mask; +#endif + +volatile long timer1_toggle_count; +volatile uint8_t *timer1_pin_port; +volatile uint8_t timer1_pin_mask; +volatile long timer2_toggle_count; +volatile uint8_t *timer2_pin_port; +volatile uint8_t timer2_pin_mask; + +#if defined(TIMSK3) +volatile long timer3_toggle_count; +volatile uint8_t *timer3_pin_port; +volatile uint8_t timer3_pin_mask; +#endif + +#if defined(TIMSK4) +volatile long timer4_toggle_count; +volatile uint8_t *timer4_pin_port; +volatile uint8_t timer4_pin_mask; +#endif + +#if defined(TIMSK5) +volatile long timer5_toggle_count; +volatile uint8_t *timer5_pin_port; +volatile uint8_t timer5_pin_mask; +#endif + + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; + +#elif defined(__AVR_ATmega8__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; + +#elif defined(__AVR_ATmega32U4__) + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER3 + +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; + +#else + +#define AVAILABLE_TONE_PINS 1 +#define USE_TIMER2 + +// Leave timer 0 to last. +const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; +static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; + +#endif + + + +static int8_t toneBegin(uint8_t _pin) +{ + int8_t _timer = -1; + + // if we're already using the pin, the timer should be configured. + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == _pin) { + return pgm_read_byte(tone_pin_to_timer_PGM + i); + } + } + + // search for an unused timer. + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == 255) { + tone_pins[i] = _pin; + _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); + break; + } + } + + if (_timer != -1) + { + // Set timer specific stuff + // All timers in CTC mode + // 8 bit timers will require changing prescalar values, + // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar + switch (_timer) + { + #if defined(TCCR0A) && defined(TCCR0B) + case 0: + // 8 bit timer + TCCR0A = 0; + TCCR0B = 0; + bitWrite(TCCR0A, WGM01, 1); + bitWrite(TCCR0B, CS00, 1); + timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer0_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) + case 1: + // 16 bit timer + TCCR1A = 0; + TCCR1B = 0; + bitWrite(TCCR1B, WGM12, 1); + bitWrite(TCCR1B, CS10, 1); + timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer1_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR2A) && defined(TCCR2B) + case 2: + // 8 bit timer + TCCR2A = 0; + TCCR2B = 0; + bitWrite(TCCR2A, WGM21, 1); + bitWrite(TCCR2B, CS20, 1); + timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer2_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) + case 3: + // 16 bit timer + TCCR3A = 0; + TCCR3B = 0; + bitWrite(TCCR3B, WGM32, 1); + bitWrite(TCCR3B, CS30, 1); + timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer3_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) + case 4: + // 16 bit timer + TCCR4A = 0; + TCCR4B = 0; + #if defined(WGM42) + bitWrite(TCCR4B, WGM42, 1); + #elif defined(CS43) + #warning this may not be correct + // atmega32u4 + bitWrite(TCCR4B, CS43, 1); + #endif + bitWrite(TCCR4B, CS40, 1); + timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer4_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + + #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) + case 5: + // 16 bit timer + TCCR5A = 0; + TCCR5B = 0; + bitWrite(TCCR5B, WGM52, 1); + bitWrite(TCCR5B, CS50, 1); + timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); + timer5_pin_mask = digitalPinToBitMask(_pin); + break; + #endif + } + } + + return _timer; +} + + + +// frequency (in hertz) and duration (in milliseconds). + +void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) +{ + uint8_t prescalarbits = 0b001; + long toggle_count = 0; + uint32_t ocr = 0; + int8_t _timer; + + _timer = toneBegin(_pin); + + if (_timer >= 0) + { + // Set the pinMode as OUTPUT + pinMode(_pin, OUTPUT); + + // if we are using an 8 bit timer, scan through prescalars to find the best fit + if (_timer == 0 || _timer == 2) + { + ocr = F_CPU / frequency / 2 - 1; + prescalarbits = 0b001; // ck/1: same for both timers + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 8 - 1; + prescalarbits = 0b010; // ck/8: same for both timers + + if (_timer == 2 && ocr > 255) + { + ocr = F_CPU / frequency / 2 / 32 - 1; + prescalarbits = 0b011; + } + + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 64 - 1; + prescalarbits = _timer == 0 ? 0b011 : 0b100; + + if (_timer == 2 && ocr > 255) + { + ocr = F_CPU / frequency / 2 / 128 - 1; + prescalarbits = 0b101; + } + + if (ocr > 255) + { + ocr = F_CPU / frequency / 2 / 256 - 1; + prescalarbits = _timer == 0 ? 0b100 : 0b110; + if (ocr > 255) + { + // can't do any better than /1024 + ocr = F_CPU / frequency / 2 / 1024 - 1; + prescalarbits = _timer == 0 ? 0b101 : 0b111; + } + } + } + } + +#if defined(TCCR0B) + if (_timer == 0) + { + TCCR0B = prescalarbits; + } + else +#endif +#if defined(TCCR2B) + { + TCCR2B = prescalarbits; + } +#else + { + // dummy place holder to make the above ifdefs work + } +#endif + } + else + { + // two choices for the 16 bit timers: ck/1 or ck/64 + ocr = F_CPU / frequency / 2 - 1; + + prescalarbits = 0b001; + if (ocr > 0xffff) + { + ocr = F_CPU / frequency / 2 / 64 - 1; + prescalarbits = 0b011; + } + + if (_timer == 1) + { +#if defined(TCCR1B) + TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; +#endif + } +#if defined(TCCR3B) + else if (_timer == 3) + TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; +#endif +#if defined(TCCR4B) + else if (_timer == 4) + TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; +#endif +#if defined(TCCR5B) + else if (_timer == 5) + TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; +#endif + + } + + + // Calculate the toggle count + if (duration > 0) + { + toggle_count = 2 * frequency * duration / 1000; + } + else + { + toggle_count = -1; + } + + // Set the OCR for the given timer, + // set the toggle count, + // then turn on the interrupts + switch (_timer) + { + +#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) + case 0: + OCR0A = ocr; + timer0_toggle_count = toggle_count; + bitWrite(TIMSK0, OCIE0A, 1); + break; +#endif + + case 1: +#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) + OCR1A = ocr; + timer1_toggle_count = toggle_count; + bitWrite(TIMSK1, OCIE1A, 1); +#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) + // this combination is for at least the ATmega32 + OCR1A = ocr; + timer1_toggle_count = toggle_count; + bitWrite(TIMSK, OCIE1A, 1); +#endif + break; + +#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) + case 2: + OCR2A = ocr; + timer2_toggle_count = toggle_count; + bitWrite(TIMSK2, OCIE2A, 1); + break; +#endif + +#if defined(TIMSK3) + case 3: + OCR3A = ocr; + timer3_toggle_count = toggle_count; + bitWrite(TIMSK3, OCIE3A, 1); + break; +#endif + +#if defined(TIMSK4) + case 4: + OCR4A = ocr; + timer4_toggle_count = toggle_count; + bitWrite(TIMSK4, OCIE4A, 1); + break; +#endif + +#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) + case 5: + OCR5A = ocr; + timer5_toggle_count = toggle_count; + bitWrite(TIMSK5, OCIE5A, 1); + break; +#endif + + } + } +} + + +// XXX: this function only works properly for timer 2 (the only one we use +// currently). for the others, it should end the tone, but won't restore +// proper PWM functionality for the timer. +void disableTimer(uint8_t _timer) +{ + switch (_timer) + { + case 0: + #if defined(TIMSK0) + TIMSK0 = 0; + #elif defined(TIMSK) + TIMSK = 0; // atmega32 + #endif + break; + +#if defined(TIMSK1) && defined(OCIE1A) + case 1: + bitWrite(TIMSK1, OCIE1A, 0); + break; +#endif + + case 2: + #if defined(TIMSK2) && defined(OCIE2A) + bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt + #endif + #if defined(TCCR2A) && defined(WGM20) + TCCR2A = (1 << WGM20); + #endif + #if defined(TCCR2B) && defined(CS22) + TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); + #endif + #if defined(OCR2A) + OCR2A = 0; + #endif + break; + +#if defined(TIMSK3) + case 3: + TIMSK3 = 0; + break; +#endif + +#if defined(TIMSK4) + case 4: + TIMSK4 = 0; + break; +#endif + +#if defined(TIMSK5) + case 5: + TIMSK5 = 0; + break; +#endif + } +} + + +void noTone(uint8_t _pin) +{ + int8_t _timer = -1; + + for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { + if (tone_pins[i] == _pin) { + _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); + tone_pins[i] = 255; + } + } + + disableTimer(_timer); + + digitalWrite(_pin, 0); +} + +#ifdef USE_TIMER0 +ISR(TIMER0_COMPA_vect) +{ + if (timer0_toggle_count != 0) + { + // toggle the pin + *timer0_pin_port ^= timer0_pin_mask; + + if (timer0_toggle_count > 0) + timer0_toggle_count--; + } + else + { + disableTimer(0); + *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER1 +ISR(TIMER1_COMPA_vect) +{ + if (timer1_toggle_count != 0) + { + // toggle the pin + *timer1_pin_port ^= timer1_pin_mask; + + if (timer1_toggle_count > 0) + timer1_toggle_count--; + } + else + { + disableTimer(1); + *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER2 +ISR(TIMER2_COMPA_vect) +{ + + if (timer2_toggle_count != 0) + { + // toggle the pin + *timer2_pin_port ^= timer2_pin_mask; + + if (timer2_toggle_count > 0) + timer2_toggle_count--; + } + else + { + // need to call noTone() so that the tone_pins[] entry is reset, so the + // timer gets initialized next time we call tone(). + // XXX: this assumes timer 2 is always the first one used. + noTone(tone_pins[0]); +// disableTimer(2); +// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER3 +ISR(TIMER3_COMPA_vect) +{ + if (timer3_toggle_count != 0) + { + // toggle the pin + *timer3_pin_port ^= timer3_pin_mask; + + if (timer3_toggle_count > 0) + timer3_toggle_count--; + } + else + { + disableTimer(3); + *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER4 +ISR(TIMER4_COMPA_vect) +{ + if (timer4_toggle_count != 0) + { + // toggle the pin + *timer4_pin_port ^= timer4_pin_mask; + + if (timer4_toggle_count > 0) + timer4_toggle_count--; + } + else + { + disableTimer(4); + *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop + } +} +#endif + + +#ifdef USE_TIMER5 +ISR(TIMER5_COMPA_vect) +{ + if (timer5_toggle_count != 0) + { + // toggle the pin + *timer5_pin_port ^= timer5_pin_mask; + + if (timer5_toggle_count > 0) + timer5_toggle_count--; + } + else + { + disableTimer(5); + *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop + } +} +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBAPI.h new file mode 100644 index 000000000..eb2e5937d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBAPI.h @@ -0,0 +1,196 @@ + + +#ifndef __USBAPI__ +#define __USBAPI__ + +#if defined(USBCON) + +//================================================================================ +//================================================================================ +// USB + +class USBDevice_ +{ +public: + USBDevice_(); + bool configured(); + + void attach(); + void detach(); // Serial port goes down too... + void poll(); +}; +extern USBDevice_ USBDevice; + +//================================================================================ +//================================================================================ +// Serial over CDC (Serial1 is the physical port) + +class Serial_ : public Stream +{ +private: + ring_buffer *_cdc_rx_buffer; +public: + void begin(uint16_t baud_count); + void end(void); + + virtual int available(void); + virtual void accept(void); + virtual int peek(void); + virtual int read(void); + virtual void flush(void); + virtual size_t write(uint8_t); + using Print::write; // pull in write(str) and write(buf, size) from Print + operator bool(); +}; +extern Serial_ Serial; + +//================================================================================ +//================================================================================ +// Mouse + +#define MOUSE_LEFT 1 +#define MOUSE_RIGHT 2 +#define MOUSE_MIDDLE 4 +#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) + +class Mouse_ +{ +private: + uint8_t _buttons; + void buttons(uint8_t b); +public: + Mouse_(void); + void begin(void); + void end(void); + void click(uint8_t b = MOUSE_LEFT); + void move(signed char x, signed char y, signed char wheel = 0); + void press(uint8_t b = MOUSE_LEFT); // press LEFT by default + void release(uint8_t b = MOUSE_LEFT); // release LEFT by default + bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default +}; +extern Mouse_ Mouse; + +//================================================================================ +//================================================================================ +// Keyboard + +#define KEY_LEFT_CTRL 0x80 +#define KEY_LEFT_SHIFT 0x81 +#define KEY_LEFT_ALT 0x82 +#define KEY_LEFT_GUI 0x83 +#define KEY_RIGHT_CTRL 0x84 +#define KEY_RIGHT_SHIFT 0x85 +#define KEY_RIGHT_ALT 0x86 +#define KEY_RIGHT_GUI 0x87 + +#define KEY_UP_ARROW 0xDA +#define KEY_DOWN_ARROW 0xD9 +#define KEY_LEFT_ARROW 0xD8 +#define KEY_RIGHT_ARROW 0xD7 +#define KEY_BACKSPACE 0xB2 +#define KEY_TAB 0xB3 +#define KEY_RETURN 0xB0 +#define KEY_ESC 0xB1 +#define KEY_INSERT 0xD1 +#define KEY_DELETE 0xD4 +#define KEY_PAGE_UP 0xD3 +#define KEY_PAGE_DOWN 0xD6 +#define KEY_HOME 0xD2 +#define KEY_END 0xD5 +#define KEY_CAPS_LOCK 0xC1 +#define KEY_F1 0xC2 +#define KEY_F2 0xC3 +#define KEY_F3 0xC4 +#define KEY_F4 0xC5 +#define KEY_F5 0xC6 +#define KEY_F6 0xC7 +#define KEY_F7 0xC8 +#define KEY_F8 0xC9 +#define KEY_F9 0xCA +#define KEY_F10 0xCB +#define KEY_F11 0xCC +#define KEY_F12 0xCD + +// Low level key report: up to 6 keys and shift, ctrl etc at once +typedef struct +{ + uint8_t modifiers; + uint8_t reserved; + uint8_t keys[6]; +} KeyReport; + +class Keyboard_ : public Print +{ +private: + KeyReport _keyReport; + void sendReport(KeyReport* keys); +public: + Keyboard_(void); + void begin(void); + void end(void); + virtual size_t write(uint8_t k); + virtual size_t press(uint8_t k); + virtual size_t release(uint8_t k); + virtual void releaseAll(void); +}; +extern Keyboard_ Keyboard; + +//================================================================================ +//================================================================================ +// Low level API + +typedef struct +{ + uint8_t bmRequestType; + uint8_t bRequest; + uint8_t wValueL; + uint8_t wValueH; + uint16_t wIndex; + uint16_t wLength; +} Setup; + +//================================================================================ +//================================================================================ +// HID 'Driver' + +int HID_GetInterface(uint8_t* interfaceNum); +int HID_GetDescriptor(int i); +bool HID_Setup(Setup& setup); +void HID_SendReport(uint8_t id, const void* data, int len); + +//================================================================================ +//================================================================================ +// MSC 'Driver' + +int MSC_GetInterface(uint8_t* interfaceNum); +int MSC_GetDescriptor(int i); +bool MSC_Setup(Setup& setup); +bool MSC_Data(uint8_t rx,uint8_t tx); + +//================================================================================ +//================================================================================ +// CSC 'Driver' + +int CDC_GetInterface(uint8_t* interfaceNum); +int CDC_GetDescriptor(int i); +bool CDC_Setup(Setup& setup); + +//================================================================================ +//================================================================================ + +#define TRANSFER_PGM 0x80 +#define TRANSFER_RELEASE 0x40 +#define TRANSFER_ZERO 0x20 + +int USB_SendControl(uint8_t flags, const void* d, int len); +int USB_RecvControl(void* d, int len); + +uint8_t USB_Available(uint8_t ep); +int USB_Send(uint8_t ep, const void* data, int len); // blocking +int USB_Recv(uint8_t ep, void* data, int len); // non-blocking +int USB_Recv(uint8_t ep); // non-blocking +void USB_Flush(uint8_t ep); + +#endif + +#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.cpp new file mode 100644 index 000000000..d3e017065 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.cpp @@ -0,0 +1,684 @@ + + +/* Copyright (c) 2010, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#include "Platform.h" +#include "USBAPI.h" +#include "USBDesc.h" + +#if defined(USBCON) + +#define EP_TYPE_CONTROL 0x00 +#define EP_TYPE_BULK_IN 0x81 +#define EP_TYPE_BULK_OUT 0x80 +#define EP_TYPE_INTERRUPT_IN 0xC1 +#define EP_TYPE_INTERRUPT_OUT 0xC0 +#define EP_TYPE_ISOCHRONOUS_IN 0x41 +#define EP_TYPE_ISOCHRONOUS_OUT 0x40 + +/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ +#define TX_RX_LED_PULSE_MS 100 +volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ +volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ + +//================================================================== +//================================================================== + +extern const u16 STRING_LANGUAGE[] PROGMEM; +extern const u16 STRING_IPRODUCT[] PROGMEM; +extern const u16 STRING_IMANUFACTURER[] PROGMEM; +extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; +extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; + +const u16 STRING_LANGUAGE[2] = { + (3<<8) | (2+2), + 0x0409 // English +}; + +const u16 STRING_IPRODUCT[17] = { + (3<<8) | (2+2*16), +#if USB_PID == 0x8036 + 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o' +#elif USB_PID == 0x8037 + 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' ' +#elif USB_PID == 0x803C + 'A','r','d','u','i','n','o',' ','E','s','p','l','o','r','a',' ' +#elif USB_PID == 0x9208 + 'L','i','l','y','P','a','d','U','S','B',' ',' ',' ',' ',' ',' ' +#else + 'U','S','B',' ','I','O',' ','B','o','a','r','d',' ',' ',' ',' ' +#endif +}; + +const u16 STRING_IMANUFACTURER[12] = { + (3<<8) | (2+2*11), +#if USB_VID == 0x2341 + 'A','r','d','u','i','n','o',' ','L','L','C' +#elif USB_VID == 0x1b4f + 'S','p','a','r','k','F','u','n',' ',' ',' ' +#else + 'U','n','k','n','o','w','n',' ',' ',' ',' ' +#endif +}; + +#ifdef CDC_ENABLED +#define DEVICE_CLASS 0x02 +#else +#define DEVICE_CLASS 0x00 +#endif + +// DEVICE DESCRIPTOR +const DeviceDescriptor USB_DeviceDescriptor = + D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); + +const DeviceDescriptor USB_DeviceDescriptorA = + D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); + +//================================================================== +//================================================================== + +volatile u8 _usbConfiguration = 0; + +static inline void WaitIN(void) +{ + while (!(UEINTX & (1< len) + n = len; + len -= n; + { + LockEP lock(ep); + if (ep & TRANSFER_ZERO) + { + while (n--) + Send8(0); + } + else if (ep & TRANSFER_PGM) + { + while (n--) + Send8(pgm_read_byte(data++)); + } + else + { + while (n--) + Send8(*data++); + } + if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer + ReleaseTX(); + } + } + TXLED1; // light the TX LED + TxLEDPulse = TX_RX_LED_PULSE_MS; + return r; +} + +extern const u8 _initEndpoints[] PROGMEM; +const u8 _initEndpoints[] = +{ + 0, + +#ifdef CDC_ENABLED + EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM + EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT + EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN +#endif + +#ifdef HID_ENABLED + EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT +#endif +}; + +#define EP_SINGLE_64 0x32 // EP0 +#define EP_DOUBLE_64 0x36 // Other endpoints + +static +void InitEP(u8 index, u8 type, u8 size) +{ + UENUM = index; + UECONX = 1; + UECFG0X = type; + UECFG1X = size; +} + +static +void InitEndpoints() +{ + for (u8 i = 1; i < sizeof(_initEndpoints); i++) + { + UENUM = i; + UECONX = 1; + UECFG0X = pgm_read_byte(_initEndpoints+i); + UECFG1X = EP_DOUBLE_64; + } + UERST = 0x7E; // And reset them + UERST = 0; +} + +// Handle CLASS_INTERFACE requests +static +bool ClassInterfaceRequest(Setup& setup) +{ + u8 i = setup.wIndex; + +#ifdef CDC_ENABLED + if (CDC_ACM_INTERFACE == i) + return CDC_Setup(setup); +#endif + +#ifdef HID_ENABLED + if (HID_INTERFACE == i) + return HID_Setup(setup); +#endif + return false; +} + +int _cmark; +int _cend; +void InitControl(int end) +{ + SetEP(0); + _cmark = 0; + _cend = end; +} + +static +bool SendControl(u8 d) +{ + if (_cmark < _cend) + { + if (!WaitForINOrOUT()) + return false; + Send8(d); + if (!((_cmark + 1) & 0x3F)) + ClearIN(); // Fifo is full, release this packet + } + _cmark++; + return true; +}; + +// Clipped by _cmark/_cend +int USB_SendControl(u8 flags, const void* d, int len) +{ + int sent = len; + const u8* data = (const u8*)d; + bool pgm = flags & TRANSFER_PGM; + while (len--) + { + u8 c = pgm ? pgm_read_byte(data++) : *data++; + if (!SendControl(c)) + return -1; + } + return sent; +} + +// Does not timeout or cross fifo boundaries +// Will only work for transfers <= 64 bytes +// TODO +int USB_RecvControl(void* d, int len) +{ + WaitOUT(); + Recv((u8*)d,len); + ClearOUT(); + return len; +} + +int SendInterfaces() +{ + int total = 0; + u8 interfaces = 0; + +#ifdef CDC_ENABLED + total = CDC_GetInterface(&interfaces); +#endif + +#ifdef HID_ENABLED + total += HID_GetInterface(&interfaces); +#endif + + return interfaces; +} + +// Construct a dynamic configuration descriptor +// This really needs dynamic endpoint allocation etc +// TODO +static +bool SendConfiguration(int maxlen) +{ + // Count and measure interfaces + InitControl(0); + int interfaces = SendInterfaces(); + ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); + + // Now send them + InitControl(maxlen); + USB_SendControl(0,&config,sizeof(ConfigDescriptor)); + SendInterfaces(); + return true; +} + +u8 _cdcComposite = 0; + +static +bool SendDescriptor(Setup& setup) +{ + u8 t = setup.wValueH; + if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) + return SendConfiguration(setup.wLength); + + InitControl(setup.wLength); +#ifdef HID_ENABLED + if (HID_REPORT_DESCRIPTOR_TYPE == t) + return HID_GetDescriptor(t); +#endif + + u8 desc_length = 0; + const u8* desc_addr = 0; + if (USB_DEVICE_DESCRIPTOR_TYPE == t) + { + if (setup.wLength == 8) + _cdcComposite = 1; + desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; + } + else if (USB_STRING_DESCRIPTOR_TYPE == t) + { + if (setup.wValueL == 0) + desc_addr = (const u8*)&STRING_LANGUAGE; + else if (setup.wValueL == IPRODUCT) + desc_addr = (const u8*)&STRING_IPRODUCT; + else if (setup.wValueL == IMANUFACTURER) + desc_addr = (const u8*)&STRING_IMANUFACTURER; + else + return false; + } + + if (desc_addr == 0) + return false; + if (desc_length == 0) + desc_length = pgm_read_byte(desc_addr); + + USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); + return true; +} + +// Endpoint 0 interrupt +ISR(USB_COM_vect) +{ + SetEP(0); + if (!ReceivedSetupInt()) + return; + + Setup setup; + Recv((u8*)&setup,8); + ClearSetupInt(); + + u8 requestType = setup.bmRequestType; + if (requestType & REQUEST_DEVICETOHOST) + WaitIN(); + else + ClearIN(); + + bool ok = true; + if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) + { + // Standard Requests + u8 r = setup.bRequest; + if (GET_STATUS == r) + { + Send8(0); // TODO + Send8(0); + } + else if (CLEAR_FEATURE == r) + { + } + else if (SET_FEATURE == r) + { + } + else if (SET_ADDRESS == r) + { + WaitIN(); + UDADDR = setup.wValueL | (1<> 8) & 0xFF) + +#define CDC_V1_10 0x0110 +#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 + +#define CDC_CALL_MANAGEMENT 0x01 +#define CDC_ABSTRACT_CONTROL_MODEL 0x02 +#define CDC_HEADER 0x00 +#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 +#define CDC_UNION 0x06 +#define CDC_CS_INTERFACE 0x24 +#define CDC_CS_ENDPOINT 0x25 +#define CDC_DATA_INTERFACE_CLASS 0x0A + +#define MSC_SUBCLASS_SCSI 0x06 +#define MSC_PROTOCOL_BULK_ONLY 0x50 + +#define HID_HID_DESCRIPTOR_TYPE 0x21 +#define HID_REPORT_DESCRIPTOR_TYPE 0x22 +#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 + + +// Device +typedef struct { + u8 len; // 18 + u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE + u16 usbVersion; // 0x200 + u8 deviceClass; + u8 deviceSubClass; + u8 deviceProtocol; + u8 packetSize0; // Packet 0 + u16 idVendor; + u16 idProduct; + u16 deviceVersion; // 0x100 + u8 iManufacturer; + u8 iProduct; + u8 iSerialNumber; + u8 bNumConfigurations; +} DeviceDescriptor; + +// Config +typedef struct { + u8 len; // 9 + u8 dtype; // 2 + u16 clen; // total length + u8 numInterfaces; + u8 config; + u8 iconfig; + u8 attributes; + u8 maxPower; +} ConfigDescriptor; + +// String + +// Interface +typedef struct +{ + u8 len; // 9 + u8 dtype; // 4 + u8 number; + u8 alternate; + u8 numEndpoints; + u8 interfaceClass; + u8 interfaceSubClass; + u8 protocol; + u8 iInterface; +} InterfaceDescriptor; + +// Endpoint +typedef struct +{ + u8 len; // 7 + u8 dtype; // 5 + u8 addr; + u8 attr; + u16 packetSize; + u8 interval; +} EndpointDescriptor; + +// Interface Association Descriptor +// Used to bind 2 interfaces together in CDC compostite device +typedef struct +{ + u8 len; // 8 + u8 dtype; // 11 + u8 firstInterface; + u8 interfaceCount; + u8 functionClass; + u8 funtionSubClass; + u8 functionProtocol; + u8 iInterface; +} IADDescriptor; + +// CDC CS interface descriptor +typedef struct +{ + u8 len; // 5 + u8 dtype; // 0x24 + u8 subtype; + u8 d0; + u8 d1; +} CDCCSInterfaceDescriptor; + +typedef struct +{ + u8 len; // 4 + u8 dtype; // 0x24 + u8 subtype; + u8 d0; +} CDCCSInterfaceDescriptor4; + +typedef struct +{ + u8 len; + u8 dtype; // 0x24 + u8 subtype; // 1 + u8 bmCapabilities; + u8 bDataInterface; +} CMFunctionalDescriptor; + +typedef struct +{ + u8 len; + u8 dtype; // 0x24 + u8 subtype; // 1 + u8 bmCapabilities; +} ACMFunctionalDescriptor; + +typedef struct +{ + // IAD + IADDescriptor iad; // Only needed on compound device + + // Control + InterfaceDescriptor cif; // + CDCCSInterfaceDescriptor header; + CMFunctionalDescriptor callManagement; // Call Management + ACMFunctionalDescriptor controlManagement; // ACM + CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION + EndpointDescriptor cifin; + + // Data + InterfaceDescriptor dif; + EndpointDescriptor in; + EndpointDescriptor out; +} CDCDescriptor; + +typedef struct +{ + InterfaceDescriptor msc; + EndpointDescriptor in; + EndpointDescriptor out; +} MSCDescriptor; + +typedef struct +{ + u8 len; // 9 + u8 dtype; // 0x21 + u8 addr; + u8 versionL; // 0x101 + u8 versionH; // 0x101 + u8 country; + u8 desctype; // 0x22 report + u8 descLenL; + u8 descLenH; +} HIDDescDescriptor; + +typedef struct +{ + InterfaceDescriptor hid; + HIDDescDescriptor desc; + EndpointDescriptor in; +} HIDDescriptor; + + +#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ + { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } + +#define D_CONFIG(_totalLength,_interfaces) \ + { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } + +#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ + { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } + +#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ + { 7, 5, _addr,_attr,_packetSize, _interval } + +#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ + { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } + +#define D_HIDREPORT(_descriptorLength) \ + { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } + +#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } +#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } + + +#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBDesc.h new file mode 100644 index 000000000..900713e0f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBDesc.h @@ -0,0 +1,63 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + +#define CDC_ENABLED +#define HID_ENABLED + + +#ifdef CDC_ENABLED +#define CDC_INTERFACE_COUNT 2 +#define CDC_ENPOINT_COUNT 3 +#else +#define CDC_INTERFACE_COUNT 0 +#define CDC_ENPOINT_COUNT 0 +#endif + +#ifdef HID_ENABLED +#define HID_INTERFACE_COUNT 1 +#define HID_ENPOINT_COUNT 1 +#else +#define HID_INTERFACE_COUNT 0 +#define HID_ENPOINT_COUNT 0 +#endif + +#define CDC_ACM_INTERFACE 0 // CDC ACM +#define CDC_DATA_INTERFACE 1 // CDC Data +#define CDC_FIRST_ENDPOINT 1 +#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First +#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) +#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) + +#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface +#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) +#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) + +#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) + +#ifdef CDC_ENABLED +#define CDC_RX CDC_ENDPOINT_OUT +#define CDC_TX CDC_ENDPOINT_IN +#endif + +#ifdef HID_ENABLED +#define HID_TX HID_ENDPOINT_INT +#endif + +#define IMANUFACTURER 1 +#define IPRODUCT 2 + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Udp.h new file mode 100644 index 000000000..dc5644b9d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Udp.h @@ -0,0 +1,88 @@ +/* + * Udp.cpp: Library to send/receive UDP packets. + * + * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) + * 1) UDP does not guarantee the order in which assembled UDP packets are received. This + * might not happen often in practice, but in larger network topologies, a UDP + * packet can be received out of sequence. + * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being + * aware of it. Again, this may not be a concern in practice on small local networks. + * For more information, see http://www.cafeaulait.org/course/week12/35.html + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +#ifndef udp_h +#define udp_h + +#include +#include + +class UDP : public Stream { + +public: + virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use + virtual void stop() =0; // Finish with the UDP socket + + // Sending UDP packets + + // Start building up a packet to send to the remote host specific in ip and port + // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port + virtual int beginPacket(IPAddress ip, uint16_t port) =0; + // Start building up a packet to send to the remote host specific in host and port + // Returns 1 if successful, 0 if there was a problem resolving the hostname or port + virtual int beginPacket(const char *host, uint16_t port) =0; + // Finish off this packet and send it + // Returns 1 if the packet was sent successfully, 0 if there was an error + virtual int endPacket() =0; + // Write a single byte into the packet + virtual size_t write(uint8_t) =0; + // Write size bytes from buffer into the packet + virtual size_t write(const uint8_t *buffer, size_t size) =0; + + // Start processing the next available incoming packet + // Returns the size of the packet in bytes, or 0 if no packets are available + virtual int parsePacket() =0; + // Number of bytes remaining in the current packet + virtual int available() =0; + // Read a single byte from the current packet + virtual int read() =0; + // Read up to len bytes from the current packet and place them into buffer + // Returns the number of bytes read, or 0 if none are available + virtual int read(unsigned char* buffer, size_t len) =0; + // Read up to len characters from the current packet and place them into buffer + // Returns the number of characters read, or 0 if none are available + virtual int read(char* buffer, size_t len) =0; + // Return the next byte from the current packet without moving on to the next byte + virtual int peek() =0; + virtual void flush() =0; // Finish reading the current packet + + // Return the IP address of the host who sent the current incoming packet + virtual IPAddress remoteIP() =0; + // Return the port of the host who sent the current incoming packet + virtual uint16_t remotePort() =0; +protected: + uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; +}; + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WCharacter.h new file mode 100644 index 000000000..79733b50a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WCharacter.h @@ -0,0 +1,168 @@ +/* + WCharacter.h - Character utility functions for Wiring & Arduino + Copyright (c) 2010 Hernando Barragan. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef Character_h +#define Character_h + +#include + +// WCharacter.h prototypes +inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); +inline boolean isAlpha(int c) __attribute__((always_inline)); +inline boolean isAscii(int c) __attribute__((always_inline)); +inline boolean isWhitespace(int c) __attribute__((always_inline)); +inline boolean isControl(int c) __attribute__((always_inline)); +inline boolean isDigit(int c) __attribute__((always_inline)); +inline boolean isGraph(int c) __attribute__((always_inline)); +inline boolean isLowerCase(int c) __attribute__((always_inline)); +inline boolean isPrintable(int c) __attribute__((always_inline)); +inline boolean isPunct(int c) __attribute__((always_inline)); +inline boolean isSpace(int c) __attribute__((always_inline)); +inline boolean isUpperCase(int c) __attribute__((always_inline)); +inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); +inline int toAscii(int c) __attribute__((always_inline)); +inline int toLowerCase(int c) __attribute__((always_inline)); +inline int toUpperCase(int c)__attribute__((always_inline)); + + +// Checks for an alphanumeric character. +// It is equivalent to (isalpha(c) || isdigit(c)). +inline boolean isAlphaNumeric(int c) +{ + return ( isalnum(c) == 0 ? false : true); +} + + +// Checks for an alphabetic character. +// It is equivalent to (isupper(c) || islower(c)). +inline boolean isAlpha(int c) +{ + return ( isalpha(c) == 0 ? false : true); +} + + +// Checks whether c is a 7-bit unsigned char value +// that fits into the ASCII character set. +inline boolean isAscii(int c) +{ + return ( isascii (c) == 0 ? false : true); +} + + +// Checks for a blank character, that is, a space or a tab. +inline boolean isWhitespace(int c) +{ + return ( isblank (c) == 0 ? false : true); +} + + +// Checks for a control character. +inline boolean isControl(int c) +{ + return ( iscntrl (c) == 0 ? false : true); +} + + +// Checks for a digit (0 through 9). +inline boolean isDigit(int c) +{ + return ( isdigit (c) == 0 ? false : true); +} + + +// Checks for any printable character except space. +inline boolean isGraph(int c) +{ + return ( isgraph (c) == 0 ? false : true); +} + + +// Checks for a lower-case character. +inline boolean isLowerCase(int c) +{ + return (islower (c) == 0 ? false : true); +} + + +// Checks for any printable character including space. +inline boolean isPrintable(int c) +{ + return ( isprint (c) == 0 ? false : true); +} + + +// Checks for any printable character which is not a space +// or an alphanumeric character. +inline boolean isPunct(int c) +{ + return ( ispunct (c) == 0 ? false : true); +} + + +// Checks for white-space characters. For the avr-libc library, +// these are: space, formfeed ('\f'), newline ('\n'), carriage +// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). +inline boolean isSpace(int c) +{ + return ( isspace (c) == 0 ? false : true); +} + + +// Checks for an uppercase letter. +inline boolean isUpperCase(int c) +{ + return ( isupper (c) == 0 ? false : true); +} + + +// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 +// 8 9 a b c d e f A B C D E F. +inline boolean isHexadecimalDigit(int c) +{ + return ( isxdigit (c) == 0 ? false : true); +} + + +// Converts c to a 7-bit unsigned char value that fits into the +// ASCII character set, by clearing the high-order bits. +inline int toAscii(int c) +{ + return toascii (c); +} + + +// Warning: +// Many people will be unhappy if you use this function. +// This function will convert accented letters into random +// characters. + +// Converts the letter c to lower case, if possible. +inline int toLowerCase(int c) +{ + return tolower (c); +} + + +// Converts the letter c to upper case, if possible. +inline int toUpperCase(int c) +{ + return toupper (c); +} + +#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WInterrupts.c new file mode 100644 index 000000000..62efc9cad --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WInterrupts.c @@ -0,0 +1,322 @@ +/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ + +/* + Part of the Wiring project - http://wiring.uniandes.edu.co + + Copyright (c) 2004-05 Hernando Barragan + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 24 November 2006 by David A. Mellis + Modified 1 August 2010 by Mark Sproul +*/ + +#include +#include +#include +#include +#include + +#include "wiring_private.h" + +static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; +// volatile static voidFuncPtr twiIntFunc; + +void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { + if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { + intFunc[interruptNum] = userFunc; + + // Configure the interrupt mode (trigger on low input, any change, rising + // edge, or falling edge). The mode constants were chosen to correspond + // to the configuration bits in the hardware register, so we simply shift + // the mode into place. + + // Enable the interrupt. + + switch (interruptNum) { +#if defined(__AVR_ATmega32U4__) + // I hate doing this, but the register assignment differs between the 1280/2560 + // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't + // even present on the 32U4 this is the only way to distinguish between them. + case 0: + EICRA = (EICRA & ~((1<= howbig) { + return howsmall; + } + long diff = howbig - howsmall; + return random(diff) + howsmall; +} + +long map(long x, long in_min, long in_max, long out_min, long out_max) +{ + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; +} + +unsigned int makeWord(unsigned int w) { return w; } +unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.cpp new file mode 100644 index 000000000..c6839fc0d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.cpp @@ -0,0 +1,645 @@ +/* + WString.cpp - String library for Wiring & Arduino + ...mostly rewritten by Paul Stoffregen... + Copyright (c) 2009-10 Hernando Barragan. All rights reserved. + Copyright 2011, Paul Stoffregen, paul@pjrc.com + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "WString.h" + + +/*********************************************/ +/* Constructors */ +/*********************************************/ + +String::String(const char *cstr) +{ + init(); + if (cstr) copy(cstr, strlen(cstr)); +} + +String::String(const String &value) +{ + init(); + *this = value; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +String::String(String &&rval) +{ + init(); + move(rval); +} +String::String(StringSumHelper &&rval) +{ + init(); + move(rval); +} +#endif + +String::String(char c) +{ + init(); + char buf[2]; + buf[0] = c; + buf[1] = 0; + *this = buf; +} + +String::String(unsigned char value, unsigned char base) +{ + init(); + char buf[9]; + utoa(value, buf, base); + *this = buf; +} + +String::String(int value, unsigned char base) +{ + init(); + char buf[18]; + itoa(value, buf, base); + *this = buf; +} + +String::String(unsigned int value, unsigned char base) +{ + init(); + char buf[17]; + utoa(value, buf, base); + *this = buf; +} + +String::String(long value, unsigned char base) +{ + init(); + char buf[34]; + ltoa(value, buf, base); + *this = buf; +} + +String::String(unsigned long value, unsigned char base) +{ + init(); + char buf[33]; + ultoa(value, buf, base); + *this = buf; +} + +String::~String() +{ + free(buffer); +} + +/*********************************************/ +/* Memory Management */ +/*********************************************/ + +inline void String::init(void) +{ + buffer = NULL; + capacity = 0; + len = 0; + flags = 0; +} + +void String::invalidate(void) +{ + if (buffer) free(buffer); + buffer = NULL; + capacity = len = 0; +} + +unsigned char String::reserve(unsigned int size) +{ + if (buffer && capacity >= size) return 1; + if (changeBuffer(size)) { + if (len == 0) buffer[0] = 0; + return 1; + } + return 0; +} + +unsigned char String::changeBuffer(unsigned int maxStrLen) +{ + char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); + if (newbuffer) { + buffer = newbuffer; + capacity = maxStrLen; + return 1; + } + return 0; +} + +/*********************************************/ +/* Copy and Move */ +/*********************************************/ + +String & String::copy(const char *cstr, unsigned int length) +{ + if (!reserve(length)) { + invalidate(); + return *this; + } + len = length; + strcpy(buffer, cstr); + return *this; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +void String::move(String &rhs) +{ + if (buffer) { + if (capacity >= rhs.len) { + strcpy(buffer, rhs.buffer); + len = rhs.len; + rhs.len = 0; + return; + } else { + free(buffer); + } + } + buffer = rhs.buffer; + capacity = rhs.capacity; + len = rhs.len; + rhs.buffer = NULL; + rhs.capacity = 0; + rhs.len = 0; +} +#endif + +String & String::operator = (const String &rhs) +{ + if (this == &rhs) return *this; + + if (rhs.buffer) copy(rhs.buffer, rhs.len); + else invalidate(); + + return *this; +} + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +String & String::operator = (String &&rval) +{ + if (this != &rval) move(rval); + return *this; +} + +String & String::operator = (StringSumHelper &&rval) +{ + if (this != &rval) move(rval); + return *this; +} +#endif + +String & String::operator = (const char *cstr) +{ + if (cstr) copy(cstr, strlen(cstr)); + else invalidate(); + + return *this; +} + +/*********************************************/ +/* concat */ +/*********************************************/ + +unsigned char String::concat(const String &s) +{ + return concat(s.buffer, s.len); +} + +unsigned char String::concat(const char *cstr, unsigned int length) +{ + unsigned int newlen = len + length; + if (!cstr) return 0; + if (length == 0) return 1; + if (!reserve(newlen)) return 0; + strcpy(buffer + len, cstr); + len = newlen; + return 1; +} + +unsigned char String::concat(const char *cstr) +{ + if (!cstr) return 0; + return concat(cstr, strlen(cstr)); +} + +unsigned char String::concat(char c) +{ + char buf[2]; + buf[0] = c; + buf[1] = 0; + return concat(buf, 1); +} + +unsigned char String::concat(unsigned char num) +{ + char buf[4]; + itoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(int num) +{ + char buf[7]; + itoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(unsigned int num) +{ + char buf[6]; + utoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(long num) +{ + char buf[12]; + ltoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +unsigned char String::concat(unsigned long num) +{ + char buf[11]; + ultoa(num, buf, 10); + return concat(buf, strlen(buf)); +} + +/*********************************************/ +/* Concatenate */ +/*********************************************/ + +StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) +{ + StringSumHelper &a = const_cast(lhs); + if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, char c) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(c)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, int num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, long num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) +{ + StringSumHelper &a = const_cast(lhs); + if (!a.concat(num)) a.invalidate(); + return a; +} + +/*********************************************/ +/* Comparison */ +/*********************************************/ + +int String::compareTo(const String &s) const +{ + if (!buffer || !s.buffer) { + if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; + if (buffer && len > 0) return *(unsigned char *)buffer; + return 0; + } + return strcmp(buffer, s.buffer); +} + +unsigned char String::equals(const String &s2) const +{ + return (len == s2.len && compareTo(s2) == 0); +} + +unsigned char String::equals(const char *cstr) const +{ + if (len == 0) return (cstr == NULL || *cstr == 0); + if (cstr == NULL) return buffer[0] == 0; + return strcmp(buffer, cstr) == 0; +} + +unsigned char String::operator<(const String &rhs) const +{ + return compareTo(rhs) < 0; +} + +unsigned char String::operator>(const String &rhs) const +{ + return compareTo(rhs) > 0; +} + +unsigned char String::operator<=(const String &rhs) const +{ + return compareTo(rhs) <= 0; +} + +unsigned char String::operator>=(const String &rhs) const +{ + return compareTo(rhs) >= 0; +} + +unsigned char String::equalsIgnoreCase( const String &s2 ) const +{ + if (this == &s2) return 1; + if (len != s2.len) return 0; + if (len == 0) return 1; + const char *p1 = buffer; + const char *p2 = s2.buffer; + while (*p1) { + if (tolower(*p1++) != tolower(*p2++)) return 0; + } + return 1; +} + +unsigned char String::startsWith( const String &s2 ) const +{ + if (len < s2.len) return 0; + return startsWith(s2, 0); +} + +unsigned char String::startsWith( const String &s2, unsigned int offset ) const +{ + if (offset > len - s2.len || !buffer || !s2.buffer) return 0; + return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; +} + +unsigned char String::endsWith( const String &s2 ) const +{ + if ( len < s2.len || !buffer || !s2.buffer) return 0; + return strcmp(&buffer[len - s2.len], s2.buffer) == 0; +} + +/*********************************************/ +/* Character Access */ +/*********************************************/ + +char String::charAt(unsigned int loc) const +{ + return operator[](loc); +} + +void String::setCharAt(unsigned int loc, char c) +{ + if (loc < len) buffer[loc] = c; +} + +char & String::operator[](unsigned int index) +{ + static char dummy_writable_char; + if (index >= len || !buffer) { + dummy_writable_char = 0; + return dummy_writable_char; + } + return buffer[index]; +} + +char String::operator[]( unsigned int index ) const +{ + if (index >= len || !buffer) return 0; + return buffer[index]; +} + +void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const +{ + if (!bufsize || !buf) return; + if (index >= len) { + buf[0] = 0; + return; + } + unsigned int n = bufsize - 1; + if (n > len - index) n = len - index; + strncpy((char *)buf, buffer + index, n); + buf[n] = 0; +} + +/*********************************************/ +/* Search */ +/*********************************************/ + +int String::indexOf(char c) const +{ + return indexOf(c, 0); +} + +int String::indexOf( char ch, unsigned int fromIndex ) const +{ + if (fromIndex >= len) return -1; + const char* temp = strchr(buffer + fromIndex, ch); + if (temp == NULL) return -1; + return temp - buffer; +} + +int String::indexOf(const String &s2) const +{ + return indexOf(s2, 0); +} + +int String::indexOf(const String &s2, unsigned int fromIndex) const +{ + if (fromIndex >= len) return -1; + const char *found = strstr(buffer + fromIndex, s2.buffer); + if (found == NULL) return -1; + return found - buffer; +} + +int String::lastIndexOf( char theChar ) const +{ + return lastIndexOf(theChar, len - 1); +} + +int String::lastIndexOf(char ch, unsigned int fromIndex) const +{ + if (fromIndex >= len) return -1; + char tempchar = buffer[fromIndex + 1]; + buffer[fromIndex + 1] = '\0'; + char* temp = strrchr( buffer, ch ); + buffer[fromIndex + 1] = tempchar; + if (temp == NULL) return -1; + return temp - buffer; +} + +int String::lastIndexOf(const String &s2) const +{ + return lastIndexOf(s2, len - s2.len); +} + +int String::lastIndexOf(const String &s2, unsigned int fromIndex) const +{ + if (s2.len == 0 || len == 0 || s2.len > len) return -1; + if (fromIndex >= len) fromIndex = len - 1; + int found = -1; + for (char *p = buffer; p <= buffer + fromIndex; p++) { + p = strstr(p, s2.buffer); + if (!p) break; + if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; + } + return found; +} + +String String::substring( unsigned int left ) const +{ + return substring(left, len); +} + +String String::substring(unsigned int left, unsigned int right) const +{ + if (left > right) { + unsigned int temp = right; + right = left; + left = temp; + } + String out; + if (left > len) return out; + if (right > len) right = len; + char temp = buffer[right]; // save the replaced character + buffer[right] = '\0'; + out = buffer + left; // pointer arithmetic + buffer[right] = temp; //restore character + return out; +} + +/*********************************************/ +/* Modification */ +/*********************************************/ + +void String::replace(char find, char replace) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + if (*p == find) *p = replace; + } +} + +void String::replace(const String& find, const String& replace) +{ + if (len == 0 || find.len == 0) return; + int diff = replace.len - find.len; + char *readFrom = buffer; + char *foundAt; + if (diff == 0) { + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + memcpy(foundAt, replace.buffer, replace.len); + readFrom = foundAt + replace.len; + } + } else if (diff < 0) { + char *writeTo = buffer; + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + unsigned int n = foundAt - readFrom; + memcpy(writeTo, readFrom, n); + writeTo += n; + memcpy(writeTo, replace.buffer, replace.len); + writeTo += replace.len; + readFrom = foundAt + find.len; + len += diff; + } + strcpy(writeTo, readFrom); + } else { + unsigned int size = len; // compute size needed for result + while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { + readFrom = foundAt + find.len; + size += diff; + } + if (size == len) return; + if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! + int index = len - 1; + while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { + readFrom = buffer + index + find.len; + memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); + len += diff; + buffer[len] = 0; + memcpy(buffer + index, replace.buffer, replace.len); + index--; + } + } +} + +void String::toLowerCase(void) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + *p = tolower(*p); + } +} + +void String::toUpperCase(void) +{ + if (!buffer) return; + for (char *p = buffer; *p; p++) { + *p = toupper(*p); + } +} + +void String::trim(void) +{ + if (!buffer || len == 0) return; + char *begin = buffer; + while (isspace(*begin)) begin++; + char *end = buffer + len - 1; + while (isspace(*end) && end >= begin) end--; + len = end + 1 - begin; + if (begin > buffer) memcpy(buffer, begin, len); + buffer[len] = 0; +} + +/*********************************************/ +/* Parsing / Conversion */ +/*********************************************/ + +long String::toInt(void) const +{ + if (buffer) return atol(buffer); + return 0; +} + + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.h new file mode 100644 index 000000000..947325e5f --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.h @@ -0,0 +1,205 @@ +/* + WString.h - String library for Wiring & Arduino + ...mostly rewritten by Paul Stoffregen... + Copyright (c) 2009-10 Hernando Barragan. All right reserved. + Copyright 2011, Paul Stoffregen, paul@pjrc.com + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef String_class_h +#define String_class_h +#ifdef __cplusplus + +#include +#include +#include +#include + +// When compiling programs with this class, the following gcc parameters +// dramatically increase performance and memory (RAM) efficiency, typically +// with little or no increase in code size. +// -felide-constructors +// -std=c++0x + +class __FlashStringHelper; +#define F(string_literal) (reinterpret_cast(PSTR(string_literal))) + +// An inherited class for holding the result of a concatenation. These +// result objects are assumed to be writable by subsequent concatenations. +class StringSumHelper; + +// The string class +class String +{ + // use a function pointer to allow for "if (s)" without the + // complications of an operator bool(). for more information, see: + // http://www.artima.com/cppsource/safebool.html + typedef void (String::*StringIfHelperType)() const; + void StringIfHelper() const {} + +public: + // constructors + // creates a copy of the initial value. + // if the initial value is null or invalid, or if memory allocation + // fails, the string will be marked as invalid (i.e. "if (s)" will + // be false). + String(const char *cstr = ""); + String(const String &str); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + String(String &&rval); + String(StringSumHelper &&rval); + #endif + explicit String(char c); + explicit String(unsigned char, unsigned char base=10); + explicit String(int, unsigned char base=10); + explicit String(unsigned int, unsigned char base=10); + explicit String(long, unsigned char base=10); + explicit String(unsigned long, unsigned char base=10); + ~String(void); + + // memory management + // return true on success, false on failure (in which case, the string + // is left unchanged). reserve(0), if successful, will validate an + // invalid string (i.e., "if (s)" will be true afterwards) + unsigned char reserve(unsigned int size); + inline unsigned int length(void) const {return len;} + + // creates a copy of the assigned value. if the value is null or + // invalid, or if the memory allocation fails, the string will be + // marked as invalid ("if (s)" will be false). + String & operator = (const String &rhs); + String & operator = (const char *cstr); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + String & operator = (String &&rval); + String & operator = (StringSumHelper &&rval); + #endif + + // concatenate (works w/ built-in types) + + // returns true on success, false on failure (in which case, the string + // is left unchanged). if the argument is null or invalid, the + // concatenation is considered unsucessful. + unsigned char concat(const String &str); + unsigned char concat(const char *cstr); + unsigned char concat(char c); + unsigned char concat(unsigned char c); + unsigned char concat(int num); + unsigned char concat(unsigned int num); + unsigned char concat(long num); + unsigned char concat(unsigned long num); + + // if there's not enough memory for the concatenated value, the string + // will be left unchanged (but this isn't signalled in any way) + String & operator += (const String &rhs) {concat(rhs); return (*this);} + String & operator += (const char *cstr) {concat(cstr); return (*this);} + String & operator += (char c) {concat(c); return (*this);} + String & operator += (unsigned char num) {concat(num); return (*this);} + String & operator += (int num) {concat(num); return (*this);} + String & operator += (unsigned int num) {concat(num); return (*this);} + String & operator += (long num) {concat(num); return (*this);} + String & operator += (unsigned long num) {concat(num); return (*this);} + + friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); + friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); + friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); + friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); + + // comparison (only works w/ Strings and "strings") + operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } + int compareTo(const String &s) const; + unsigned char equals(const String &s) const; + unsigned char equals(const char *cstr) const; + unsigned char operator == (const String &rhs) const {return equals(rhs);} + unsigned char operator == (const char *cstr) const {return equals(cstr);} + unsigned char operator != (const String &rhs) const {return !equals(rhs);} + unsigned char operator != (const char *cstr) const {return !equals(cstr);} + unsigned char operator < (const String &rhs) const; + unsigned char operator > (const String &rhs) const; + unsigned char operator <= (const String &rhs) const; + unsigned char operator >= (const String &rhs) const; + unsigned char equalsIgnoreCase(const String &s) const; + unsigned char startsWith( const String &prefix) const; + unsigned char startsWith(const String &prefix, unsigned int offset) const; + unsigned char endsWith(const String &suffix) const; + + // character acccess + char charAt(unsigned int index) const; + void setCharAt(unsigned int index, char c); + char operator [] (unsigned int index) const; + char& operator [] (unsigned int index); + void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; + void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const + {getBytes((unsigned char *)buf, bufsize, index);} + + // search + int indexOf( char ch ) const; + int indexOf( char ch, unsigned int fromIndex ) const; + int indexOf( const String &str ) const; + int indexOf( const String &str, unsigned int fromIndex ) const; + int lastIndexOf( char ch ) const; + int lastIndexOf( char ch, unsigned int fromIndex ) const; + int lastIndexOf( const String &str ) const; + int lastIndexOf( const String &str, unsigned int fromIndex ) const; + String substring( unsigned int beginIndex ) const; + String substring( unsigned int beginIndex, unsigned int endIndex ) const; + + // modification + void replace(char find, char replace); + void replace(const String& find, const String& replace); + void toLowerCase(void); + void toUpperCase(void); + void trim(void); + + // parsing/conversion + long toInt(void) const; + +protected: + char *buffer; // the actual char array + unsigned int capacity; // the array length minus one (for the '\0') + unsigned int len; // the String length (not counting the '\0') + unsigned char flags; // unused, for future features +protected: + void init(void); + void invalidate(void); + unsigned char changeBuffer(unsigned int maxStrLen); + unsigned char concat(const char *cstr, unsigned int length); + + // copy and move + String & copy(const char *cstr, unsigned int length); + #ifdef __GXX_EXPERIMENTAL_CXX0X__ + void move(String &rhs); + #endif +}; + +class StringSumHelper : public String +{ +public: + StringSumHelper(const String &s) : String(s) {} + StringSumHelper(const char *p) : String(p) {} + StringSumHelper(char c) : String(c) {} + StringSumHelper(unsigned char num) : String(num) {} + StringSumHelper(int num) : String(num) {} + StringSumHelper(unsigned int num) : String(num) {} + StringSumHelper(long num) : String(num) {} + StringSumHelper(unsigned long num) : String(num) {} +}; + +#endif // __cplusplus +#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/binary.h new file mode 100644 index 000000000..af1498033 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/binary.h @@ -0,0 +1,515 @@ +#ifndef Binary_h +#define Binary_h + +#define B0 0 +#define B00 0 +#define B000 0 +#define B0000 0 +#define B00000 0 +#define B000000 0 +#define B0000000 0 +#define B00000000 0 +#define B1 1 +#define B01 1 +#define B001 1 +#define B0001 1 +#define B00001 1 +#define B000001 1 +#define B0000001 1 +#define B00000001 1 +#define B10 2 +#define B010 2 +#define B0010 2 +#define B00010 2 +#define B000010 2 +#define B0000010 2 +#define B00000010 2 +#define B11 3 +#define B011 3 +#define B0011 3 +#define B00011 3 +#define B000011 3 +#define B0000011 3 +#define B00000011 3 +#define B100 4 +#define B0100 4 +#define B00100 4 +#define B000100 4 +#define B0000100 4 +#define B00000100 4 +#define B101 5 +#define B0101 5 +#define B00101 5 +#define B000101 5 +#define B0000101 5 +#define B00000101 5 +#define B110 6 +#define B0110 6 +#define B00110 6 +#define B000110 6 +#define B0000110 6 +#define B00000110 6 +#define B111 7 +#define B0111 7 +#define B00111 7 +#define B000111 7 +#define B0000111 7 +#define B00000111 7 +#define B1000 8 +#define B01000 8 +#define B001000 8 +#define B0001000 8 +#define B00001000 8 +#define B1001 9 +#define B01001 9 +#define B001001 9 +#define B0001001 9 +#define B00001001 9 +#define B1010 10 +#define B01010 10 +#define B001010 10 +#define B0001010 10 +#define B00001010 10 +#define B1011 11 +#define B01011 11 +#define B001011 11 +#define B0001011 11 +#define B00001011 11 +#define B1100 12 +#define B01100 12 +#define B001100 12 +#define B0001100 12 +#define B00001100 12 +#define B1101 13 +#define B01101 13 +#define B001101 13 +#define B0001101 13 +#define B00001101 13 +#define B1110 14 +#define B01110 14 +#define B001110 14 +#define B0001110 14 +#define B00001110 14 +#define B1111 15 +#define B01111 15 +#define B001111 15 +#define B0001111 15 +#define B00001111 15 +#define B10000 16 +#define B010000 16 +#define B0010000 16 +#define B00010000 16 +#define B10001 17 +#define B010001 17 +#define B0010001 17 +#define B00010001 17 +#define B10010 18 +#define B010010 18 +#define B0010010 18 +#define B00010010 18 +#define B10011 19 +#define B010011 19 +#define B0010011 19 +#define B00010011 19 +#define B10100 20 +#define B010100 20 +#define B0010100 20 +#define B00010100 20 +#define B10101 21 +#define B010101 21 +#define B0010101 21 +#define B00010101 21 +#define B10110 22 +#define B010110 22 +#define B0010110 22 +#define B00010110 22 +#define B10111 23 +#define B010111 23 +#define B0010111 23 +#define B00010111 23 +#define B11000 24 +#define B011000 24 +#define B0011000 24 +#define B00011000 24 +#define B11001 25 +#define B011001 25 +#define B0011001 25 +#define B00011001 25 +#define B11010 26 +#define B011010 26 +#define B0011010 26 +#define B00011010 26 +#define B11011 27 +#define B011011 27 +#define B0011011 27 +#define B00011011 27 +#define B11100 28 +#define B011100 28 +#define B0011100 28 +#define B00011100 28 +#define B11101 29 +#define B011101 29 +#define B0011101 29 +#define B00011101 29 +#define B11110 30 +#define B011110 30 +#define B0011110 30 +#define B00011110 30 +#define B11111 31 +#define B011111 31 +#define B0011111 31 +#define B00011111 31 +#define B100000 32 +#define B0100000 32 +#define B00100000 32 +#define B100001 33 +#define B0100001 33 +#define B00100001 33 +#define B100010 34 +#define B0100010 34 +#define B00100010 34 +#define B100011 35 +#define B0100011 35 +#define B00100011 35 +#define B100100 36 +#define B0100100 36 +#define B00100100 36 +#define B100101 37 +#define B0100101 37 +#define B00100101 37 +#define B100110 38 +#define B0100110 38 +#define B00100110 38 +#define B100111 39 +#define B0100111 39 +#define B00100111 39 +#define B101000 40 +#define B0101000 40 +#define B00101000 40 +#define B101001 41 +#define B0101001 41 +#define B00101001 41 +#define B101010 42 +#define B0101010 42 +#define B00101010 42 +#define B101011 43 +#define B0101011 43 +#define B00101011 43 +#define B101100 44 +#define B0101100 44 +#define B00101100 44 +#define B101101 45 +#define B0101101 45 +#define B00101101 45 +#define B101110 46 +#define B0101110 46 +#define B00101110 46 +#define B101111 47 +#define B0101111 47 +#define B00101111 47 +#define B110000 48 +#define B0110000 48 +#define B00110000 48 +#define B110001 49 +#define B0110001 49 +#define B00110001 49 +#define B110010 50 +#define B0110010 50 +#define B00110010 50 +#define B110011 51 +#define B0110011 51 +#define B00110011 51 +#define B110100 52 +#define B0110100 52 +#define B00110100 52 +#define B110101 53 +#define B0110101 53 +#define B00110101 53 +#define B110110 54 +#define B0110110 54 +#define B00110110 54 +#define B110111 55 +#define B0110111 55 +#define B00110111 55 +#define B111000 56 +#define B0111000 56 +#define B00111000 56 +#define B111001 57 +#define B0111001 57 +#define B00111001 57 +#define B111010 58 +#define B0111010 58 +#define B00111010 58 +#define B111011 59 +#define B0111011 59 +#define B00111011 59 +#define B111100 60 +#define B0111100 60 +#define B00111100 60 +#define B111101 61 +#define B0111101 61 +#define B00111101 61 +#define B111110 62 +#define B0111110 62 +#define B00111110 62 +#define B111111 63 +#define B0111111 63 +#define B00111111 63 +#define B1000000 64 +#define B01000000 64 +#define B1000001 65 +#define B01000001 65 +#define B1000010 66 +#define B01000010 66 +#define B1000011 67 +#define B01000011 67 +#define B1000100 68 +#define B01000100 68 +#define B1000101 69 +#define B01000101 69 +#define B1000110 70 +#define B01000110 70 +#define B1000111 71 +#define B01000111 71 +#define B1001000 72 +#define B01001000 72 +#define B1001001 73 +#define B01001001 73 +#define B1001010 74 +#define B01001010 74 +#define B1001011 75 +#define B01001011 75 +#define B1001100 76 +#define B01001100 76 +#define B1001101 77 +#define B01001101 77 +#define B1001110 78 +#define B01001110 78 +#define B1001111 79 +#define B01001111 79 +#define B1010000 80 +#define B01010000 80 +#define B1010001 81 +#define B01010001 81 +#define B1010010 82 +#define B01010010 82 +#define B1010011 83 +#define B01010011 83 +#define B1010100 84 +#define B01010100 84 +#define B1010101 85 +#define B01010101 85 +#define B1010110 86 +#define B01010110 86 +#define B1010111 87 +#define B01010111 87 +#define B1011000 88 +#define B01011000 88 +#define B1011001 89 +#define B01011001 89 +#define B1011010 90 +#define B01011010 90 +#define B1011011 91 +#define B01011011 91 +#define B1011100 92 +#define B01011100 92 +#define B1011101 93 +#define B01011101 93 +#define B1011110 94 +#define B01011110 94 +#define B1011111 95 +#define B01011111 95 +#define B1100000 96 +#define B01100000 96 +#define B1100001 97 +#define B01100001 97 +#define B1100010 98 +#define B01100010 98 +#define B1100011 99 +#define B01100011 99 +#define B1100100 100 +#define B01100100 100 +#define B1100101 101 +#define B01100101 101 +#define B1100110 102 +#define B01100110 102 +#define B1100111 103 +#define B01100111 103 +#define B1101000 104 +#define B01101000 104 +#define B1101001 105 +#define B01101001 105 +#define B1101010 106 +#define B01101010 106 +#define B1101011 107 +#define B01101011 107 +#define B1101100 108 +#define B01101100 108 +#define B1101101 109 +#define B01101101 109 +#define B1101110 110 +#define B01101110 110 +#define B1101111 111 +#define B01101111 111 +#define B1110000 112 +#define B01110000 112 +#define B1110001 113 +#define B01110001 113 +#define B1110010 114 +#define B01110010 114 +#define B1110011 115 +#define B01110011 115 +#define B1110100 116 +#define B01110100 116 +#define B1110101 117 +#define B01110101 117 +#define B1110110 118 +#define B01110110 118 +#define B1110111 119 +#define B01110111 119 +#define B1111000 120 +#define B01111000 120 +#define B1111001 121 +#define B01111001 121 +#define B1111010 122 +#define B01111010 122 +#define B1111011 123 +#define B01111011 123 +#define B1111100 124 +#define B01111100 124 +#define B1111101 125 +#define B01111101 125 +#define B1111110 126 +#define B01111110 126 +#define B1111111 127 +#define B01111111 127 +#define B10000000 128 +#define B10000001 129 +#define B10000010 130 +#define B10000011 131 +#define B10000100 132 +#define B10000101 133 +#define B10000110 134 +#define B10000111 135 +#define B10001000 136 +#define B10001001 137 +#define B10001010 138 +#define B10001011 139 +#define B10001100 140 +#define B10001101 141 +#define B10001110 142 +#define B10001111 143 +#define B10010000 144 +#define B10010001 145 +#define B10010010 146 +#define B10010011 147 +#define B10010100 148 +#define B10010101 149 +#define B10010110 150 +#define B10010111 151 +#define B10011000 152 +#define B10011001 153 +#define B10011010 154 +#define B10011011 155 +#define B10011100 156 +#define B10011101 157 +#define B10011110 158 +#define B10011111 159 +#define B10100000 160 +#define B10100001 161 +#define B10100010 162 +#define B10100011 163 +#define B10100100 164 +#define B10100101 165 +#define B10100110 166 +#define B10100111 167 +#define B10101000 168 +#define B10101001 169 +#define B10101010 170 +#define B10101011 171 +#define B10101100 172 +#define B10101101 173 +#define B10101110 174 +#define B10101111 175 +#define B10110000 176 +#define B10110001 177 +#define B10110010 178 +#define B10110011 179 +#define B10110100 180 +#define B10110101 181 +#define B10110110 182 +#define B10110111 183 +#define B10111000 184 +#define B10111001 185 +#define B10111010 186 +#define B10111011 187 +#define B10111100 188 +#define B10111101 189 +#define B10111110 190 +#define B10111111 191 +#define B11000000 192 +#define B11000001 193 +#define B11000010 194 +#define B11000011 195 +#define B11000100 196 +#define B11000101 197 +#define B11000110 198 +#define B11000111 199 +#define B11001000 200 +#define B11001001 201 +#define B11001010 202 +#define B11001011 203 +#define B11001100 204 +#define B11001101 205 +#define B11001110 206 +#define B11001111 207 +#define B11010000 208 +#define B11010001 209 +#define B11010010 210 +#define B11010011 211 +#define B11010100 212 +#define B11010101 213 +#define B11010110 214 +#define B11010111 215 +#define B11011000 216 +#define B11011001 217 +#define B11011010 218 +#define B11011011 219 +#define B11011100 220 +#define B11011101 221 +#define B11011110 222 +#define B11011111 223 +#define B11100000 224 +#define B11100001 225 +#define B11100010 226 +#define B11100011 227 +#define B11100100 228 +#define B11100101 229 +#define B11100110 230 +#define B11100111 231 +#define B11101000 232 +#define B11101001 233 +#define B11101010 234 +#define B11101011 235 +#define B11101100 236 +#define B11101101 237 +#define B11101110 238 +#define B11101111 239 +#define B11110000 240 +#define B11110001 241 +#define B11110010 242 +#define B11110011 243 +#define B11110100 244 +#define B11110101 245 +#define B11110110 246 +#define B11110111 247 +#define B11111000 248 +#define B11111001 249 +#define B11111010 250 +#define B11111011 251 +#define B11111100 252 +#define B11111101 253 +#define B11111110 254 +#define B11111111 255 + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/main.cpp new file mode 100644 index 000000000..3d4e079d2 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/main.cpp @@ -0,0 +1,20 @@ +#include + +int main(void) +{ + init(); + +#if defined(USBCON) + USBDevice.attach(); +#endif + + setup(); + + for (;;) { + loop(); + if (serialEventRun) serialEventRun(); + } + + return 0; +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.cpp new file mode 100644 index 000000000..0f6d4220e --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.cpp @@ -0,0 +1,18 @@ +#include + +void * operator new(size_t size) +{ + return malloc(size); +} + +void operator delete(void * ptr) +{ + free(ptr); +} + +int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; +void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; +void __cxa_guard_abort (__guard *) {}; + +void __cxa_pure_virtual(void) {}; + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.h new file mode 100644 index 000000000..cd940ce8b --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.h @@ -0,0 +1,22 @@ +/* Header to define new/delete operators as they aren't provided by avr-gcc by default + Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 + */ + +#ifndef NEW_H +#define NEW_H + +#include + +void * operator new(size_t size); +void operator delete(void * ptr); + +__extension__ typedef int __guard __attribute__((mode (__DI__))); + +extern "C" int __cxa_guard_acquire(__guard *); +extern "C" void __cxa_guard_release (__guard *); +extern "C" void __cxa_guard_abort (__guard *); + +extern "C" void __cxa_pure_virtual(void); + +#endif + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring.c new file mode 100644 index 000000000..ac8bb6f9b --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring.c @@ -0,0 +1,324 @@ +/* + wiring.c - Partial implementation of the Wiring API for the ATmega8. + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id$ +*/ + +#include "wiring_private.h" + +// the prescaler is set so that timer0 ticks every 64 clock cycles, and the +// the overflow handler is called every 256 ticks. +#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) + +// the whole number of milliseconds per timer0 overflow +#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) + +// the fractional number of milliseconds per timer0 overflow. we shift right +// by three to fit these numbers into a byte. (for the clock speeds we care +// about - 8 and 16 MHz - this doesn't lose precision.) +#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) +#define FRACT_MAX (1000 >> 3) + +volatile unsigned long timer0_overflow_count = 0; +volatile unsigned long timer0_millis = 0; +static unsigned char timer0_fract = 0; + +#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) +SIGNAL(TIM0_OVF_vect) +#else +SIGNAL(TIMER0_OVF_vect) +#endif +{ + // copy these to local variables so they can be stored in registers + // (volatile variables must be read from memory on every access) + unsigned long m = timer0_millis; + unsigned char f = timer0_fract; + + m += MILLIS_INC; + f += FRACT_INC; + if (f >= FRACT_MAX) { + f -= FRACT_MAX; + m += 1; + } + + timer0_fract = f; + timer0_millis = m; + timer0_overflow_count++; +} + +unsigned long millis() +{ + unsigned long m; + uint8_t oldSREG = SREG; + + // disable interrupts while we read timer0_millis or we might get an + // inconsistent value (e.g. in the middle of a write to timer0_millis) + cli(); + m = timer0_millis; + SREG = oldSREG; + + return m; +} + +unsigned long micros() { + unsigned long m; + uint8_t oldSREG = SREG, t; + + cli(); + m = timer0_overflow_count; +#if defined(TCNT0) + t = TCNT0; +#elif defined(TCNT0L) + t = TCNT0L; +#else + #error TIMER 0 not defined +#endif + + +#ifdef TIFR0 + if ((TIFR0 & _BV(TOV0)) && (t < 255)) + m++; +#else + if ((TIFR & _BV(TOV0)) && (t < 255)) + m++; +#endif + + SREG = oldSREG; + + return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); +} + +void delay(unsigned long ms) +{ + uint16_t start = (uint16_t)micros(); + + while (ms > 0) { + if (((uint16_t)micros() - start) >= 1000) { + ms--; + start += 1000; + } + } +} + +/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ +void delayMicroseconds(unsigned int us) +{ + // calling avrlib's delay_us() function with low values (e.g. 1 or + // 2 microseconds) gives delays longer than desired. + //delay_us(us); +#if F_CPU >= 20000000L + // for the 20 MHz clock on rare Arduino boards + + // for a one-microsecond delay, simply wait 2 cycle and return. The overhead + // of the function call yields a delay of exactly a one microsecond. + __asm__ __volatile__ ( + "nop" "\n\t" + "nop"); //just waiting 2 cycle + if (--us == 0) + return; + + // the following loop takes a 1/5 of a microsecond (4 cycles) + // per iteration, so execute it five times for each microsecond of + // delay requested. + us = (us<<2) + us; // x5 us + + // account for the time taken in the preceeding commands. + us -= 2; + +#elif F_CPU >= 16000000L + // for the 16 MHz clock on most Arduino boards + + // for a one-microsecond delay, simply return. the overhead + // of the function call yields a delay of approximately 1 1/8 us. + if (--us == 0) + return; + + // the following loop takes a quarter of a microsecond (4 cycles) + // per iteration, so execute it four times for each microsecond of + // delay requested. + us <<= 2; + + // account for the time taken in the preceeding commands. + us -= 2; +#else + // for the 8 MHz internal clock on the ATmega168 + + // for a one- or two-microsecond delay, simply return. the overhead of + // the function calls takes more than two microseconds. can't just + // subtract two, since us is unsigned; we'd overflow. + if (--us == 0) + return; + if (--us == 0) + return; + + // the following loop takes half of a microsecond (4 cycles) + // per iteration, so execute it twice for each microsecond of + // delay requested. + us <<= 1; + + // partially compensate for the time taken by the preceeding commands. + // we can't subtract any more than this or we'd overflow w/ small delays. + us--; +#endif + + // busy wait + __asm__ __volatile__ ( + "1: sbiw %0,1" "\n\t" // 2 cycles + "brne 1b" : "=w" (us) : "0" (us) // 2 cycles + ); +} + +void init() +{ + // this needs to be called before setup() or some functions won't + // work there + sei(); + + // on the ATmega168, timer 0 is also used for fast hardware pwm + // (using phase-correct PWM would mean that timer 0 overflowed half as often + // resulting in different millis() behavior on the ATmega8 and ATmega168) +#if defined(TCCR0A) && defined(WGM01) + sbi(TCCR0A, WGM01); + sbi(TCCR0A, WGM00); +#endif + + // set timer 0 prescale factor to 64 +#if defined(__AVR_ATmega128__) + // CPU specific: different values for the ATmega128 + sbi(TCCR0, CS02); +#elif defined(TCCR0) && defined(CS01) && defined(CS00) + // this combination is for the standard atmega8 + sbi(TCCR0, CS01); + sbi(TCCR0, CS00); +#elif defined(TCCR0B) && defined(CS01) && defined(CS00) + // this combination is for the standard 168/328/1280/2560 + sbi(TCCR0B, CS01); + sbi(TCCR0B, CS00); +#elif defined(TCCR0A) && defined(CS01) && defined(CS00) + // this combination is for the __AVR_ATmega645__ series + sbi(TCCR0A, CS01); + sbi(TCCR0A, CS00); +#else + #error Timer 0 prescale factor 64 not set correctly +#endif + + // enable timer 0 overflow interrupt +#if defined(TIMSK) && defined(TOIE0) + sbi(TIMSK, TOIE0); +#elif defined(TIMSK0) && defined(TOIE0) + sbi(TIMSK0, TOIE0); +#else + #error Timer 0 overflow interrupt not set correctly +#endif + + // timers 1 and 2 are used for phase-correct hardware pwm + // this is better for motors as it ensures an even waveform + // note, however, that fast pwm mode can achieve a frequency of up + // 8 MHz (with a 16 MHz clock) at 50% duty cycle + +#if defined(TCCR1B) && defined(CS11) && defined(CS10) + TCCR1B = 0; + + // set timer 1 prescale factor to 64 + sbi(TCCR1B, CS11); +#if F_CPU >= 8000000L + sbi(TCCR1B, CS10); +#endif +#elif defined(TCCR1) && defined(CS11) && defined(CS10) + sbi(TCCR1, CS11); +#if F_CPU >= 8000000L + sbi(TCCR1, CS10); +#endif +#endif + // put timer 1 in 8-bit phase correct pwm mode +#if defined(TCCR1A) && defined(WGM10) + sbi(TCCR1A, WGM10); +#elif defined(TCCR1) + #warning this needs to be finished +#endif + + // set timer 2 prescale factor to 64 +#if defined(TCCR2) && defined(CS22) + sbi(TCCR2, CS22); +#elif defined(TCCR2B) && defined(CS22) + sbi(TCCR2B, CS22); +#else + #warning Timer 2 not finished (may not be present on this CPU) +#endif + + // configure timer 2 for phase correct pwm (8-bit) +#if defined(TCCR2) && defined(WGM20) + sbi(TCCR2, WGM20); +#elif defined(TCCR2A) && defined(WGM20) + sbi(TCCR2A, WGM20); +#else + #warning Timer 2 not finished (may not be present on this CPU) +#endif + +#if defined(TCCR3B) && defined(CS31) && defined(WGM30) + sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 + sbi(TCCR3B, CS30); + sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode +#endif + +#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ + sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 + sbi(TCCR4B, CS41); + sbi(TCCR4B, CS40); + sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode + sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A + sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D +#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ +#if defined(TCCR4B) && defined(CS41) && defined(WGM40) + sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 + sbi(TCCR4B, CS40); + sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode +#endif +#endif /* end timer4 block for ATMEGA1280/2560 and similar */ + +#if defined(TCCR5B) && defined(CS51) && defined(WGM50) + sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 + sbi(TCCR5B, CS50); + sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode +#endif + +#if defined(ADCSRA) + // set a2d prescale factor to 128 + // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. + // XXX: this will not work properly for other clock speeds, and + // this code should use F_CPU to determine the prescale factor. + sbi(ADCSRA, ADPS2); + sbi(ADCSRA, ADPS1); + sbi(ADCSRA, ADPS0); + + // enable a2d conversions + sbi(ADCSRA, ADEN); +#endif + + // the bootloader connects pins 0 and 1 to the USART; disconnect them + // here so they can be used as normal digital i/o; they will be + // reconnected in Serial.begin() +#if defined(UCSRB) + UCSRB = 0; +#elif defined(UCSR0B) + UCSR0B = 0; +#endif +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_analog.c new file mode 100644 index 000000000..23b01c65a --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_analog.c @@ -0,0 +1,282 @@ +/* + wiring_analog.c - analog input and output + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 28 September 2010 by Mark Sproul + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" +#include "pins_arduino.h" + +uint8_t analog_reference = DEFAULT; + +void analogReference(uint8_t mode) +{ + // can't actually set the register here because the default setting + // will connect AVCC and the AREF pin, which would cause a short if + // there's something connected to AREF. + analog_reference = mode; +} + +int analogRead(uint8_t pin) +{ + uint8_t low, high; + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + if (pin >= 54) pin -= 54; // allow for channel or pin numbers +#elif defined(__AVR_ATmega32U4__) + if (pin >= 18) pin -= 18; // allow for channel or pin numbers +#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) + if (pin >= 24) pin -= 24; // allow for channel or pin numbers +#else + if (pin >= 14) pin -= 14; // allow for channel or pin numbers +#endif + +#if defined(__AVR_ATmega32U4__) + pin = analogPinToChannel(pin); + ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); +#elif defined(ADCSRB) && defined(MUX5) + // the MUX5 bit of ADCSRB selects whether we're reading from channels + // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). + ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); +#endif + + // set the analog reference (high two bits of ADMUX) and select the + // channel (low 4 bits). this also sets ADLAR (left-adjust result) + // to 0 (the default). +#if defined(ADMUX) + ADMUX = (analog_reference << 6) | (pin & 0x07); +#endif + + // without a delay, we seem to read from the wrong channel + //delay(1); + +#if defined(ADCSRA) && defined(ADCL) + // start the conversion + sbi(ADCSRA, ADSC); + + // ADSC is cleared when the conversion finishes + while (bit_is_set(ADCSRA, ADSC)); + + // we have to read ADCL first; doing so locks both ADCL + // and ADCH until ADCH is read. reading ADCL second would + // cause the results of each conversion to be discarded, + // as ADCL and ADCH would be locked when it completed. + low = ADCL; + high = ADCH; +#else + // we dont have an ADC, return 0 + low = 0; + high = 0; +#endif + + // combine the two bytes + return (high << 8) | low; +} + +// Right now, PWM output only works on the pins with +// hardware support. These are defined in the appropriate +// pins_*.c file. For the rest of the pins, we default +// to digital output. +void analogWrite(uint8_t pin, int val) +{ + // We need to make sure the PWM output is enabled for those pins + // that support it, as we turn it off when digitally reading or + // writing with them. Also, make sure the pin is in output mode + // for consistenty with Wiring, which doesn't require a pinMode + // call for the analog output pins. + pinMode(pin, OUTPUT); + if (val == 0) + { + digitalWrite(pin, LOW); + } + else if (val == 255) + { + digitalWrite(pin, HIGH); + } + else + { + switch(digitalPinToTimer(pin)) + { + // XXX fix needed for atmega8 + #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) + case TIMER0A: + // connect pwm to pin on timer 0 + sbi(TCCR0, COM00); + OCR0 = val; // set pwm duty + break; + #endif + + #if defined(TCCR0A) && defined(COM0A1) + case TIMER0A: + // connect pwm to pin on timer 0, channel A + sbi(TCCR0A, COM0A1); + OCR0A = val; // set pwm duty + break; + #endif + + #if defined(TCCR0A) && defined(COM0B1) + case TIMER0B: + // connect pwm to pin on timer 0, channel B + sbi(TCCR0A, COM0B1); + OCR0B = val; // set pwm duty + break; + #endif + + #if defined(TCCR1A) && defined(COM1A1) + case TIMER1A: + // connect pwm to pin on timer 1, channel A + sbi(TCCR1A, COM1A1); + OCR1A = val; // set pwm duty + break; + #endif + + #if defined(TCCR1A) && defined(COM1B1) + case TIMER1B: + // connect pwm to pin on timer 1, channel B + sbi(TCCR1A, COM1B1); + OCR1B = val; // set pwm duty + break; + #endif + + #if defined(TCCR2) && defined(COM21) + case TIMER2: + // connect pwm to pin on timer 2 + sbi(TCCR2, COM21); + OCR2 = val; // set pwm duty + break; + #endif + + #if defined(TCCR2A) && defined(COM2A1) + case TIMER2A: + // connect pwm to pin on timer 2, channel A + sbi(TCCR2A, COM2A1); + OCR2A = val; // set pwm duty + break; + #endif + + #if defined(TCCR2A) && defined(COM2B1) + case TIMER2B: + // connect pwm to pin on timer 2, channel B + sbi(TCCR2A, COM2B1); + OCR2B = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3A1) + case TIMER3A: + // connect pwm to pin on timer 3, channel A + sbi(TCCR3A, COM3A1); + OCR3A = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3B1) + case TIMER3B: + // connect pwm to pin on timer 3, channel B + sbi(TCCR3A, COM3B1); + OCR3B = val; // set pwm duty + break; + #endif + + #if defined(TCCR3A) && defined(COM3C1) + case TIMER3C: + // connect pwm to pin on timer 3, channel C + sbi(TCCR3A, COM3C1); + OCR3C = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) + case TIMER4A: + //connect pwm to pin on timer 4, channel A + sbi(TCCR4A, COM4A1); + #if defined(COM4A0) // only used on 32U4 + cbi(TCCR4A, COM4A0); + #endif + OCR4A = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) && defined(COM4B1) + case TIMER4B: + // connect pwm to pin on timer 4, channel B + sbi(TCCR4A, COM4B1); + OCR4B = val; // set pwm duty + break; + #endif + + #if defined(TCCR4A) && defined(COM4C1) + case TIMER4C: + // connect pwm to pin on timer 4, channel C + sbi(TCCR4A, COM4C1); + OCR4C = val; // set pwm duty + break; + #endif + + #if defined(TCCR4C) && defined(COM4D1) + case TIMER4D: + // connect pwm to pin on timer 4, channel D + sbi(TCCR4C, COM4D1); + #if defined(COM4D0) // only used on 32U4 + cbi(TCCR4C, COM4D0); + #endif + OCR4D = val; // set pwm duty + break; + #endif + + + #if defined(TCCR5A) && defined(COM5A1) + case TIMER5A: + // connect pwm to pin on timer 5, channel A + sbi(TCCR5A, COM5A1); + OCR5A = val; // set pwm duty + break; + #endif + + #if defined(TCCR5A) && defined(COM5B1) + case TIMER5B: + // connect pwm to pin on timer 5, channel B + sbi(TCCR5A, COM5B1); + OCR5B = val; // set pwm duty + break; + #endif + + #if defined(TCCR5A) && defined(COM5C1) + case TIMER5C: + // connect pwm to pin on timer 5, channel C + sbi(TCCR5A, COM5C1); + OCR5C = val; // set pwm duty + break; + #endif + + case NOT_ON_TIMER: + default: + if (val < 128) { + digitalWrite(pin, LOW); + } else { + digitalWrite(pin, HIGH); + } + } + } +} + diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_digital.c new file mode 100644 index 000000000..be323b1df --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_digital.c @@ -0,0 +1,178 @@ +/* + wiring_digital.c - digital input and output functions + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + Modified 28 September 2010 by Mark Sproul + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#define ARDUINO_MAIN +#include "wiring_private.h" +#include "pins_arduino.h" + +void pinMode(uint8_t pin, uint8_t mode) +{ + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + volatile uint8_t *reg, *out; + + if (port == NOT_A_PIN) return; + + // JWS: can I let the optimizer do this? + reg = portModeRegister(port); + out = portOutputRegister(port); + + if (mode == INPUT) { + uint8_t oldSREG = SREG; + cli(); + *reg &= ~bit; + *out &= ~bit; + SREG = oldSREG; + } else if (mode == INPUT_PULLUP) { + uint8_t oldSREG = SREG; + cli(); + *reg &= ~bit; + *out |= bit; + SREG = oldSREG; + } else { + uint8_t oldSREG = SREG; + cli(); + *reg |= bit; + SREG = oldSREG; + } +} + +// Forcing this inline keeps the callers from having to push their own stuff +// on the stack. It is a good performance win and only takes 1 more byte per +// user than calling. (It will take more bytes on the 168.) +// +// But shouldn't this be moved into pinMode? Seems silly to check and do on +// each digitalread or write. +// +// Mark Sproul: +// - Removed inline. Save 170 bytes on atmega1280 +// - changed to a switch statment; added 32 bytes but much easier to read and maintain. +// - Added more #ifdefs, now compiles for atmega645 +// +//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); +//static inline void turnOffPWM(uint8_t timer) +static void turnOffPWM(uint8_t timer) +{ + switch (timer) + { + #if defined(TCCR1A) && defined(COM1A1) + case TIMER1A: cbi(TCCR1A, COM1A1); break; + #endif + #if defined(TCCR1A) && defined(COM1B1) + case TIMER1B: cbi(TCCR1A, COM1B1); break; + #endif + + #if defined(TCCR2) && defined(COM21) + case TIMER2: cbi(TCCR2, COM21); break; + #endif + + #if defined(TCCR0A) && defined(COM0A1) + case TIMER0A: cbi(TCCR0A, COM0A1); break; + #endif + + #if defined(TIMER0B) && defined(COM0B1) + case TIMER0B: cbi(TCCR0A, COM0B1); break; + #endif + #if defined(TCCR2A) && defined(COM2A1) + case TIMER2A: cbi(TCCR2A, COM2A1); break; + #endif + #if defined(TCCR2A) && defined(COM2B1) + case TIMER2B: cbi(TCCR2A, COM2B1); break; + #endif + + #if defined(TCCR3A) && defined(COM3A1) + case TIMER3A: cbi(TCCR3A, COM3A1); break; + #endif + #if defined(TCCR3A) && defined(COM3B1) + case TIMER3B: cbi(TCCR3A, COM3B1); break; + #endif + #if defined(TCCR3A) && defined(COM3C1) + case TIMER3C: cbi(TCCR3A, COM3C1); break; + #endif + + #if defined(TCCR4A) && defined(COM4A1) + case TIMER4A: cbi(TCCR4A, COM4A1); break; + #endif + #if defined(TCCR4A) && defined(COM4B1) + case TIMER4B: cbi(TCCR4A, COM4B1); break; + #endif + #if defined(TCCR4A) && defined(COM4C1) + case TIMER4C: cbi(TCCR4A, COM4C1); break; + #endif + #if defined(TCCR4C) && defined(COM4D1) + case TIMER4D: cbi(TCCR4C, COM4D1); break; + #endif + + #if defined(TCCR5A) + case TIMER5A: cbi(TCCR5A, COM5A1); break; + case TIMER5B: cbi(TCCR5A, COM5B1); break; + case TIMER5C: cbi(TCCR5A, COM5C1); break; + #endif + } +} + +void digitalWrite(uint8_t pin, uint8_t val) +{ + uint8_t timer = digitalPinToTimer(pin); + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + volatile uint8_t *out; + + if (port == NOT_A_PIN) return; + + // If the pin that support PWM output, we need to turn it off + // before doing a digital write. + if (timer != NOT_ON_TIMER) turnOffPWM(timer); + + out = portOutputRegister(port); + + uint8_t oldSREG = SREG; + cli(); + + if (val == LOW) { + *out &= ~bit; + } else { + *out |= bit; + } + + SREG = oldSREG; +} + +int digitalRead(uint8_t pin) +{ + uint8_t timer = digitalPinToTimer(pin); + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + + if (port == NOT_A_PIN) return LOW; + + // If the pin that support PWM output, we need to turn it off + // before getting a digital reading. + if (timer != NOT_ON_TIMER) turnOffPWM(timer); + + if (*portInputRegister(port) & bit) return HIGH; + return LOW; +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_private.h new file mode 100644 index 000000000..f67826567 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_private.h @@ -0,0 +1,71 @@ +/* + wiring_private.h - Internal header file. + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ +*/ + +#ifndef WiringPrivate_h +#define WiringPrivate_h + +#include +#include +#include +#include + +#include "Arduino.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +#define EXTERNAL_INT_0 0 +#define EXTERNAL_INT_1 1 +#define EXTERNAL_INT_2 2 +#define EXTERNAL_INT_3 3 +#define EXTERNAL_INT_4 4 +#define EXTERNAL_INT_5 5 +#define EXTERNAL_INT_6 6 +#define EXTERNAL_INT_7 7 + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define EXTERNAL_NUM_INTERRUPTS 8 +#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) +#define EXTERNAL_NUM_INTERRUPTS 3 +#elif defined(__AVR_ATmega32U4__) +#define EXTERNAL_NUM_INTERRUPTS 4 +#else +#define EXTERNAL_NUM_INTERRUPTS 2 +#endif + +typedef void (*voidFuncPtr)(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_pulse.c new file mode 100644 index 000000000..0d968865d --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_pulse.c @@ -0,0 +1,69 @@ +/* + wiring_pulse.c - pulseIn() function + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" +#include "pins_arduino.h" + +/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH + * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds + * to 3 minutes in length, but must be called at least a few dozen microseconds + * before the start of the pulse. */ +unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) +{ + // cache the port and bit of the pin in order to speed up the + // pulse width measuring loop and achieve finer resolution. calling + // digitalRead() instead yields much coarser resolution. + uint8_t bit = digitalPinToBitMask(pin); + uint8_t port = digitalPinToPort(pin); + uint8_t stateMask = (state ? bit : 0); + unsigned long width = 0; // keep initialization out of time critical area + + // convert the timeout from microseconds to a number of times through + // the initial loop; it takes 16 clock cycles per iteration. + unsigned long numloops = 0; + unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; + + // wait for any previous pulse to end + while ((*portInputRegister(port) & bit) == stateMask) + if (numloops++ == maxloops) + return 0; + + // wait for the pulse to start + while ((*portInputRegister(port) & bit) != stateMask) + if (numloops++ == maxloops) + return 0; + + // wait for the pulse to stop + while ((*portInputRegister(port) & bit) == stateMask) { + if (numloops++ == maxloops) + return 0; + width++; + } + + // convert the reading to microseconds. The loop has been determined + // to be 20 clock cycles long and have about 16 clocks between the edge + // and the start of the loop. There will be some error introduced by + // the interrupt handlers. + return clockCyclesToMicroseconds(width * 21 + 16); +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_shift.c new file mode 100644 index 000000000..cfe786758 --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_shift.c @@ -0,0 +1,55 @@ +/* + wiring_shift.c - shiftOut() function + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ +*/ + +#include "wiring_private.h" + +uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { + uint8_t value = 0; + uint8_t i; + + for (i = 0; i < 8; ++i) { + digitalWrite(clockPin, HIGH); + if (bitOrder == LSBFIRST) + value |= digitalRead(dataPin) << i; + else + value |= digitalRead(dataPin) << (7 - i); + digitalWrite(clockPin, LOW); + } + return value; +} + +void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) +{ + uint8_t i; + + for (i = 0; i < 8; i++) { + if (bitOrder == LSBFIRST) + digitalWrite(dataPin, !!(val & (1 << i))); + else + digitalWrite(dataPin, !!(val & (1 << (7 - i)))); + + digitalWrite(clockPin, HIGH); + digitalWrite(clockPin, LOW); + } +} diff --git a/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/variants/standard/pins_arduino.h new file mode 100644 index 000000000..9fce4758c --- /dev/null +++ b/ArduinoAddons/Arduino_1.x.x/hardware/Melzi/variants/standard/pins_arduino.h @@ -0,0 +1,286 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ + + Changelog + ----------- + 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P + 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NOT_A_PIN 0 +#define NOT_A_PORT 0 + +#define NOT_ON_TIMER 0 +#define TIMER0A 1 +#define TIMER0B 2 +#define TIMER1A 3 +#define TIMER1B 4 +#define TIMER2 5 +#define TIMER2A 6 +#define TIMER2B 7 + +#define TIMER3A 8 +#define TIMER3B 9 +#define TIMER3C 10 +#define TIMER4A 11 +#define TIMER4B 12 +#define TIMER4C 13 +#define TIMER4D 14 +#define TIMER5A 15 +#define TIMER5B 16 +#define TIMER5C 17 + +const static uint8_t SS = 4; +const static uint8_t MOSI = 5; +const static uint8_t MISO = 6; +const static uint8_t SCK = 7; + +static const uint8_t SDA = 17; +static const uint8_t SCL = 16; +static const uint8_t LED_BUILTIN = 13; + +static const uint8_t A0 = 31; +static const uint8_t A1 = 30; +static const uint8_t A2 = 29; +static const uint8_t A3 = 28; +static const uint8_t A4 = 27; +static const uint8_t A5 = 26; +static const uint8_t A6 = 25; +static const uint8_t A7 = 24; + +// On the ATmega1280, the addresses of some of the port registers are +// greater than 255, so we can't store them in uint8_t's. +// extern const uint16_t PROGMEM port_to_mode_PGM[]; +// extern const uint16_t PROGMEM port_to_input_PGM[]; +// extern const uint16_t PROGMEM port_to_output_PGM[]; + +// extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; +// extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; + +// ATMEL ATMEGA644P / SANGUINO +// +// +---\/---+ +// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) +// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) +// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) +// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) +// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) +// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) +// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) +// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) +// RST 9| |32 AREF +// VCC 10| |31 GND +// GND 11| |30 AVCC +// XTAL2 12| |29 PC7 (D 23) +// XTAL1 13| |28 PC6 (D 22) +// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI +// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO +// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS +// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK +// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA +// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL +// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM +// +--------+ +// +#define NUM_DIGITAL_PINS 24 +#define NUM_ANALOG_INPUTS 8 +#define analogInputToDigitalPin(p) ((p < NUM_ANALOG_INPUTS) ? 31 - (p) : -1) + +#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) + +#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ + ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ + ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ + ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ + 0 ) ) ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ + ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ + ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ + ((uint8_t *)0) ) ) ) ) + + +#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ + ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ + ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ + 0 ) ) ) ) + +#define PA 1 +#define PB 2 +#define PC 3 +#define PD 4 +#define PE 5 +#define PF 6 +#define PG 7 +#define PH 8 +#define PJ 10 +#define PK 11 +#define PL 12 + +#ifdef ARDUINO_MAIN +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, +}; +const uint16_t PROGMEM port_to_input_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, +}; +const uint8_t PROGMEM digital_pin_to_port_PGM[] = +{ + PB, /* 0 */ + PB, + PB, + PB, + PB, + PB, + PB, + PB, + PD, /* 8 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PC, /* 16 */ + PC, + PC, + PC, + PC, + PC, + PC, + PC, + PA, /* 24 */ + PA, + PA, + PA, + PA, + PA, + PA, + PA /* 31 */ +}; +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = +{ + _BV(0), /* 0, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 16, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(7), /* 24, port A */ + _BV(6), + _BV(5), + _BV(4), + _BV(3), + _BV(2), + _BV(1), + _BV(0) +}; +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = +{ + NOT_ON_TIMER, /* 0 - PB0 */ + NOT_ON_TIMER, /* 1 - PB1 */ + NOT_ON_TIMER, /* 2 - PB2 */ + TIMER0A, /* 3 - PB3 */ + TIMER0B, /* 4 - PB4 */ + NOT_ON_TIMER, /* 5 - PB5 */ + NOT_ON_TIMER, /* 6 - PB6 */ + NOT_ON_TIMER, /* 7 - PB7 */ + NOT_ON_TIMER, /* 8 - PD0 */ + NOT_ON_TIMER, /* 9 - PD1 */ + NOT_ON_TIMER, /* 10 - PD2 */ + NOT_ON_TIMER, /* 11 - PD3 */ + TIMER1B, /* 12 - PD4 */ + TIMER1A, /* 13 - PD5 */ + TIMER2B, /* 14 - PD6 */ + TIMER2A, /* 15 - PD7 */ + NOT_ON_TIMER, /* 16 - PC0 */ + NOT_ON_TIMER, /* 17 - PC1 */ + NOT_ON_TIMER, /* 18 - PC2 */ + NOT_ON_TIMER, /* 19 - PC3 */ + NOT_ON_TIMER, /* 20 - PC4 */ + NOT_ON_TIMER, /* 21 - PC5 */ + NOT_ON_TIMER, /* 22 - PC6 */ + NOT_ON_TIMER, /* 23 - PC7 */ + NOT_ON_TIMER, /* 24 - PA0 */ + NOT_ON_TIMER, /* 25 - PA1 */ + NOT_ON_TIMER, /* 26 - PA2 */ + NOT_ON_TIMER, /* 27 - PA3 */ + NOT_ON_TIMER, /* 28 - PA4 */ + NOT_ON_TIMER, /* 29 - PA5 */ + NOT_ON_TIMER, /* 30 - PA6 */ + NOT_ON_TIMER /* 31 - PA7 */ +}; +#endif +#endif From 3ebfd29312711955a5fca353690192927922e048 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 30 Nov 2014 19:56:06 -0800 Subject: [PATCH 14/33] Print a message when printing is aborted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Messages in gcode files like “M117 Printing…†were not being cleared on Stop Print. --- Marlin/language.h | 13 +++++++++++++ Marlin/ultralcd.cpp | 2 ++ 2 files changed, 15 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index 8fd165b40..3e6e17043 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -243,6 +243,7 @@ #define MSG_DWELL "Sleep..." #define MSG_USERWAIT "Wait for user..." #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "No move." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -369,6 +370,7 @@ #define MSG_DWELL "Uspij..." #define MSG_USERWAIT "Oczekiwanie..." #define MSG_RESUMING "Wznawianie druku" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Brak ruchu" #define MSG_KILLED "Ubity. " #define MSG_STOPPED "Zatrzymany. " @@ -497,6 +499,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Atten. de l'util." #define MSG_RESUMING "Repri. de l'impr." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Aucun mouvement." #define MSG_KILLED "MORT." #define MSG_STOPPED "STOPPE." @@ -626,6 +629,7 @@ #define MSG_DWELL "Warten..." #define MSG_USERWAIT "Warte auf Nutzer" #define MSG_RESUMING "Druck fortsetzung" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Kein Zug." #define MSG_KILLED "KILLED" #define MSG_STOPPED "GESTOPPT" @@ -752,6 +756,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Esperando ordenes" #define MSG_RESUMING "Resumiendo impre." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA" @@ -887,6 +892,7 @@ #define MSG_DWELL "Сон..." #define MSG_USERWAIT "Ожиданиие" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ðет движениÑ." #define MSG_KILLED "УБИТО." #define MSG_STOPPED "ОСТÐÐОВЛЕÐО." @@ -1013,6 +1019,7 @@ #define MSG_DWELL "Sospensione..." #define MSG_USERWAIT "Attendi Utente..." #define MSG_RESUMING "Riprendi Stampa" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Nessun Movimento." #define MSG_KILLED "UCCISO. " #define MSG_STOPPED "ARRESTATO. " @@ -1144,6 +1151,7 @@ #define MSG_DWELL "Repouso..." #define MSG_USERWAIT "Esperando ordem" #define MSG_RESUMING "Resuming print" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sem movimento" #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA. " @@ -1272,6 +1280,7 @@ #define MSG_DWELL "Nukkumassa..." #define MSG_USERWAIT "Odotet. valintaa" #define MSG_RESUMING "Jatke. tulostusta" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Ei liiketta." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -1395,6 +1404,7 @@ #define MSG_DWELL "Reposo..." #define MSG_USERWAIT "Asperan. ordines" #define MSG_RESUMING "Contin. impresion" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sin movimiento" #define MSG_KILLED "ATURADA D'EMERCH." #define MSG_STOPPED "ATURADA." @@ -1529,6 +1539,7 @@ #define MSG_DWELL "Slapen..." #define MSG_USERWAIT "Wachten..." #define MSG_RESUMING "Print hervatten" + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Geen beweging." #define MSG_KILLED "AFGEBROKEN. " #define MSG_STOPPED "GESTOPT. " @@ -1654,6 +1665,7 @@ #define MSG_DWELL "Repos..." #define MSG_USERWAIT "Esperant usuari.." #define MSG_RESUMING "Reprenent imp." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Sense moviment." #define MSG_KILLED "PARADA DE EMERG. " #define MSG_STOPPED "ATURAT. " @@ -1778,6 +1790,7 @@ #define MSG_DWELL "Lo egin..." #define MSG_USERWAIT "Aginduak zain..." #define MSG_RESUMING "Jarraitzen inpri." + #define MSG_PRINT_ABORTED "Print aborted" #define MSG_NO_MOVE "Mugimendu gabe" #define MSG_KILLED "LARRIALDI GELDIA" #define MSG_STOPPED "GELDITUTA. " diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 550b9cb0b..bbfbd67f7 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -279,6 +279,8 @@ static void lcd_sdcard_stop() autotempShutdown(); cancel_heatup = true; + + lcd_setstatus(MSG_PRINT_ABORTED); } /* Menu implementation */ From b17b8583afc3cf43a048c6209bd56492794fa107 Mon Sep 17 00:00:00 2001 From: Bo Herrmannsen Date: Wed, 17 Dec 2014 23:01:30 +0100 Subject: [PATCH 15/33] adding hardware files for OMC for ide 1.0.6 --- .../Arduino_1.0.x/hardware/OMC_tkj/boards.txt | 23 + .../bootloaders/OMC/bootloader-644-20MHz.hex | 75 ++ .../bootloaders/atmega644p/ATmegaBOOT.c | 713 ++++++++++++++++++ .../atmega644p/ATmegaBOOT_324P.hex | 121 +++ .../bootloaders/atmega644p/ATmegaBOOT_644.hex | 120 +++ .../atmega644p/ATmegaBOOT_644P.hex | 121 +++ .../OMC_tkj/bootloaders/atmega644p/Makefile | 56 ++ .../OMC_tkj/bootloaders/atmega644p/README.txt | 3 + .../OMC_tkj/variants/sanguino/pins_arduino.h | 269 +++++++ 9 files changed, 1501 insertions(+) create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_324P.hex create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_644.hex create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_644P.hex create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/Makefile create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt create mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt new file mode 100644 index 000000000..363d61552 --- /dev/null +++ b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt @@ -0,0 +1,23 @@ +############################################################## + +omc.name=OMC with Atmega644 at 20Mhz + +omc.upload.maximum_size=63488 +omc.upload.maximum_data_size=4096 + +omc.upload.protocol=stk500v2 +omc.upload.speed=115200 +omc.bootloader.path=OMC +omc.bootloader.file=bootloader-644-20MHz.hex + +omc.bootloader.low_fuses=0xE7 +omc.bootloader.high_fuses=0xD4 +omc.bootloader.extended_fuses=0xFC +omc.bootloader.unlock_bits=0x3F +omc.bootloader.lock_bits=0x0F + +omc.build.mcu=atmega644 +omc.build.f_cpu=20000000L +omc.build.board=AVR_OMC +omc.build.core=arduino:arduino +omc.build.variant=sanguino \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex new file mode 100644 index 000000000..d216c65f9 --- /dev/null +++ b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex @@ -0,0 +1,75 @@ +:10F800008FEF90E19EBF8DBF11241FBE5A9A00C09A +:10F81000CDB7DEB7CD51D140DEBFCDBF1092C50010 +:10F820008AE08093C40088E18093C100EE24FF2425 +:10F8300020E0552400E010E039E0432E9BE0292E23 +:10F84000312C2C0E3D1ECFC14150504060407040C5 +:10F8500011F43FE206C08091C00087FFF5CF3091E0 +:10F86000C600933021F1943028F4913099F0923011 +:10F87000C8F407C0953049F1953000F19630D1F5C4 +:10F8800035C03B3119F491E02BE134C03F3291F5A2 +:10F890003983BBC1313011F0351559F52327532E6B +:10F8A00092E028C0B32FA0E0232793E023C0832F4A +:10F8B00090E0A82BB92B232794E01CC03E30C9F45C +:10F8C000232795E0EE24FF2415C0E1E0F0E0EC0FE3 +:10F8D000FD1FEE0DFF1D30830894E11CF11C232752 +:10F8E000EA16FB0639F4D70196E004C0321709F492 +:10F8F0008CC190E041ED5AE363E570E0ACCF90E05D +:10F9000044C08D81803311F090E00AC08F8188233C +:10F9100011F49EE105C0813011F099E001C096E933 +:10F920001A821B828D818C838E818D839E831F82A0 +:10F9300047E050E0F4C01A8288E08B8381E48C8336 +:10F9400086E58D8382E58E8389E48F8383E58887CE +:10F9500080E589878FE58A8782E38B874BE050E0DB +:10F96000DEC08A81813941F0823941F0803911F459 +:10F970008FE005C080E003C082E001C08AE01A8207 +:10F980008B8343E050E0CBC091E01A8242E050E02C +:10F99000C7C08D81882311F48EE124C0813011F01D +:10F9A00089E020C086E91EC01A82E1E0F0E04092C2 +:10F9B0005700849118C08B81803579F48C81883010 +:10F9C00031F4E2E0F0E04092570084910BC0E0E0B7 +:10F9D000F0E040925700849105C0E3E0F0E04092EF +:10F9E000570084911A828B831C8244E050E097C0B8 +:10F9F000BC80AA248D81082F10E00A291B29000F42 +:10FA0000111F1A828AC09A8088248B81682F70E027 +:10FA100068297929933109F033C0F7EF0F3F1F07A9 +:10FA200010F0A8013FC023E0F80120935700E895AB +:10FA300007B600FCFDCFA801D1018C9111962C9145 +:10FA400011971296D22ECC2490E08C299D2921E08A +:10FA5000FA010C0120935700E89511244E5F5F4F87 +:10FA60006250704051F725E0F80120935700E89567 +:10FA700007B600FCFDCF81E180935700E89512C0E6 +:10FA8000A801FB01D10141BD52BD4F5F5F4F8D9178 +:10FA900080BDFA9AF99AF999FECF3197A1F7A8019A +:10FAA000460F571F1A828A0138C07A8066248B81DC +:10FAB000A82FB0E0A629B7291A828981843191F450 +:10FAC000BD019E012D5F3F4FF80185919491F90191 +:10FAD000808391832E5F3F4F0E5F1F4F62507040B7 +:10FAE00099F713C0A801BD019E012D5F3F4F41BD95 +:10FAF00052BD4F5F5F4FF89A80B5F90181939F0126 +:10FB000061507040A1F70A0F1B1FAD014D5F5F4FA1 +:10FB1000F901108204C080EC8A8342E050E090E05A +:10FB2000FBE1F093C6008091C00086FFFCCF80917E +:10FB3000C00080648093C0005092C6008091C000D5 +:10FB400086FFFCCF8091C00080648093C000652F49 +:10FB50005093C6008091C00086FFFCCF8091C0000A +:10FB600080648093C000342F4093C6008091C00011 +:10FB700086FFFCCF8091C00080648093C0008EE03F +:10FB80008093C6008091C00086FFFCCF8091C000AA +:10FB900080648093C00025E1252523272627FE01C8 +:10FBA000319610C030813093C6008091C00086FF2E +:10FBB000FCCF31968091C00080648093C0002327E1 +:10FBC000415050404115510569F72093C60080917E +:10FBD000C00086FFFCCF8091C00080648093C0008D +:10FBE000992349F4539441ED5AE363E570E090E0C2 +:10FBF000A0E0B0E030CE5A9881E180935700E895BC +:10FC000011241F921F920895FFCF9981933109F417 +:10FC1000FACE9431C8F4963009F4EACE973050F415 +:10FC2000923009F46CCE933009F49BCE913009F0F8 +:10FC300072CF81CE913109F4A7CE923108F0E1CE96 +:10FC4000903109F068CF5BCE983109F4B4CE993188 +:10FC500050F4953109F4D7CE953108F426CF96317A +:10FC600009F059CF22CF9B3109F493CE9C3120F477 +:10FC70009A3109F050CF98CE9D3109F442CE9F328F +:06FC800009F049CFB8CFE6 +:040000030000F80001 +:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c new file mode 100644 index 000000000..171101445 --- /dev/null +++ b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c @@ -0,0 +1,713 @@ +/**********************************************************/ +/* Serial Bootloader for Atmel megaAVR Controllers */ +/* */ +/* tested with ATmega644 and ATmega644P */ +/* should work with other mega's, see code for details */ +/* */ +/* ATmegaBOOT.c */ +/* */ +/* 20090131: Added 324P support from Alex Leone */ +/* Marius Kintel */ +/* 20080915: applied ADABoot mods for Sanguino 644P */ +/* Brian Riley */ +/* 20080711: hacked for Sanguino by Zach Smith */ +/* and Justin Day */ +/* 20070626: hacked for Arduino Diecimila (which auto- */ +/* resets when a USB connection is made to it) */ +/* by D. Mellis */ +/* 20060802: hacked for Arduino by D. Cuartielles */ +/* based on a previous hack by D. Mellis */ +/* and D. Cuartielles */ +/* */ +/* Monitor and debug functions were added to the original */ +/* code by Dr. Erik Lins, chip45.com. (See below) */ +/* */ +/* Thanks to Karl Pitrich for fixing a bootloader pin */ +/* problem and more informative LED blinking! */ +/* */ +/* For the latest version see: */ +/* http://www.chip45.com/ */ +/* */ +/* ------------------------------------------------------ */ +/* */ +/* based on stk500boot.c */ +/* Copyright (c) 2003, Jason P. Kyle */ +/* All rights reserved. */ +/* see avr1.org for original file and information */ +/* */ +/* This program is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU General */ +/* Public License as published by the Free Software */ +/* Foundation; either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will */ +/* be useful, but WITHOUT ANY WARRANTY; without even the */ +/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ +/* PARTICULAR PURPOSE. See the GNU General Public */ +/* License for more details. */ +/* */ +/* You should have received a copy of the GNU General */ +/* Public License along with this program; if not, write */ +/* to the Free Software Foundation, Inc., */ +/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* */ +/* Licence can be viewed at */ +/* http://www.fsf.org/licenses/gpl.txt */ +/* */ +/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ +/* m8515,m8535. ATmega161 has a very small boot block so */ +/* isn't supported. */ +/* */ +/* Tested with m168 */ +/**********************************************************/ + +/* $Id$ */ + + +/* some includes */ +#include +#include +#include +#include +#include +#include + +#ifdef ADABOOT + #define NUM_LED_FLASHES 3 + #define ADABOOT_VER 1 +#endif + + +/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ +#define MAX_ERROR_COUNT 5 + +/* set the UART baud rate */ +/* 20080711: hack by Zach Hoeken */ +#define BAUD_RATE 38400 + +/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ +/* never allow AVR Studio to do an update !!!! */ +#define HW_VER 0x02 +#define SW_MAJOR 0x01 +#define SW_MINOR 0x10 + +/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ +/* if monitor functions are included, LED goes on after monitor was entered */ +#define LED_DDR DDRB +#define LED_PORT PORTB +#define LED_PIN PINB +#define LED PINB0 + +/* define various device id's */ +/* manufacturer byte is always the same */ +#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( +#if defined(__AVR_ATmega644P__) +#define SIG2 0x96 +#define SIG3 0x0A +#elif defined(__AVR_ATmega644__) +#define SIG2 0x96 +#define SIG3 0x09 +#elif defined(__AVR_ATmega324P__) +#define SIG2 0x95 +#define SIG3 0x08 +#endif +#define PAGE_SIZE 0x080U //128 words +#define PAGE_SIZE_BYTES 0x100U //256 bytes + +/* function prototypes */ +void putch(char); +char getch(void); +void getNch(uint8_t); +void byte_response(uint8_t); +void nothing_response(void); +char gethex(void); +void puthex(char); +void flash_led(uint8_t); + +/* some variables */ +union address_union +{ + uint16_t word; + uint8_t byte[2]; +} address; + +union length_union +{ + uint16_t word; + uint8_t byte[2]; +} length; + +struct flags_struct +{ + unsigned eeprom : 1; + unsigned rampz : 1; +} flags; + +uint8_t buff[256]; + +uint8_t error_count = 0; +uint8_t sreg; + +void (*app_start)(void) = 0x0000; + +/* main program starts here */ +int main(void) +{ + uint8_t ch,ch2; + uint16_t w; + uint16_t i; + + asm volatile("nop\n\t"); + +#ifdef ADABOOT // BBR/LF 10/8/2007 & 9/13/2008 + ch = MCUSR; + MCUSR = 0; + + WDTCSR |= _BV(WDCE) | _BV(WDE); + WDTCSR = 0; + + // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. + if (! (ch & _BV(EXTRF))) // if its a not an external reset... + app_start(); // skip bootloader +#endif + + + //initialize our serial port. + UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); + UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; + UCSR0B = (1< 0x85) + getch(); + nothing_response(); + } + + + /* AVR ISP/STK500 board requests */ + else if(ch=='A') + { + ch2 = getch(); + if(ch2 == 0x80) + byte_response(HW_VER); // Hardware version + else if(ch2==0x81) + byte_response(SW_MAJOR); // Software major version + else if(ch2==0x82) + byte_response(SW_MINOR); // Software minor version + else if(ch2==0x98) + byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 + else + byte_response(0x00); // Covers various unnecessary responses we don't care about + } + + + /* Device Parameters DON'T CARE, DEVICE IS FIXED */ + else if(ch=='B') + { + getNch(20); + nothing_response(); + } + + + /* Parallel programming stuff DON'T CARE */ + else if(ch=='E') + { + getNch(5); + nothing_response(); + } + + + /* Enter programming mode */ + else if(ch=='P') + { + nothing_response(); + } + + + /* Leave programming mode */ + else if(ch=='Q') + { + nothing_response(); +#ifdef ADABOOT + // autoreset via watchdog (sneaky!) BBR/LF 9/13/2008 + WDTCSR = _BV(WDE); + while (1); // 16 ms +#endif + } + + + /* Erase device, don't care as we will erase one page at a time anyway. */ + else if(ch=='R') + { + nothing_response(); + } + + + /* Set address, little endian. EEPROM in bytes, FLASH in words */ + /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ + /* This might explain why little endian was used here, big endian used everywhere else. */ + else if(ch=='U') + { + address.byte[0] = getch(); + address.byte[1] = getch(); + nothing_response(); + } + + + /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ + else if(ch=='V') + { + getNch(4); + byte_response(0x00); + } + + + /* Write memory, length is big endian and is in bytes */ + else if(ch=='d') + { + length.byte[1] = getch(); + length.byte[0] = getch(); + + flags.eeprom = 0; + if (getch() == 'E') + flags.eeprom = 1; + + for (i=0; i byte location + address.word = address.word << 1; + + //Even up an odd number of bytes + if ((length.byte[0] & 0x01)) + length.word++; + + // HACKME: EEPE used to be EEWE + //Wait for previous EEPROM writes to complete + //while(bit_is_set(EECR,EEPE)); + while(EECR & (1< byte location + } + + // Command terminator + if (getch() == ' ') + { + putch(0x14); + for (w=0; w= 'a') + ah = ah - 'a' + 0x0a; + else if(ah >= '0') + ah -= '0'; + if(al >= 'a') + al = al - 'a' + 0x0a; + else if(al >= '0') + al -= '0'; + + return (ah << 4) + al; +} + + +void puthex(char ch) +{ + char ah,al; + + ah = (ch & 0xf0) >> 4; + if(ah >= 0x0a) + ah = ah - 0x0a + 'a'; + else + ah += '0'; + + al = (ch & 0x0f); + if(al >= 0x0a) + al = al - 0x0a + 'a'; + else + al += '0'; + + putch(ah); + putch(al); +} + + +void putch(char ch) +{ + while (!(UCSR0A & _BV(UDRE0))); + UDR0 = ch; +} + + + + +char getch(void) +{ + uint32_t count = 0; + +#ifdef ADABOOT + LED_PORT &= ~_BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 +#endif + + while(!(UCSR0A & _BV(RXC0))) + { + /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ + /* HACKME:: here is a good place to count times*/ + count++; + if (count > MAX_TIME_COUNT) + app_start(); + } + +#ifdef ADABOOT + LED_PORT |= _BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 +#endif + + return UDR0; +} + + +void getNch(uint8_t count) +{ + uint8_t i; + for(i=0;i $@ + +%.srec: %.elf + $(OBJCOPY) -j .text -j .data -O srec $< $@ + +%.bin: %.elf + $(OBJCOPY) -j .text -j .data -O binary $< $@ + +clean: + rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex + \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt new file mode 100644 index 000000000..828600785 --- /dev/null +++ b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt @@ -0,0 +1,3 @@ +Note: This bootloader support ATmega644, ATmega644P and ATmega324P. +To build, set PROGRAM and MCU_TARGET in the Makefile according to your target device. + diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h new file mode 100644 index 000000000..f4298d868 --- /dev/null +++ b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h @@ -0,0 +1,269 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ + + Changelog + ----------- + 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P + 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 + + Improvements by Kristian Lauszus, kristianl@tkjelectronics.dk +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +const static uint8_t SS = 4; +const static uint8_t MOSI = 5; +const static uint8_t MISO = 6; +const static uint8_t SCK = 7; + +static const uint8_t SDA = 17; +static const uint8_t SCL = 16; + +#define LED_BUILTIN 0 + +static const uint8_t A0 = 31; +static const uint8_t A1 = 30; +static const uint8_t A2 = 29; +static const uint8_t A3 = 28; +static const uint8_t A4 = 27; +static const uint8_t A5 = 26; +static const uint8_t A6 = 25; +static const uint8_t A7 = 24; + +// ATMEL ATMEGA644/ATMEGA1284 / SANGUINO +// +// +---\/---+ +// (D 0) PB0 1| |40 PA0 (AI 0 / D31) +// (D 1) PB1 2| |39 PA1 (AI 1 / D30) +// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) +// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) +// SS PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) +// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) +// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) +// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) +// RST 9| |32 AREF +// VCC 10| |31 GND +// GND 11| |30 AVCC +// XTAL2 12| |29 PC7 (D 23) +// XTAL1 13| |28 PC6 (D 22) +// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI +// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO +// INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS +// INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK +// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA +// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL +// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM +// +--------+ +// +#define NUM_DIGITAL_PINS 24 +#define NUM_ANALOG_INPUTS 8 + +#define analogInputToDigitalPin(p) ((p < 8) ? 31 - (p): -1) +#define analogPinToChannel(p) ((p < 8) ? (p) : 31 - (p)) + +#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) + +#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ + ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ + ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ + ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ + 0 ) ) ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ + ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ + ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ + ((uint8_t *)0) ) ) ) ) + + +#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ + ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ + ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ + ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ + 0 ) ) ) ) + +#define digitalPinToInterrupt(p) ((p) == 10 ? 0 : ((p) == 11 ? 1 : ((p) == 2 ? 2 : NOT_AN_INTERRUPT))) + +#ifdef ARDUINO_MAIN +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, +}; +const uint16_t PROGMEM port_to_input_PGM[] = +{ + NOT_A_PORT, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, +}; +const uint8_t PROGMEM digital_pin_to_port_PGM[] = +{ + PB, /* 0 */ + PB, + PB, + PB, + PB, + PB, + PB, + PB, + PD, /* 8 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PC, /* 16 */ + PC, + PC, + PC, + PC, + PC, + PC, + PC, + PA, /* 24 */ + PA, + PA, + PA, + PA, + PA, + PA, + PA /* 31 */ +}; +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = +{ + _BV(0), /* 0, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 16, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(7), /* 24, port A */ + _BV(6), + _BV(5), + _BV(4), + _BV(3), + _BV(2), + _BV(1), + _BV(0) +}; +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = +{ + NOT_ON_TIMER, /* 0 - PB0 */ + NOT_ON_TIMER, /* 1 - PB1 */ + NOT_ON_TIMER, /* 2 - PB2 */ + TIMER0A, /* 3 - PB3 */ + TIMER0B, /* 4 - PB4 */ + NOT_ON_TIMER, /* 5 - PB5 */ + NOT_ON_TIMER, /* 6 - PB6 */ + NOT_ON_TIMER, /* 7 - PB7 */ + NOT_ON_TIMER, /* 8 - PD0 */ + NOT_ON_TIMER, /* 9 - PD1 */ + NOT_ON_TIMER, /* 10 - PD2 */ + NOT_ON_TIMER, /* 11 - PD3 */ + TIMER1B, /* 12 - PD4 */ + TIMER1A, /* 13 - PD5 */ + TIMER2B, /* 14 - PD6 */ + TIMER2A, /* 15 - PD7 */ + NOT_ON_TIMER, /* 16 - PC0 */ + NOT_ON_TIMER, /* 17 - PC1 */ + NOT_ON_TIMER, /* 18 - PC2 */ + NOT_ON_TIMER, /* 19 - PC3 */ + NOT_ON_TIMER, /* 20 - PC4 */ + NOT_ON_TIMER, /* 21 - PC5 */ + NOT_ON_TIMER, /* 22 - PC6 */ + NOT_ON_TIMER, /* 23 - PC7 */ + NOT_ON_TIMER, /* 24 - PA0 */ + NOT_ON_TIMER, /* 25 - PA1 */ + NOT_ON_TIMER, /* 26 - PA2 */ + NOT_ON_TIMER, /* 27 - PA3 */ + NOT_ON_TIMER, /* 28 - PA4 */ + NOT_ON_TIMER, /* 29 - PA5 */ + NOT_ON_TIMER, /* 30 - PA6 */ + NOT_ON_TIMER /* 31 - PA7 */ +}; +#endif + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. + +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_HARDWARE Serial +#define SERIAL_PORT_HARDWARE1 Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 + +#endif From b726511a3bc2db618e3f346431eb7f703fb501fd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 17 Dec 2014 20:22:33 -0800 Subject: [PATCH 16/33] A few constants where they belong --- Marlin/Marlin_main.cpp | 4 ++-- Marlin/SdFatConfig.h | 4 +++- Marlin/cardreader.cpp | 10 +++++----- Marlin/cardreader.h | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 616b7a190..f65df7736 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -429,7 +429,7 @@ void enquecommand(const char *cmd) //this is dangerous if a mixing of serial and this happens strcpy(&(cmdbuffer[bufindw][0]),cmd); SERIAL_ECHO_START; - SERIAL_ECHOPGM("enqueing \""); + SERIAL_ECHOPGM(MSG_Enqueing); SERIAL_ECHO(cmdbuffer[bufindw]); SERIAL_ECHOLNPGM("\""); bufindw= (bufindw + 1)%BUFSIZE; @@ -444,7 +444,7 @@ void enquecommand_P(const char *cmd) //this is dangerous if a mixing of serial and this happens strcpy_P(&(cmdbuffer[bufindw][0]),cmd); SERIAL_ECHO_START; - SERIAL_ECHOPGM("enqueing \""); + SERIAL_ECHOPGM(MSG_Enqueing); SERIAL_ECHO(cmdbuffer[bufindw]); SERIAL_ECHOLNPGM("\""); bufindw= (bufindw + 1)%BUFSIZE; diff --git a/Marlin/SdFatConfig.h b/Marlin/SdFatConfig.h index 710b1f792..742f5aa35 100644 --- a/Marlin/SdFatConfig.h +++ b/Marlin/SdFatConfig.h @@ -113,8 +113,10 @@ uint8_t const SOFT_SPI_SCK_PIN = 13; */ /** Number of VFAT entries used. Every entry has 13 UTF-16 characters */ #define MAX_VFAT_ENTRIES (2) +/** Number of UTF-16 characters per entry */ +#define FILENAME_LENGTH 13 /** Total size of the buffer used to store the long filenames */ -#define LONG_FILENAME_LENGTH (13*MAX_VFAT_ENTRIES+1) +#define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1) #endif // SdFatConfig_h diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index d2fb418fb..6bf43b918 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -60,8 +60,8 @@ void CardReader::lsDive(const char *prepend,SdFile parent) if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint { - char path[13*2]; - char lfilename[13]; + char path[FILENAME_LENGTH*2]; + char lfilename[FILENAME_LENGTH]; createFilename(lfilename,p); path[0]=0; @@ -235,7 +235,7 @@ void CardReader::getAbsFilename(char *t) while(*t!=0 && cnt< MAXPATHNAMELENGTH) {t++;cnt++;} //crawl counter forward. } - if(cnt0 && dirname_end>dirname_start) { - char subdirname[13]; + char subdirname[FILENAME_LENGTH]; strncpy(subdirname, dirname_start, dirname_end-dirname_start); subdirname[dirname_end-dirname_start]=0; SERIAL_ECHOLN(subdirname); @@ -401,7 +401,7 @@ void CardReader::removeFile(char* name) //SERIAL_ECHO("end :");SERIAL_ECHOLN((int)(dirname_end-name)); if(dirname_end>0 && dirname_end>dirname_start) { - char subdirname[13]; + char subdirname[FILENAME_LENGTH]; strncpy(subdirname, dirname_start, dirname_end-dirname_start); subdirname[dirname_end-dirname_start]=0; SERIAL_ECHOLN(subdirname); diff --git a/Marlin/cardreader.h b/Marlin/cardreader.h index 78f7148b1..fa38508e3 100644 --- a/Marlin/cardreader.h +++ b/Marlin/cardreader.h @@ -52,7 +52,7 @@ public: bool logging; bool sdprinting ; bool cardOK ; - char filename[13]; + char filename[FILENAME_LENGTH]; char longFilename[LONG_FILENAME_LENGTH]; bool filenameIsDir; int lastnr; //last number of the autostart; @@ -63,7 +63,7 @@ private: SdVolume volume; SdFile file; #define SD_PROCEDURE_DEPTH 1 - #define MAXPATHNAMELENGTH (13*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1) + #define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1) uint8_t file_subcall_ctr; uint32_t filespos[SD_PROCEDURE_DEPTH]; char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; From f074706d2e34e4b91e600b0809be5392db49c828 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 17 Dec 2014 20:29:34 -0800 Subject: [PATCH 17/33] And one more... --- Marlin/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 550b9cb0b..d0b0889e8 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1332,7 +1332,7 @@ void lcd_update() lcd_implementation_clear(); if (lcdDrawUpdate) lcdDrawUpdate--; - lcd_next_update_millis = millis() + 100; + lcd_next_update_millis = millis() + LCD_UPDATE_INTERVAL; } } From 60598b4cdda4132ad642ba42e60777e04c494f5a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 17 Dec 2014 20:22:33 -0800 Subject: [PATCH 18/33] A few constants where they belong --- Marlin/Marlin_main.cpp | 4 ++-- Marlin/SdFatConfig.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index e8d800eb4..bea1db727 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -429,7 +429,7 @@ void enquecommand(const char *cmd) //this is dangerous if a mixing of serial and this happens strcpy(&(cmdbuffer[bufindw][0]),cmd); SERIAL_ECHO_START; - SERIAL_ECHOPGM("enqueing \""); + SERIAL_ECHOPGM(MSG_Enqueing); SERIAL_ECHO(cmdbuffer[bufindw]); SERIAL_ECHOLNPGM("\""); bufindw= (bufindw + 1)%BUFSIZE; @@ -444,7 +444,7 @@ void enquecommand_P(const char *cmd) //this is dangerous if a mixing of serial and this happens strcpy_P(&(cmdbuffer[bufindw][0]),cmd); SERIAL_ECHO_START; - SERIAL_ECHOPGM("enqueing \""); + SERIAL_ECHOPGM(MSG_Enqueing); SERIAL_ECHO(cmdbuffer[bufindw]); SERIAL_ECHOLNPGM("\""); bufindw= (bufindw + 1)%BUFSIZE; diff --git a/Marlin/SdFatConfig.h b/Marlin/SdFatConfig.h index 39ef38130..7492c5415 100644 --- a/Marlin/SdFatConfig.h +++ b/Marlin/SdFatConfig.h @@ -115,6 +115,8 @@ uint8_t const SOFT_SPI_SCK_PIN = 13; #define FILENAME_LENGTH 13 /** Number of VFAT entries used. Every entry has 13 UTF-16 characters */ #define MAX_VFAT_ENTRIES (2) +/** Number of UTF-16 characters per entry */ +#define FILENAME_LENGTH 13 /** Total size of the buffer used to store the long filenames */ #define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1) #endif // SdFatConfig_h From e4b98011cf93070d21fff93f9dff42a9289ffc7b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 17 Dec 2014 20:29:34 -0800 Subject: [PATCH 19/33] And one more... --- Marlin/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 195d52bc4..3fdbb6cbf 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1350,7 +1350,7 @@ void lcd_update() lcd_implementation_clear(); if (lcdDrawUpdate) lcdDrawUpdate--; - lcd_next_update_millis = millis() + 100; + lcd_next_update_millis = millis() + LCD_UPDATE_INTERVAL; } } From f21cce0b28db5215b7682eb42e05f3839578ed73 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 17 Dec 2014 23:07:36 -0800 Subject: [PATCH 20/33] Rebase to Marlin_v1 --- Marlin/cardreader.cpp | 27 ++++++++++++++------------- Marlin/cardreader.h | 4 ++-- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 913a9d111..8694f6e5c 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -49,7 +49,7 @@ char *createFilename(char *buffer, const dir_t &p) //buffer>12characters } -void CardReader::lsDive(const char *prepend,SdFile parent) +void CardReader::lsDive(const char *prepend, SdFile parent, const char * const match/*=NULL*/) { dir_t p; uint8_t cnt=0; @@ -89,16 +89,12 @@ void CardReader::lsDive(const char *prepend,SdFile parent) } else { - if (p.name[0] == DIR_NAME_FREE) break; - if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.'|| p.name[0] == '_') continue; + char pn0 = p.name[0]; + if (pn0 == DIR_NAME_FREE) break; + if (pn0 == DIR_NAME_DELETED || pn0 == '.'|| pn0 == '_') continue; if (longFilename[0] != '\0' && (longFilename[0] == '.' || longFilename[0] == '_')) continue; - if ( p.name[0] == '.') - { - if ( p.name[1] != '.') - continue; - } - + if (!DIR_IS_FILE_OR_SUBDIR(&p)) continue; filenameIsDir=DIR_IS_SUBDIR(&p); @@ -120,7 +116,10 @@ void CardReader::lsDive(const char *prepend,SdFile parent) } else if(lsAction==LS_GetFilename) { - if (cnt == nrFiles) return; + if (match != NULL) { + if (strcasecmp(match, filename) == 0) return; + } + else if (cnt == nrFiles) return; cnt++; } } @@ -355,7 +354,8 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/) sdpos = 0; SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED); - lcd_setstatus(fname); + getfilename(0, fname); + lcd_setstatus(longFilename[0] ? longFilename : fname); } else { @@ -560,7 +560,7 @@ void CardReader::closefile(bool store_location) } -void CardReader::getfilename(const uint16_t nr) +void CardReader::getfilename(uint16_t nr, const char * const match/*=NULL*/) { #if defined(SDCARD_SORT_ALPHA) && SORT_USES_RAM && SORT_USES_MORE_RAM if (nr < sort_count) { @@ -574,7 +574,8 @@ void CardReader::getfilename(const uint16_t nr) lsAction=LS_GetFilename; nrFiles=nr; curDir->rewind(); - lsDive("",*curDir); + lsDive("",*curDir,match); + } uint16_t CardReader::getnrfilenames() diff --git a/Marlin/cardreader.h b/Marlin/cardreader.h index f3af6da5b..0ebcd50c8 100644 --- a/Marlin/cardreader.h +++ b/Marlin/cardreader.h @@ -35,7 +35,7 @@ public: void getStatus(); void printingHasFinished(); - void getfilename(const uint16_t nr); + void getfilename(uint16_t nr, const char* const match=NULL); uint16_t getnrfilenames(); void getAbsFilename(char *t); @@ -99,7 +99,7 @@ private: LsAction lsAction; //stored for recursion. uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory. char* diveDirName; - void lsDive(const char *prepend,SdFile parent); + void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); }; extern CardReader card; #define IS_SD_PRINTING (card.sdprinting) From 49791949afb5cc6eb7272650675284039b66a491 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 03:47:12 -0800 Subject: [PATCH 21/33] Wrap call to flush_presort --- Marlin/cardreader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 913a9d111..d47bdc6da 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -211,7 +211,9 @@ void CardReader::startFileprint() if(cardOK) { sdprinting = true; - flush_presort(); + #ifdef SDCARD_SORT_ALPHA + flush_presort(); + #endif } } From e69313fc2bed33f6b436af2902cbb155a6928050 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 07:03:40 -0800 Subject: [PATCH 22/33] Reduce dogm lcd code --- Marlin/dogm_lcd_implementation.h | 315 +++++++++---------------------- Marlin/ultralcd.h | 5 +- 2 files changed, 87 insertions(+), 233 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 0bfc8c144..ba7b9865b 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -39,7 +39,6 @@ #include "ultralcd.h" #include "ultralcd_st7920_u8glib_rrd.h" - /* Russian language not supported yet, needs custom font #if LANGUAGE_CHOICE == 6 @@ -57,20 +56,18 @@ #define DOG_CHAR_WIDTH_LARGE 9 #define DOG_CHAR_HEIGHT_LARGE 18 - #define START_ROW 0 - /* Custom characters defined in font font_6x10_marlin.c */ -#define LCD_STR_BEDTEMP "\xFE" #define LCD_STR_DEGREE "\xB0" -#define LCD_STR_THERMOMETER "\xFF" -#define LCD_STR_UPLEVEL "\xFB" #define LCD_STR_REFRESH "\xF8" #define LCD_STR_FOLDER "\xF9" -#define LCD_STR_FEEDRATE "\xFD" -#define LCD_STR_CLOCK "\xFC" #define LCD_STR_ARROW_RIGHT "\xFA" +#define LCD_STR_UPLEVEL "\xFB" +#define LCD_STR_CLOCK "\xFC" +#define LCD_STR_FEEDRATE "\xFD" +#define LCD_STR_BEDTEMP "\xFE" +#define LCD_STR_THERMOMETER "\xFF" #define FONT_STATUSMENU u8g_font_6x9 @@ -167,6 +164,25 @@ static void lcd_printPGM(const char* str) } } +static void _draw_heater_status(int x, int heater) { + bool isBed = heater < 0; + int y = 17 + (isBed ? 1 : 0); + u8g.setFont(FONT_STATUSMENU); + u8g.setPrintPos(x,6); + u8g.print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5))); + lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); + u8g.setPrintPos(x,27); + u8g.print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5)); + lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); + if (!isHeatingHotend(0)) { + u8g.drawBox(x+7,y,2,2); + } + else { + u8g.setColorIndex(0); // white on black + u8g.drawBox(x+7,y,2,2); + u8g.setColorIndex(1); // black on white + } +} static void lcd_implementation_status_screen() { @@ -176,8 +192,7 @@ static void lcd_implementation_status_screen() u8g.setColorIndex(1); // black on white // Symbols menu graphics, animated fan - if ((blink % 2) && fanSpeed ) u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT,status_screen0_bmp); - else u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT,status_screen1_bmp); + u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp); #ifdef SDSUPPORT //SD Card Symbol @@ -213,73 +228,17 @@ static void lcd_implementation_status_screen() } #endif - // Extruder 1 - u8g.setFont(FONT_STATUSMENU); - u8g.setPrintPos(6,6); - u8g.print(itostr3(int(degTargetHotend(0) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - u8g.setPrintPos(6,27); - u8g.print(itostr3(int(degHotend(0) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - if (!isHeatingHotend(0)) u8g.drawBox(13,17,2,2); - else - { - u8g.setColorIndex(0); // white on black - u8g.drawBox(13,17,2,2); - u8g.setColorIndex(1); // black on white - } - - // Extruder 2 - u8g.setFont(FONT_STATUSMENU); - #if EXTRUDERS > 1 - u8g.setPrintPos(31,6); - u8g.print(itostr3(int(degTargetHotend(1) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - u8g.setPrintPos(31,27); - u8g.print(itostr3(int(degHotend(1) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - if (!isHeatingHotend(1)) u8g.drawBox(38,17,2,2); - else - { - u8g.setColorIndex(0); // white on black - u8g.drawBox(38,17,2,2); - u8g.setColorIndex(1); // black on white - } - #endif - - // Extruder 3 - u8g.setFont(FONT_STATUSMENU); - # if EXTRUDERS > 2 - u8g.setPrintPos(55,6); - u8g.print(itostr3(int(degTargetHotend(2) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - u8g.setPrintPos(55,27); - u8g.print(itostr3(int(degHotend(2) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - if (!isHeatingHotend(2)) u8g.drawBox(62,17,2,2); - else - { - u8g.setColorIndex(0); // white on black - u8g.drawBox(62,17,2,2); - u8g.setColorIndex(1); // black on white - } - #endif - - // Heatbed - u8g.setFont(FONT_STATUSMENU); - u8g.setPrintPos(81,6); - u8g.print(itostr3(int(degTargetBed() + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - u8g.setPrintPos(81,27); - u8g.print(itostr3(int(degBed() + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - if (!isHeatingBed()) u8g.drawBox(88,18,2,2); - else - { - u8g.setColorIndex(0); // white on black - u8g.drawBox(88,18,2,2); - u8g.setColorIndex(1); // black on white - } + // Extruders + _draw_heater_status(6, 0); + #if EXTRUDERS > 1 + _draw_heater_status(31, 1); + #if EXTRUDERS > 2 + _draw_heater_status(55, 2); + #endif + #endif + + // Heatbed + _draw_heater_status(81, -1); // Fan u8g.setFont(FONT_STATUSMENU); @@ -360,7 +319,7 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c } else u8g.setColorIndex(1); // unmarked text is black on white u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - if (pre_char != '>') u8g.print(pre_char); else u8g.print(' '); // Row selector is obsolete + u8g.print(pre_char == '>' ? ' ' : pre_char); // Row selector is obsolete while( (c = pgm_read_byte(pstr)) != '\0' ) @@ -378,56 +337,28 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c u8g.setColorIndex(1); // restore settings to black on white } -static void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data) -{ - static unsigned int fkt_cnt = 0; - char c; - uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data); +static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data, bool pgm) { + char c; + uint8_t n = LCD_WIDTH - 1 - 2 - (pgm ? strlen_P(data) : strlen(data)); - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(pre_char); - - while( (c = pgm_read_byte(pstr)) != '\0' ) - { - u8g.print(c); - - pstr++; - n--; - } - - u8g.print(':'); + u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); + u8g.print(pre_char); - while(n--){ - u8g.print(' '); - } + while( (c = pgm_read_byte(pstr)) != '\0' ) { + u8g.print(c); + pstr++; + n--; + } - u8g.print(data); + u8g.print(':'); + + while(n--) u8g.print(' '); + + if (pgm) { lcd_printPGM(data); } else { u8g.print(data); } } -static void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row, const char* pstr, char pre_char, const char* data) -{ - char c; - uint8_t n= LCD_WIDTH - 1 - 2 - strlen_P(data); - - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(pre_char); - - while( (c = pgm_read_byte(pstr)) != '\0' ) - { - u8g.print(c); - - pstr++; - n--; - } - - u8g.print(':'); - - while(n--){ - u8g.print(' '); - } - - lcd_printPGM(data); -} +#define lcd_implementation_drawmenu_setting_edit_generic(row, pstr, pre_char, data) _drawmenu_setting_edit_generic(row, pstr, pre_char, data, false) +#define lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, pre_char, data) _drawmenu_setting_edit_generic(row, pstr, pre_char, data, true) #define lcd_implementation_drawmenu_setting_edit_int3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data))) #define lcd_implementation_drawmenu_setting_edit_int3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data))) @@ -474,118 +405,40 @@ void lcd_implementation_drawedit(const char* pstr, char* value) u8g.print(value); } -static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename) -{ - char c; - uint8_t n = LCD_WIDTH - 1; +static void _drawmenu_sd(uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir, bool isSelected) { + char c; + uint8_t n = LCD_WIDTH - 1; - if (longFilename[0] != '\0') - { - filename = longFilename; - longFilename[LCD_WIDTH-1] = '\0'; - } + if (longFilename[0] != '\0') { + filename = longFilename; + longFilename[n] = '\0'; + } - u8g.setColorIndex(1); // black on white - u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT); - u8g.setColorIndex(0); // following text must be white on black - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(' '); // Indent by 1 char - - while((c = *filename) != '\0') - { - u8g.print(c); - filename++; - n--; - } - while(n--){ - u8g.print(' '); - } - u8g.setColorIndex(1); // black on white + if (isSelected) { + u8g.setColorIndex(1); // black on white + u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT); + u8g.setColorIndex(0); // following text must be white on black + } + + u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); + u8g.print(' '); // Indent by 1 char + + if (isDir) u8g.print(LCD_STR_FOLDER[0]); + + while((c = *filename) != '\0') { + u8g.print(c); + filename++; + n--; + } + while(n--) u8g.print(' '); + + if (isSelected) u8g.setColorIndex(1); // black on white } -static void lcd_implementation_drawmenu_sdfile(uint8_t row, const char* pstr, const char* filename, char* longFilename) -{ - char c; - uint8_t n = LCD_WIDTH - 1; - - if (longFilename[0] != '\0') - { - filename = longFilename; - longFilename[LCD_WIDTH-1] = '\0'; - } - - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(' '); - -while((c = *filename) != '\0') - { - u8g.print(c); - - filename++; - n--; - } - while(n--){ - u8g.print(' '); - } - -} - -static void lcd_implementation_drawmenu_sddirectory_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename) -{ - char c; - uint8_t n = LCD_WIDTH - 2; - - if (longFilename[0] != '\0') - { - filename = longFilename; - longFilename[LCD_WIDTH-2] = '\0'; - } - u8g.setColorIndex(1); // black on white - u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT); - u8g.setColorIndex(0); // following text must be white on black - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(' '); // Indent by 1 char - u8g.print(LCD_STR_FOLDER[0]); - - while((c = *filename) != '\0') - { - u8g.print(c); - - filename++; - n--; - } - while(n--){ - u8g.print(' '); - } - u8g.setColorIndex(1); // black on white -} - -static void lcd_implementation_drawmenu_sddirectory(uint8_t row, const char* pstr, const char* filename, char* longFilename) -{ - char c; - uint8_t n = LCD_WIDTH - 2; - - if (longFilename[0] != '\0') - { - filename = longFilename; - longFilename[LCD_WIDTH-2] = '\0'; - } - - u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT); - u8g.print(' '); - u8g.print(LCD_STR_FOLDER[0]); - - while((c = *filename) != '\0') - { - u8g.print(c); - - filename++; - n--; - } - while(n--){ - u8g.print(' '); - } -} +#define lcd_implementation_drawmenu_sdfile_selected(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, false, true) +#define lcd_implementation_drawmenu_sdfile(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, false, false) +#define lcd_implementation_drawmenu_sddirectory_selected(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, true, true) +#define lcd_implementation_drawmenu_sddirectory(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, true, false) #define lcd_implementation_drawmenu_back_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]) #define lcd_implementation_drawmenu_back(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', LCD_STR_UPLEVEL[0]) diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 652693ce8..339955e59 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -105,7 +105,8 @@ #define LCD_MESSAGEPGM(x) #define LCD_ALERTMESSAGEPGM(x) -#endif + +#endif //ULTRA_LCD char *itostr2(const uint8_t &x); char *itostr31(const int &xx); @@ -122,4 +123,4 @@ char *ftostr5(const float &x); char *ftostr51(const float &x); char *ftostr52(const float &x); -#endif //ULTRALCD +#endif //ULTRALCD_H From 63e1665fa90006af1d2b1dfb54b72e4cb373e1d3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 07:30:05 -0800 Subject: [PATCH 23/33] Reduce ultralcd.cpp redundancies --- Marlin/ultralcd.cpp | 316 ++++++++++---------------------------------- 1 file changed, 73 insertions(+), 243 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 195d52bc4..93dc95d37 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -184,6 +184,14 @@ menuFunc_t callbackFunc; // place-holders for Ki and Kd edits float raw_Ki, raw_Kd; +static void lcd_goto_menu(menuFunc_t menu, const uint32_t encoder=0, const bool feedback=true) { + if (currentMenu != menu) { + currentMenu = menu; + encoderPosition = encoder; + if (feedback) lcd_quick_feedback(); + } +} + /* Main status screen. It's up to the implementation specific part to show what is needed. As this is very display dependent */ static void lcd_status_screen() { @@ -218,9 +226,7 @@ static void lcd_status_screen() if (current_click) { - currentMenu = lcd_main_menu; - encoderPosition = 0; - lcd_quick_feedback(); + lcd_goto_menu(lcd_main_menu); lcd_implementation_init(); // to maybe revive the LCD if static electricity killed it. #ifdef FILAMENT_LCD_DISPLAY message_millis=millis(); //get status message to show up for a while @@ -263,10 +269,8 @@ static void lcd_status_screen() #ifdef ULTIPANEL static void lcd_return_to_status() { - encoderPosition = 0; - currentMenu = lcd_status_screen; + lcd_goto_menu(lcd_status_screen, 0, false); } - static void lcd_sdcard_pause() { card.pauseSDPrint(); @@ -357,65 +361,20 @@ void lcd_set_home_offsets() #ifdef BABYSTEPPING -static void lcd_babystep_x() -{ - if (encoderPosition != 0) - { - babystepsTodo[X_AXIS]+=(int)encoderPosition; - encoderPosition=0; - lcdDrawUpdate = 1; - } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR(MSG_BABYSTEPPING_X),""); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_tune_menu; - encoderPosition = 0; - } -} -static void lcd_babystep_y() -{ - if (encoderPosition != 0) - { - babystepsTodo[Y_AXIS]+=(int)encoderPosition; - encoderPosition=0; - lcdDrawUpdate = 1; + static void _lcd_babystep(int axis, const char *msg) { + if (encoderPosition != 0) { + babystepsTodo[axis] += (int)encoderPosition; + encoderPosition = 0; + lcdDrawUpdate = 1; } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR(MSG_BABYSTEPPING_Y),""); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_tune_menu; - encoderPosition = 0; - } -} + if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(msg), ""); + if (LCD_CLICKED) lcd_goto_menu(lcd_tune_menu); + } + static void lcd_babystep_x() { _lcd_babystep(X_AXIS, MSG_BABYSTEPPING_X); } + static void lcd_babystep_y() { _lcd_babystep(Y_AXIS, MSG_BABYSTEPPING_Y); } + static void lcd_babystep_z() { _lcd_babystep(Z_AXIS, MSG_BABYSTEPPING_Z); } -static void lcd_babystep_z() -{ - if (encoderPosition != 0) - { - babystepsTodo[Z_AXIS]+=BABYSTEP_Z_MULTIPLICATOR*(int)encoderPosition; - encoderPosition=0; - lcdDrawUpdate = 1; - } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR(MSG_BABYSTEPPING_Z),""); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_tune_menu; - encoderPosition = 0; - } -} #endif //BABYSTEPPING static void lcd_tune_menu() @@ -644,96 +603,28 @@ static void lcd_prepare_menu() float move_menu_scale; static void lcd_move_menu_axis(); -static void lcd_move_x() -{ - if (encoderPosition != 0) - { - refresh_cmd_timeout(); - current_position[X_AXIS] += float((int)encoderPosition) * move_menu_scale; - if (min_software_endstops && current_position[X_AXIS] < X_MIN_POS) - current_position[X_AXIS] = X_MIN_POS; - if (max_software_endstops && current_position[X_AXIS] > X_MAX_POS) - current_position[X_AXIS] = X_MAX_POS; - encoderPosition = 0; - #ifdef DELTA - calculate_delta(current_position); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[X_AXIS]/60, active_extruder); - #else - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[X_AXIS]/60, active_extruder); - #endif - lcdDrawUpdate = 1; - } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR("X"), ftostr31(current_position[X_AXIS])); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_move_menu_axis; - encoderPosition = 0; - } -} -static void lcd_move_y() -{ - if (encoderPosition != 0) - { - refresh_cmd_timeout(); - current_position[Y_AXIS] += float((int)encoderPosition) * move_menu_scale; - if (min_software_endstops && current_position[Y_AXIS] < Y_MIN_POS) - current_position[Y_AXIS] = Y_MIN_POS; - if (max_software_endstops && current_position[Y_AXIS] > Y_MAX_POS) - current_position[Y_AXIS] = Y_MAX_POS; - encoderPosition = 0; - #ifdef DELTA - calculate_delta(current_position); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[Y_AXIS]/60, active_extruder); - #else - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Y_AXIS]/60, active_extruder); - #endif - lcdDrawUpdate = 1; - } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR("Y"), ftostr31(current_position[Y_AXIS])); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_move_menu_axis; - encoderPosition = 0; - } -} -static void lcd_move_z() -{ - if (encoderPosition != 0) - { - refresh_cmd_timeout(); - current_position[Z_AXIS] += float((int)encoderPosition) * move_menu_scale; - if (min_software_endstops && current_position[Z_AXIS] < Z_MIN_POS) - current_position[Z_AXIS] = Z_MIN_POS; - if (max_software_endstops && current_position[Z_AXIS] > Z_MAX_POS) - current_position[Z_AXIS] = Z_MAX_POS; - encoderPosition = 0; - #ifdef DELTA - calculate_delta(current_position); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder); - #else - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder); - #endif - lcdDrawUpdate = 1; - } - if (lcdDrawUpdate) - { - lcd_implementation_drawedit(PSTR("Z"), ftostr31(current_position[Z_AXIS])); - } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_move_menu_axis; - encoderPosition = 0; - } +static void _lcd_move(const char *name, int axis, int min, int max) { + if (encoderPosition != 0) { + refresh_cmd_timeout(); + current_position[axis] += float((int)encoderPosition) * move_menu_scale; + if (min_software_endstops && current_position[axis] < min) current_position[axis] = min; + if (max_software_endstops && current_position[axis] > max) current_position[axis] = max; + encoderPosition = 0; + #ifdef DELTA + calculate_delta(current_position); + plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); + #else + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); + #endif + lcdDrawUpdate = 1; + } + if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); + if (LCD_CLICKED) lcd_goto_menu(lcd_move_menu_axis); } +static void lcd_move_x() { _lcd_move(PSTR("X"), X_AXIS, X_MIN_POS, X_MAX_POS); } +static void lcd_move_y() { _lcd_move(PSTR("Y"), Y_AXIS, Y_MIN_POS, Y_MAX_POS); } +static void lcd_move_z() { _lcd_move(PSTR("Z"), Z_AXIS, Z_MIN_POS, Z_MAX_POS); } + static void lcd_move_e() { if (encoderPosition != 0) @@ -752,12 +643,7 @@ static void lcd_move_e() { lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS])); } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_move_menu_axis; - encoderPosition = 0; - } + if (LCD_CLICKED) lcd_goto_menu(lcd_move_menu_axis); } static void lcd_move_menu_axis() @@ -951,12 +837,7 @@ static void lcd_set_contrast() { lcd_implementation_drawedit(PSTR(MSG_CONTRAST), itostr2(lcd_contrast)); } - if (LCD_CLICKED) - { - lcd_quick_feedback(); - currentMenu = lcd_control_menu; - encoderPosition = 0; - } + if (LCD_CLICKED) lcd_goto_menu(lcd_control_menu); } #endif @@ -979,7 +860,8 @@ static void lcd_control_retract_menu() MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &retract_recover_feedrate, 1, 999); END_MENU(); } -#endif + +#endif //FWRETRACT #if SDCARDDETECT == -1 static void lcd_sd_refresh() @@ -1052,27 +934,12 @@ void lcd_sdcard_menu() if (LCD_CLICKED) \ { \ *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \ - lcd_quick_feedback(); \ - currentMenu = prevMenu; \ - encoderPosition = prevEncoderPosition; \ + lcd_goto_menu(prevMenu, prevEncoderPosition); \ } \ } \ - void menu_edit_callback_ ## _name () \ - { \ - if ((int32_t)encoderPosition < 0) \ - encoderPosition = 0; \ - if ((int32_t)encoderPosition > maxEditValue) \ - encoderPosition = maxEditValue; \ - if (lcdDrawUpdate) \ - lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \ - if (LCD_CLICKED) \ - { \ - *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \ - lcd_quick_feedback(); \ - currentMenu = prevMenu; \ - encoderPosition = prevEncoderPosition; \ - (*callbackFunc)();\ - } \ + void menu_edit_callback_ ## _name () { \ + menu_edit_ ## _name (); \ + if (LCD_CLICKED) (*callbackFunc)(); \ } \ static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) \ { \ @@ -1157,24 +1024,10 @@ static void lcd_quick_feedback() } /** Menu action functions **/ -static void menu_action_back(menuFunc_t data) -{ - currentMenu = data; - encoderPosition = 0; -} -static void menu_action_submenu(menuFunc_t data) -{ - currentMenu = data; - encoderPosition = 0; -} -static void menu_action_gcode(const char* pgcode) -{ - enquecommand_P(pgcode); -} -static void menu_action_function(menuFunc_t data) -{ - (*data)(); -} +static void menu_action_back(menuFunc_t data) { lcd_goto_menu(data); } +static void menu_action_submenu(menuFunc_t data) { lcd_goto_menu(data); } +static void menu_action_gcode(const char* pgcode) { enquecommand_P(pgcode); } +static void menu_action_function(menuFunc_t data) { (*data)(); } static void menu_action_sdfile(const char* filename, char* longFilename) { char cmd[30]; @@ -1459,10 +1312,8 @@ void lcd_buttons_update() //manage encoder rotation uint8_t enc=0; - if(buttons&EN_A) - enc|=(1<<0); - if(buttons&EN_B) - enc|=(1<<1); + if (buttons & EN_A) enc |= B01; + if (buttons & EN_B) enc |= B10; if(enc != lastEncoderBits) { switch(enc) @@ -1611,6 +1462,7 @@ char *itostr31(const int &xx) return conv; } +// Convert int to rj string with 123 or -12 format char *itostr3(const int &x) { int xx = x; @@ -1653,47 +1505,25 @@ char *itostr3left(const int &xx) return conv; } -char *itostr4(const int &xx) -{ - if (xx >= 1000) - conv[0]=(xx/1000)%10+'0'; - else - conv[0]=' '; - if (xx >= 100) - conv[1]=(xx/100)%10+'0'; - else - conv[1]=' '; - if (xx >= 10) - conv[2]=(xx/10)%10+'0'; - else - conv[2]=' '; - conv[3]=(xx)%10+'0'; - conv[4]=0; +// Convert int to rj string with 1234 format +char *itostr4(const int &xx) { + conv[0] = xx >= 1000 ? (xx / 1000) % 10 + '0' : ' '; + conv[1] = xx >= 100 ? (xx / 100) % 10 + '0' : ' '; + conv[2] = xx >= 10 ? (xx / 10) % 10 + '0' : ' '; + conv[3] = xx % 10 + '0'; + conv[4] = 0; return conv; } -// convert float to string with 12345 format -char *ftostr5(const float &x) -{ - long xx=abs(x); - if (xx >= 10000) - conv[0]=(xx/10000)%10+'0'; - else - conv[0]=' '; - if (xx >= 1000) - conv[1]=(xx/1000)%10+'0'; - else - conv[1]=' '; - if (xx >= 100) - conv[2]=(xx/100)%10+'0'; - else - conv[2]=' '; - if (xx >= 10) - conv[3]=(xx/10)%10+'0'; - else - conv[3]=' '; - conv[4]=(xx)%10+'0'; - conv[5]=0; +// convert float to rj string with 12345 format +char *ftostr5(const float &x) { + long xx = abs(x); + conv[0] = xx >= 10000 ? (xx / 10000) % 10 + '0' : ' '; + conv[1] = xx >= 1000 ? (xx / 1000) % 10 + '0' : ' '; + conv[2] = xx >= 100 ? (xx / 100) % 10 + '0' : ' '; + conv[3] = xx >= 10 ? (xx / 10) % 10 + '0' : ' '; + conv[4] = xx % 10 + '0'; + conv[5] = 0; return conv; } From 1857e611d3563acf71fd86d6342aba514344c2a0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 07:49:16 -0800 Subject: [PATCH 24/33] Other small tweaks --- Marlin/cardreader.cpp | 8 ++++---- Marlin/ultralcd.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 5aad01942..673e9d55a 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -91,10 +91,10 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m { char pn0 = p.name[0]; if (pn0 == DIR_NAME_FREE) break; - if (pn0 == DIR_NAME_DELETED || pn0 == '.'|| pn0 == '_') continue; - if (longFilename[0] != '\0' && - (longFilename[0] == '.' || longFilename[0] == '_')) continue; - + if (pn0 == DIR_NAME_DELETED || pn0 == '.' || pn0 == '_') continue; + char lf0 = longFilename[0]; + if (lf0 == '.' || lf0 == '_') continue; + if (!DIR_IS_FILE_OR_SUBDIR(&p)) continue; filenameIsDir=DIR_IS_SUBDIR(&p); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 93dc95d37..11c7e9e6a 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -261,7 +261,7 @@ static void lcd_status_screen() if (feedmultiply < 10) feedmultiply = 10; - if (feedmultiply > 999) + else if (feedmultiply > 999) feedmultiply = 999; #endif//ULTIPANEL } From 07c6b5ab717d41ea5bd827e6e5a5ed763cafc362 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 08:13:08 -0800 Subject: [PATCH 25/33] Using axis constants --- Marlin/ConfigurationStore.cpp | 46 +++++++------- Marlin/Configuration_adv.h | 4 +- Marlin/Marlin_main.cpp | 60 +++++++++---------- .../SCARA/Configuration_adv.h | 4 +- .../delta/Configuration_adv.h | 4 +- .../makibox/Configuration_adv.h | 4 +- Marlin/planner.cpp | 12 ++-- Marlin/planner.h | 15 ++--- 8 files changed, 71 insertions(+), 78 deletions(-) diff --git a/Marlin/ConfigurationStore.cpp b/Marlin/ConfigurationStore.cpp index dbbe33a23..54e69c013 100644 --- a/Marlin/ConfigurationStore.cpp +++ b/Marlin/ConfigurationStore.cpp @@ -116,38 +116,38 @@ void Config_PrintSettings() SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Steps per unit:"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M92 X",axis_steps_per_unit[0]); - SERIAL_ECHOPAIR(" Y",axis_steps_per_unit[1]); - SERIAL_ECHOPAIR(" Z",axis_steps_per_unit[2]); - SERIAL_ECHOPAIR(" E",axis_steps_per_unit[3]); + SERIAL_ECHOPAIR(" M92 X",axis_steps_per_unit[X_AXIS]); + SERIAL_ECHOPAIR(" Y",axis_steps_per_unit[Y_AXIS]); + SERIAL_ECHOPAIR(" Z",axis_steps_per_unit[Z_AXIS]); + SERIAL_ECHOPAIR(" E",axis_steps_per_unit[E_AXIS]); SERIAL_ECHOLN(""); SERIAL_ECHO_START; #ifdef SCARA SERIAL_ECHOLNPGM("Scaling factors:"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M365 X",axis_scaling[0]); - SERIAL_ECHOPAIR(" Y",axis_scaling[1]); - SERIAL_ECHOPAIR(" Z",axis_scaling[2]); + SERIAL_ECHOPAIR(" M365 X",axis_scaling[X_AXIS]); + SERIAL_ECHOPAIR(" Y",axis_scaling[Y_AXIS]); + SERIAL_ECHOPAIR(" Z",axis_scaling[Z_AXIS]); SERIAL_ECHOLN(""); SERIAL_ECHO_START; #endif SERIAL_ECHOLNPGM("Maximum feedrates (mm/s):"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M203 X",max_feedrate[0]); - SERIAL_ECHOPAIR(" Y",max_feedrate[1] ); - SERIAL_ECHOPAIR(" Z", max_feedrate[2] ); - SERIAL_ECHOPAIR(" E", max_feedrate[3]); + SERIAL_ECHOPAIR(" M203 X", max_feedrate[X_AXIS]); + SERIAL_ECHOPAIR(" Y", max_feedrate[Y_AXIS]); + SERIAL_ECHOPAIR(" Z", max_feedrate[Z_AXIS]); + SERIAL_ECHOPAIR(" E", max_feedrate[E_AXIS]); SERIAL_ECHOLN(""); SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Maximum Acceleration (mm/s2):"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M201 X" ,max_acceleration_units_per_sq_second[0] ); - SERIAL_ECHOPAIR(" Y" , max_acceleration_units_per_sq_second[1] ); - SERIAL_ECHOPAIR(" Z" ,max_acceleration_units_per_sq_second[2] ); - SERIAL_ECHOPAIR(" E" ,max_acceleration_units_per_sq_second[3]); + SERIAL_ECHOPAIR(" M201 X" ,max_acceleration_units_per_sq_second[X_AXIS] ); + SERIAL_ECHOPAIR(" Y" , max_acceleration_units_per_sq_second[Y_AXIS] ); + SERIAL_ECHOPAIR(" Z" ,max_acceleration_units_per_sq_second[Z_AXIS] ); + SERIAL_ECHOPAIR(" E" ,max_acceleration_units_per_sq_second[E_AXIS]); SERIAL_ECHOLN(""); SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Acceleration: S=acceleration, T=retract acceleration"); @@ -170,17 +170,17 @@ SERIAL_ECHOLNPGM("Scaling factors:"); SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Home offset (mm):"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M206 X",add_homing[0] ); - SERIAL_ECHOPAIR(" Y" ,add_homing[1] ); - SERIAL_ECHOPAIR(" Z" ,add_homing[2] ); + SERIAL_ECHOPAIR(" M206 X",add_homing[X_AXIS] ); + SERIAL_ECHOPAIR(" Y" ,add_homing[Y_AXIS] ); + SERIAL_ECHOPAIR(" Z" ,add_homing[Z_AXIS] ); SERIAL_ECHOLN(""); #ifdef DELTA SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Endstop adjustement (mm):"); SERIAL_ECHO_START; - SERIAL_ECHOPAIR(" M666 X",endstop_adj[0] ); - SERIAL_ECHOPAIR(" Y" ,endstop_adj[1] ); - SERIAL_ECHOPAIR(" Z" ,endstop_adj[2] ); + SERIAL_ECHOPAIR(" M666 X",endstop_adj[X_AXIS] ); + SERIAL_ECHOPAIR(" Y" ,endstop_adj[Y_AXIS] ); + SERIAL_ECHOPAIR(" Z" ,endstop_adj[Z_AXIS] ); SERIAL_ECHOLN(""); SERIAL_ECHO_START; SERIAL_ECHOLNPGM("Delta settings: L=delta_diagonal_rod, R=delta_radius, S=delta_segments_per_second"); @@ -303,9 +303,9 @@ void Config_ResetDefault() max_xy_jerk=DEFAULT_XYJERK; max_z_jerk=DEFAULT_ZJERK; max_e_jerk=DEFAULT_EJERK; - add_homing[0] = add_homing[1] = add_homing[2] = 0; + add_homing[X_AXIS] = add_homing[Y_AXIS] = add_homing[Z_AXIS] = 0; #ifdef DELTA - endstop_adj[0] = endstop_adj[1] = endstop_adj[2] = 0; + endstop_adj[X_AXIS] = endstop_adj[Y_AXIS] = endstop_adj[Z_AXIS] = 0; delta_radius= DELTA_RADIUS; delta_diagonal_rod= DELTA_DIAGONAL_ROD; delta_segments_per_second= DELTA_SEGMENTS_PER_SECOND; diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index d0f988c17..5eebec973 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -345,8 +345,8 @@ #define D_FILAMENT 2.85 #define STEPS_MM_E 836 - #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) - #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) #endif // ADVANCE diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index bea1db727..59b291cfe 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1537,7 +1537,7 @@ void process_commands() #ifdef SCARA current_position[X_AXIS]=code_value(); #else - current_position[X_AXIS]=code_value()+add_homing[0]; + current_position[X_AXIS]=code_value()+add_homing[X_AXIS]; #endif } } @@ -1547,7 +1547,7 @@ void process_commands() #ifdef SCARA current_position[Y_AXIS]=code_value(); #else - current_position[Y_AXIS]=code_value()+add_homing[1]; + current_position[Y_AXIS]=code_value()+add_homing[Y_AXIS]; #endif } } @@ -1612,7 +1612,7 @@ void process_commands() if(code_seen(axis_codes[Z_AXIS])) { if(code_value_long() != 0) { - current_position[Z_AXIS]=code_value()+add_homing[2]; + current_position[Z_AXIS]=code_value()+add_homing[Z_AXIS]; } } #ifdef ENABLE_AUTO_BED_LEVELING @@ -2745,9 +2745,9 @@ Sigma_Exit: SERIAL_PROTOCOLLN(""); SERIAL_PROTOCOLPGM("SCARA Cal - Theta:"); - SERIAL_PROTOCOL(delta[X_AXIS]+add_homing[0]); + SERIAL_PROTOCOL(delta[X_AXIS]+add_homing[X_AXIS]); SERIAL_PROTOCOLPGM(" Psi+Theta (90):"); - SERIAL_PROTOCOL(delta[Y_AXIS]-delta[X_AXIS]-90+add_homing[1]); + SERIAL_PROTOCOL(delta[Y_AXIS]-delta[X_AXIS]-90+add_homing[Y_AXIS]); SERIAL_PROTOCOLLN(""); SERIAL_PROTOCOLPGM("SCARA step Cal - Theta:"); @@ -2883,11 +2883,11 @@ Sigma_Exit: #ifdef SCARA if(code_seen('T')) // Theta { - add_homing[0] = code_value() ; + add_homing[X_AXIS] = code_value() ; } if(code_seen('P')) // Psi { - add_homing[1] = code_value() ; + add_homing[Y_AXIS] = code_value() ; } #endif break; @@ -3275,11 +3275,11 @@ Sigma_Exit: //SERIAL_ECHOLN(" Soft endstops disabled "); if(Stopped == false) { //get_coordinates(); // For X Y Z E F - delta[0] = 0; - delta[1] = 120; + delta[X_AXIS] = 0; + delta[Y_AXIS] = 120; calculate_SCARA_forward_Transform(delta); - destination[0] = delta[0]/axis_scaling[X_AXIS]; - destination[1] = delta[1]/axis_scaling[Y_AXIS]; + destination[X_AXIS] = delta[X_AXIS]/axis_scaling[X_AXIS]; + destination[Y_AXIS] = delta[Y_AXIS]/axis_scaling[Y_AXIS]; prepare_move(); //ClearToSend(); @@ -3293,11 +3293,11 @@ Sigma_Exit: //SERIAL_ECHOLN(" Soft endstops disabled "); if(Stopped == false) { //get_coordinates(); // For X Y Z E F - delta[0] = 90; - delta[1] = 130; + delta[X_AXIS] = 90; + delta[Y_AXIS] = 130; calculate_SCARA_forward_Transform(delta); - destination[0] = delta[0]/axis_scaling[X_AXIS]; - destination[1] = delta[1]/axis_scaling[Y_AXIS]; + destination[X_AXIS] = delta[X_AXIS]/axis_scaling[X_AXIS]; + destination[Y_AXIS] = delta[Y_AXIS]/axis_scaling[Y_AXIS]; prepare_move(); //ClearToSend(); @@ -3310,11 +3310,11 @@ Sigma_Exit: //SERIAL_ECHOLN(" Soft endstops disabled "); if(Stopped == false) { //get_coordinates(); // For X Y Z E F - delta[0] = 60; - delta[1] = 180; + delta[X_AXIS] = 60; + delta[Y_AXIS] = 180; calculate_SCARA_forward_Transform(delta); - destination[0] = delta[0]/axis_scaling[X_AXIS]; - destination[1] = delta[1]/axis_scaling[Y_AXIS]; + destination[X_AXIS] = delta[X_AXIS]/axis_scaling[X_AXIS]; + destination[Y_AXIS] = delta[Y_AXIS]/axis_scaling[Y_AXIS]; prepare_move(); //ClearToSend(); @@ -3327,11 +3327,11 @@ Sigma_Exit: //SERIAL_ECHOLN(" Soft endstops disabled "); if(Stopped == false) { //get_coordinates(); // For X Y Z E F - delta[0] = 50; - delta[1] = 90; + delta[X_AXIS] = 50; + delta[Y_AXIS] = 90; calculate_SCARA_forward_Transform(delta); - destination[0] = delta[0]/axis_scaling[X_AXIS]; - destination[1] = delta[1]/axis_scaling[Y_AXIS]; + destination[X_AXIS] = delta[X_AXIS]/axis_scaling[X_AXIS]; + destination[Y_AXIS] = delta[Y_AXIS]/axis_scaling[Y_AXIS]; prepare_move(); //ClearToSend(); @@ -3344,11 +3344,11 @@ Sigma_Exit: //SERIAL_ECHOLN(" Soft endstops disabled "); if(Stopped == false) { //get_coordinates(); // For X Y Z E F - delta[0] = 45; - delta[1] = 135; + delta[X_AXIS] = 45; + delta[Y_AXIS] = 135; calculate_SCARA_forward_Transform(delta); - destination[0] = delta[0]/axis_scaling[X_AXIS]; - destination[1] = delta[1]/axis_scaling[Y_AXIS]; + destination[X_AXIS] = delta[X_AXIS]/axis_scaling[X_AXIS]; + destination[Y_AXIS] = delta[Y_AXIS]/axis_scaling[Y_AXIS]; prepare_move(); //ClearToSend(); @@ -4020,9 +4020,9 @@ for (int s = 1; s <= steps; s++) { calculate_delta(destination); - //SERIAL_ECHOPGM("destination[0]="); SERIAL_ECHOLN(destination[0]); - //SERIAL_ECHOPGM("destination[1]="); SERIAL_ECHOLN(destination[1]); - //SERIAL_ECHOPGM("destination[2]="); SERIAL_ECHOLN(destination[2]); + //SERIAL_ECHOPGM("destination[X_AXIS]="); SERIAL_ECHOLN(destination[X_AXIS]); + //SERIAL_ECHOPGM("destination[Y_AXIS]="); SERIAL_ECHOLN(destination[Y_AXIS]); + //SERIAL_ECHOPGM("destination[Z_AXIS]="); SERIAL_ECHOLN(destination[Z_AXIS]); //SERIAL_ECHOPGM("delta[X_AXIS]="); SERIAL_ECHOLN(delta[X_AXIS]); //SERIAL_ECHOPGM("delta[Y_AXIS]="); SERIAL_ECHOLN(delta[Y_AXIS]); //SERIAL_ECHOPGM("delta[Z_AXIS]="); SERIAL_ECHOLN(delta[Z_AXIS]); diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 10fbe9b31..840a1b288 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -353,8 +353,8 @@ #define D_FILAMENT 1.75 #define STEPS_MM_E 1000 - #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) - #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) #endif // ADVANCE diff --git a/Marlin/example_configurations/delta/Configuration_adv.h b/Marlin/example_configurations/delta/Configuration_adv.h index 6c9d56886..edc658047 100644 --- a/Marlin/example_configurations/delta/Configuration_adv.h +++ b/Marlin/example_configurations/delta/Configuration_adv.h @@ -340,8 +340,8 @@ #define D_FILAMENT 2.85 #define STEPS_MM_E 836 - #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) - #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) #endif // ADVANCE diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 312b2b964..21dbd46d7 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -344,8 +344,8 @@ #define D_FILAMENT 2.85 #define STEPS_MM_E 836 - #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) - #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) #endif // ADVANCE diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index fe617501f..c8942251e 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -63,9 +63,9 @@ //=========================================================================== unsigned long minsegmenttime; -float max_feedrate[4]; // set the max speeds -float axis_steps_per_unit[4]; -unsigned long max_acceleration_units_per_sq_second[4]; // Use M201 to override by software +float max_feedrate[NUM_AXIS]; // set the max speeds +float axis_steps_per_unit[NUM_AXIS]; +unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software float minimumfeedrate; float acceleration; // Normal acceleration mm/s^2 THIS IS THE DEFAULT ACCELERATION for all moves. M204 SXXXX float retract_acceleration; // mm/s^2 filament pull-pack and push-forward while standing still in the other axis M204 TXXXX @@ -85,8 +85,8 @@ matrix_3x3 plan_bed_level_matrix = { #endif // #ifdef ENABLE_AUTO_BED_LEVELING // The current position of the tool in absolute steps -long position[4]; //rescaled from extern when axis_steps_per_unit are changed by gcode -static float previous_speed[4]; // Speed of previous path line segment +long position[NUM_AXIS]; //rescaled from extern when axis_steps_per_unit are changed by gcode +static float previous_speed[NUM_AXIS]; // Speed of previous path line segment static float previous_nominal_speed; // Nominal speed of previous path line segment #ifdef AUTOTEMP @@ -989,7 +989,7 @@ block->steps_y = labs((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-positi else { long acc_dist = estimate_acceleration_distance(0, block->nominal_rate, block->acceleration_st); float advance = (STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K) * - (current_speed[E_AXIS] * current_speed[E_AXIS] * EXTRUTION_AREA * EXTRUTION_AREA)*256; + (current_speed[E_AXIS] * current_speed[E_AXIS] * EXTRUSION_AREA * EXTRUSION_AREA)*256; block->advance = advance; if(acc_dist == 0) { block->advance_rate = 0; diff --git a/Marlin/planner.h b/Marlin/planner.h index 837199eb7..0952b9dd3 100644 --- a/Marlin/planner.h +++ b/Marlin/planner.h @@ -106,9 +106,9 @@ void check_axes_activity(); uint8_t movesplanned(); //return the nr of buffered moves extern unsigned long minsegmenttime; -extern float max_feedrate[4]; // set the max speeds -extern float axis_steps_per_unit[4]; -extern unsigned long max_acceleration_units_per_sq_second[4]; // Use M201 to override by software +extern float max_feedrate[NUM_AXIS]; // set the max speeds +extern float axis_steps_per_unit[NUM_AXIS]; +extern unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software extern float minimumfeedrate; extern float acceleration; // Normal acceleration mm/s^2 THIS IS THE DEFAULT ACCELERATION for all moves. M204 SXXXX extern float retract_acceleration; // mm/s^2 filament pull-pack and push-forward while standing still in the other axis M204 TXXXX @@ -152,14 +152,7 @@ FORCE_INLINE block_t *plan_get_current_block() } // Returns true if the buffer has a queued block, false otherwise -FORCE_INLINE bool blocks_queued() -{ - if (block_buffer_head == block_buffer_tail) { - return false; - } - else - return true; -} +FORCE_INLINE bool blocks_queued() { return (block_buffer_head != block_buffer_tail); } #ifdef PREVENT_DANGEROUS_EXTRUDE void set_extrude_min_temp(float temp); From 0c06e97e98038674d42e6d35b048f6a174aa536a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 09:31:19 -0800 Subject: [PATCH 26/33] Split up languages.h, use ISO codes Breaking up languages.h makes it easier to translate. Using language codes makes it easier to select a language and sets the naming standard. --- Marlin/dogm_lcd_implementation.h | 2 +- Marlin/language.h | 1734 +---------------- Marlin/language_an.h | 135 ++ Marlin/language_ca.h | 125 ++ Marlin/language_de.h | 128 ++ Marlin/language_en.h | 125 ++ Marlin/language_es.h | 134 ++ Marlin/language_eu.h | 125 ++ Marlin/language_fi.h | 125 ++ Marlin/language_fr.h | 128 ++ Marlin/language_it.h | 126 ++ Marlin/language_nl.h | 125 ++ Marlin/language_pl.h | 128 ++ Marlin/language_pt.h | 131 ++ Marlin/language_ru.h | 126 ++ .../ultralcd_implementation_hitachi_HD44780.h | 2 +- 16 files changed, 1710 insertions(+), 1689 deletions(-) create mode 100644 Marlin/language_an.h create mode 100644 Marlin/language_ca.h create mode 100644 Marlin/language_de.h create mode 100644 Marlin/language_en.h create mode 100644 Marlin/language_es.h create mode 100644 Marlin/language_eu.h create mode 100644 Marlin/language_fi.h create mode 100644 Marlin/language_fr.h create mode 100644 Marlin/language_it.h create mode 100644 Marlin/language_nl.h create mode 100644 Marlin/language_pl.h create mode 100644 Marlin/language_pt.h create mode 100644 Marlin/language_ru.h diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 0bfc8c144..ab41007ac 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -42,7 +42,7 @@ /* Russian language not supported yet, needs custom font -#if LANGUAGE_CHOICE == 6 +#if LANGUAGE_CHOICE == ru #include "LiquidCrystalRus.h" #define LCD_CLASS LiquidCrystalRus #else diff --git a/Marlin/language.h b/Marlin/language.h index 3e6e17043..0f245769b 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -1,28 +1,32 @@ #ifndef LANGUAGE_H #define LANGUAGE_H -// NOTE: IF YOU CHANGE THIS FILE / MERGE THIS FILE WITH CHANGES +// NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES // // ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h" // ==> ALSO TRY ALL AVAILABLE "LANGUAGE_CHOICE" OPTIONS // Languages -// 1 English -// 2 Polish -// 3 French -// 4 German -// 5 Spanish -// 6 Russian -// 7 Italian -// 8 Portuguese -// 9 Finnish -// 10 Aragonese -// 11 Dutch -// 12 Catalan -// 13 Basque-Euskera +// en English +// pl Polish +// fr French +// de German +// es Spanish +// ru Russian +// it Italian +// pt Portuguese +// fi Finnish +// an Aragonese +// nl Dutch +// ca Catalan +// eu Basque-Euskera #ifndef LANGUAGE_CHOICE - #define LANGUAGE_CHOICE 1 // Pick your language from the list above + #define LANGUAGE_CHOICE en // Pick your language from the list above +#endif + +#if LANGUAGE_CHOICE >= 1 + #error "Languages now uses ISO language codes instead of numbers." #endif #define PROTOCOL_VERSION "1.0" @@ -61,12 +65,12 @@ // Common LCD messages -/* nothing here as of yet */ + + /* nothing here yet */ // Common serial messages #define MSG_MARLIN "Marlin" - // Serial Console Messages (do not translate those!) #define MSG_Enqueing "enqueing \"" @@ -143,1676 +147,32 @@ #define MSG_BABYSTEPPING_Z "Babystepping Z" #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" -#if LANGUAGE_CHOICE == 1 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " ready." - #define MSG_SD_INSERTED "Card inserted" - #define MSG_SD_REMOVED "Card removed" - #define MSG_MAIN "Main" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Disable steppers" - #define MSG_AUTO_HOME "Auto home" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Set origin" - #define MSG_PREHEAT_PLA "Preheat PLA" - #define MSG_PREHEAT_PLA0 "Preheat PLA 1" - #define MSG_PREHEAT_PLA1 "Preheat PLA 2" - #define MSG_PREHEAT_PLA2 "Preheat PLA 3" - #define MSG_PREHEAT_PLA012 "Preheat PLA All" - #define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed" - #define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf" - #define MSG_PREHEAT_ABS "Preheat ABS" - #define MSG_PREHEAT_ABS0 "Preheat ABS 1" - #define MSG_PREHEAT_ABS1 "Preheat ABS 2" - #define MSG_PREHEAT_ABS2 "Preheat ABS 3" - #define MSG_PREHEAT_ABS012 "Preheat ABS All" - #define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed" - #define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf" - #define MSG_COOLDOWN "Cooldown" - #define MSG_SWITCH_PS_ON "Switch power on" - #define MSG_SWITCH_PS_OFF "Switch power off" - #define MSG_EXTRUDE "Extrude" - #define MSG_RETRACT "Retract" - #define MSG_MOVE_AXIS "Move axis" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "Speed" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Bed" - #define MSG_FAN_SPEED "Fan speed" - #define MSG_FLOW "Flow" - #define MSG_FLOW0 "Flow 0" - #define MSG_FLOW1 "Flow 1" - #define MSG_FLOW2 "Flow 2" - #define MSG_CONTROL "Control" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Fact" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Accel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract" - #define MSG_XSTEPS "Xsteps/mm" - #define MSG_YSTEPS "Ysteps/mm" - #define MSG_ZSTEPS "Zsteps/mm" - #define MSG_ESTEPS "Esteps/mm" - #define MSG_RECTRACT "Rectract" - #define MSG_TEMPERATURE "Temperature" - #define MSG_MOTION "Motion" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "Store memory" - #define MSG_LOAD_EPROM "Load memory" - #define MSG_RESTORE_FAILSAFE "Restore failsafe" - #define MSG_REFRESH "Refresh" - #define MSG_WATCH "Info screen" - #define MSG_PREPARE "Prepare" - #define MSG_TUNE "Tune" - #define MSG_PAUSE_PRINT "Pause print" - #define MSG_RESUME_PRINT "Resume print" - #define MSG_STOP_PRINT "Stop print" - #define MSG_CARD_MENU "Print from SD" - #define MSG_NO_CARD "No SD card" - #define MSG_DWELL "Sleep..." - #define MSG_USERWAIT "Wait for user..." - #define MSG_RESUMING "Resuming print" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "No move." - #define MSG_KILLED "KILLED. " - #define MSG_STOPPED "STOPPED. " - #define MSG_CONTROL_RETRACT "Retract mm" - #define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm" - #define MSG_CONTROL_RETRACTF "Retract V" - #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD card" - #define MSG_CNG_SDCARD "Change SD card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - -#endif - - -#if LANGUAGE_CHOICE == 2 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " gotowy." - #define MSG_SD_INSERTED "Karta wlozona" - #define MSG_SD_REMOVED "Karta usunieta" - #define MSG_MAIN "Menu glowne" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Wylacz silniki" - #define MSG_AUTO_HOME "Auto. poz. zerowa" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Ustaw punkt zero" - #define MSG_PREHEAT_PLA "Rozgrzej PLA" - #define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" - #define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" - #define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" - #define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko" - #define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" - #define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" - #define MSG_PREHEAT_ABS "Rozgrzej ABS" - #define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1" - #define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" - #define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" - #define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko" - #define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" - #define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" - #define MSG_COOLDOWN "Chlodzenie" - #define MSG_SWITCH_PS_ON "Wlacz zasilacz" - #define MSG_SWITCH_PS_OFF "Wylacz zasilacz" - #define MSG_EXTRUDE "Ekstruzja" - #define MSG_RETRACT "Cofanie" - #define MSG_MOVE_AXIS "Ruch osi" - #define MSG_MOVE_X "Przesun w X" - #define MSG_MOVE_Y "Przesun w Y" - #define MSG_MOVE_Z "Przesun w Z" - #define MSG_MOVE_E "Ekstruzja (os E)" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Przesuwaj co .1mm" - #define MSG_MOVE_1MM "Przesuwaj co 1mm" - #define MSG_MOVE_10MM "Przesuwaj co 10mm" - #define MSG_SPEED "Predkosc" - #define MSG_NOZZLE "Dysza" - #define MSG_NOZZLE1 "Dysza 2" - #define MSG_NOZZLE2 "Dysza 3" - #define MSG_BED "Loze" - #define MSG_FAN_SPEED "Obroty wiatraka" - #define MSG_FLOW "Przeplyw" - #define MSG_FLOW0 "Przeplyw 0" - #define MSG_FLOW1 "Przeplyw 1" - #define MSG_FLOW2 "Przeplyw 2" - #define MSG_CONTROL "Kontrola" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Mnoznik" - #define MSG_AUTOTEMP "Auto. temperatura" - #define MSG_ON "Wl. " - #define MSG_OFF "Wyl." - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Przyspieszenie" - #define MSG_VXY_JERK "Zryw Vxy" - #define MSG_VZ_JERK "Zryw Vz" - #define MSG_VE_JERK "Zryw Ve" - #define MSG_VMAX "Vmax" - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "Vskok min" - #define MSG_AMAX "Amax" - #define MSG_A_RETRACT "A-wycofanie" - #define MSG_XSTEPS "krokiX/mm" - #define MSG_YSTEPS "krokiY/mm" - #define MSG_ZSTEPS "krokiZ/mm" - #define MSG_ESTEPS "krokiE/mm" - #define MSG_RECTRACT "Wycofanie" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Ruch" - #define MSG_CONTRAST "Kontrast LCD" - #define MSG_STORE_EPROM "Zapisz w pamieci" - #define MSG_LOAD_EPROM "Wczytaj z pamieci" - #define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne" - #define MSG_REFRESH "\004Odswiez" - #define MSG_WATCH "Ekran glowny" - #define MSG_PREPARE "Przygotuj" - #define MSG_CONTROL "Ustawienia" - #define MSG_TUNE "Strojenie" - #define MSG_PAUSE_PRINT "Pauza" - #define MSG_RESUME_PRINT "Wznowienie" - #define MSG_STOP_PRINT "Stop" - #define MSG_CARD_MENU "Menu karty SD" - #define MSG_NO_CARD "Brak karty" - #define MSG_DWELL "Uspij..." - #define MSG_USERWAIT "Oczekiwanie..." - #define MSG_RESUMING "Wznawianie druku" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Brak ruchu" - #define MSG_KILLED "Ubity. " - #define MSG_STOPPED "Zatrzymany. " - #define MSG_STEPPER_RELEASED "Zwolniony." - #define MSG_CONTROL_RETRACT "Wycofaj mm" - #define MSG_CONTROL_RETRACT_SWAP "Z Wycof. mm" - #define MSG_CONTROL_RETRACTF "Wycofaj V" - #define MSG_CONTROL_RETRACT_ZLIFT "Skok Z mm:" - #define MSG_CONTROL_RETRACT_RECOVER "Cof. wycof. +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Z Cof. wyc. +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. V" - #define MSG_AUTORETRACT "Auto. wycofanie" - #define MSG_FILAMENTCHANGE "Zmien filament" - #define MSG_INIT_SDCARD "Inicjal. karty SD" - #define MSG_CNG_SDCARD "Zmiana karty SD" - #define MSG_ZPROBE_OUT "Sonda Z za lozem" - #define MSG_POSITION_UNKNOWN "Wroc w XY przed Z" - #define MSG_ZPROBE_ZOFFSET "Offset Z" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Blad wyl. kranc." - #define MSG_CONTRAST "Kontrast" - -#endif - - -#if LANGUAGE_CHOICE == 3 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " prete." - #define MSG_SD_INSERTED "Carte inseree" - #define MSG_SD_REMOVED "Carte retiree" - #define MSG_MAIN "Menu principal" - #define MSG_AUTOSTART "Demarrage auto" - #define MSG_DISABLE_STEPPERS "Arreter moteurs" - #define MSG_AUTO_HOME "Home auto." - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Regler origine" - #define MSG_PREHEAT_PLA " Prechauffage PLA" - #define MSG_PREHEAT_PLA0 "Prechauff. PLA 1" - #define MSG_PREHEAT_PLA1 "Prechauff. PLA 2" - #define MSG_PREHEAT_PLA2 "Prechauff. PLA 3" - #define MSG_PREHEAT_PLA012 "Prech. PLA Tout" - #define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau" - #define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA" - #define MSG_PREHEAT_ABS "Prechauffage ABS" - #define MSG_PREHEAT_ABS0 "Prechauff. ABS 1" - #define MSG_PREHEAT_ABS1 "Prechauff. ABS 2" - #define MSG_PREHEAT_ABS2 "Prechauff. ABS 3" - #define MSG_PREHEAT_ABS012 "Prech. ABS Tout" - #define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau" - #define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" - #define MSG_COOLDOWN "Refroidir" - #define MSG_SWITCH_PS_ON "Allumer alim." - #define MSG_SWITCH_PS_OFF "Eteindre alim." - #define MSG_EXTRUDE "Extrusion" - #define MSG_RETRACT "Retraction" - #define MSG_PREHEAT_PLA "Prechauffage PLA" - #define MSG_PREHEAT_ABS "Prechauffage ABS" - #define MSG_MOVE_AXIS "Deplacer un axe" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED " Vitesse" - #define MSG_NOZZLE "Buse" - #define MSG_NOZZLE1 "Buse2" - #define MSG_NOZZLE2 "Buse3" - #define MSG_BED "Plateau" - #define MSG_FAN_SPEED "Vite. ventilateur" - #define MSG_FLOW "Flux" - #define MSG_FLOW0 "Flux 0" - #define MSG_FLOW1 "Flux 1" - #define MSG_FLOW2 "Flux 2" - #define MSG_CONTROL "Controler" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Facteur" - #define MSG_AUTOTEMP "Temp. Auto." - #define MSG_ON "Marche " - #define MSG_OFF "Arret" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Accel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax" - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "Vdepl min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract" - #define MSG_XSTEPS "Xpas/mm" - #define MSG_YSTEPS "Ypas/mm" - #define MSG_ZSTEPS "Zpas/mm" - #define MSG_ESTEPS "Epas/mm" - #define MSG_TEMPERATURE "Temperature" - #define MSG_MOTION "Mouvement" - #define MSG_CONTRAST "Contraste LCD" - #define MSG_STORE_EPROM "Sauver config" - #define MSG_LOAD_EPROM "Lire config" - #define MSG_RESTORE_FAILSAFE "Restaurer defauts" - #define MSG_REFRESH "Actualiser" - #define MSG_WATCH "Surveiller" - #define MSG_PREPARE "Preparer" - #define MSG_TUNE "Regler" - #define MSG_PAUSE_PRINT "Interrompre impr." - #define MSG_RESUME_PRINT "Reprendre impr." - #define MSG_STOP_PRINT "Arreter impr." - #define MSG_CARD_MENU "Impr. depuis SD" - #define MSG_NO_CARD "Pas de carte" - #define MSG_DWELL "Repos..." - #define MSG_USERWAIT "Atten. de l'util." - #define MSG_RESUMING "Repri. de l'impr." - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Aucun mouvement." - #define MSG_KILLED "MORT." - #define MSG_STOPPED "STOPPE." - #define MSG_STEPPER_RELEASED "RELACHE." - #define MSG_CONTROL_RETRACT "Retraction mm" - #define MSG_CONTROL_RETRACT_SWAP "Ech. Retr. mm" - #define MSG_CONTROL_RETRACTF "Retraction V" - #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ech. UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" - #define MSG_AUTORETRACT "Retract. Auto." - #define MSG_FILAMENTCHANGE "Changer filament" - #define MSG_INIT_SDCARD "Init. la carte SD" - #define MSG_CNG_SDCARD "Changer de carte" - #define MSG_ZPROBE_OUT "Z sonde exte. lit" - #define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z" - #define MSG_ZPROBE_ZOFFSET "Offset Z" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Butee abandon" - #define MSG_CONTRAST "Contrast" - -#endif - - -#if LANGUAGE_CHOICE == 4 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " Bereit." - - #define MSG_SD_INSERTED "SDKarte erkannt" - #define MSG_SD_REMOVED "SDKarte entfernt" - #define MSG_MAIN "Hauptmenü" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Stepper abschalt." - #define MSG_AUTO_HOME "Auto Nullpunkt" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Setze Nullpunkt" - #define MSG_PREHEAT_PLA "Vorwärmen PLA" - #define MSG_PREHEAT_PLA0 "Vorwärmen PLA 1" - #define MSG_PREHEAT_PLA1 "Vorwärmen PLA 2" - #define MSG_PREHEAT_PLA2 "Vorwärmen PLA 3" - #define MSG_PREHEAT_PLA012 "Vorw. PLA Alle" - #define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett" - #define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein." - #define MSG_PREHEAT_ABS "Vorwärmen ABS" - #define MSG_PREHEAT_ABS0 "Vorwärmen ABS 1" - #define MSG_PREHEAT_ABS1 "Vorwärmen ABS 2" - #define MSG_PREHEAT_ABS2 "Vorwärmen ABS 3" - #define MSG_PREHEAT_ABS012 "Vorw. ABS Alle" - #define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett" - #define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein." - #define MSG_COOLDOWN "Abkühlen" - #define MSG_SWITCH_PS_ON "Switch Power On" - #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE "Extrude" - #define MSG_RETRACT "Retract" - #define MSG_MOVE_AXIS "Achsen bewegen" - #define MSG_MOVE_X "X bewegen" - #define MSG_MOVE_Y "Y bewegen" - #define MSG_MOVE_Z "Z bewegen" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "0.1mm bewegen" - #define MSG_MOVE_1MM "1mm bewegen" - #define MSG_MOVE_10MM "10mm bewegen" - #define MSG_SPEED "Geschw" - #define MSG_NOZZLE "Düse" - #define MSG_NOZZLE1 "Düse2" - #define MSG_NOZZLE2 "Düse3" - #define MSG_BED "Bett" - #define MSG_FAN_SPEED "Lüftergeschw." - #define MSG_FLOW "Fluss" - #define MSG_FLOW0 "Fluss 0" - #define MSG_FLOW1 "Fluss 1" - #define MSG_FLOW2 "Fluss 2" - #define MSG_CONTROL "Einstellungen" - #define MSG_MIN "\002 Min" - #define MSG_MAX "\002 Max" - #define MSG_FACTOR "\002 Faktor" - #define MSG_AUTOTEMP "AutoTemp" - #define MSG_ON "Ein" - #define MSG_OFF "Aus" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Acc" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-Retract" - #define MSG_XSTEPS "Xsteps/mm" - #define MSG_YSTEPS "Ysteps/mm" - #define MSG_ZSTEPS "Zsteps/mm" - #define MSG_ESTEPS "Esteps/mm" - #define MSG_RECTRACT_WIDE "Rectract" - #define MSG_WATCH "Beobachten" - #define MSG_TEMPERATURE "Temperatur" - #define MSG_MOTION "Bewegung" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "EPROM speichern" - #define MSG_LOAD_EPROM "EPROM laden" - #define MSG_RESTORE_FAILSAFE "Standardkonfig." - #define MSG_REFRESH "Aktualisieren" - #define MSG_PREPARE "Vorbereitung" - #define MSG_CONTROL "Einstellungen" - #define MSG_TUNE "Justierung" - #define MSG_PAUSE_PRINT "Druck anhalten" - #define MSG_RESUME_PRINT "Druck fortsetz" - #define MSG_STOP_PRINT "Druck stoppen" - #define MSG_CARD_MENU "SDKarten Menü" - #define MSG_NO_CARD "Keine SDKarte" - #define MSG_DWELL "Warten..." - #define MSG_USERWAIT "Warte auf Nutzer" - #define MSG_RESUMING "Druck fortsetzung" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Kein Zug." - #define MSG_KILLED "KILLED" - #define MSG_STOPPED "GESTOPPT" - #define MSG_STEPPER_RELEASED "Stepper frei" - #define MSG_CONTROL_RETRACT "Retract mm" - #define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm" - #define MSG_CONTROL_RETRACTF "Retract V" - #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Wechs. UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Filament wechseln" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" - -#endif - - -#if LANGUAGE_CHOICE == 5 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " lista." - #define MSG_SD_INSERTED "Tarjeta colocada" - #define MSG_SD_REMOVED "Tarjeta retirada" - #define MSG_MAIN "Menu principal" - #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS "Apagar motores" - #define MSG_AUTO_HOME "Llevar al origen" - #define MSG_SET_HOME_OFFSETS "Ajustar offsets" - #define MSG_SET_ORIGIN "Establecer cero" - #define MSG_PREHEAT_PLA "Precalentar PLA" - #define MSG_PREHEAT_PLA0 "Precalentar PLA 1" - #define MSG_PREHEAT_PLA1 "Precalentar PLA 2" - #define MSG_PREHEAT_PLA2 "Precalentar PLA 3" - #define MSG_PREHEAT_PLA012 "Precal. PLA Todo" - #define MSG_PREHEAT_PLA_BEDONLY "Precal. PLA Base" - #define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA" - #define MSG_PREHEAT_ABS "Precalentar ABS" - #define MSG_PREHEAT_ABS0 "Precalentar ABS 1" - #define MSG_PREHEAT_ABS1 "Precalentar ABS 2" - #define MSG_PREHEAT_ABS2 "Precalentar ABS 3" - #define MSG_PREHEAT_ABS012 "Precal. ABS Todo" - #define MSG_PREHEAT_ABS_BEDONLY "Precal. ABS Base" - #define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS" - #define MSG_COOLDOWN "Enfriar" - #define MSG_SWITCH_PS_ON "Encender" - #define MSG_SWITCH_PS_OFF "Apagar" - #define MSG_EXTRUDE "Extruir" - #define MSG_RETRACT "Retraer" - #define MSG_MOVE_AXIS "Mover ejes" - #define MSG_MOVE_X "Mover X" - #define MSG_MOVE_Y "Mover Y" - #define MSG_MOVE_Z "Mover Z" - #define MSG_MOVE_E "Extrusor" - #define MSG_MOVE_E1 "Extrusor2" - #define MSG_MOVE_E2 "Extrusor3" - #define MSG_MOVE_01MM "Mover 0.1mm" - #define MSG_MOVE_1MM "Mover 1mm" - #define MSG_MOVE_10MM "Mover 10mm" - #define MSG_SPEED "Velocidad" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Base" - #define MSG_FAN_SPEED "Ventilador" - #define MSG_FLOW "Flujo" - #define MSG_FLOW0 "Flujo 0" - #define MSG_FLOW1 "Flujo 1" - #define MSG_FLOW2 "Flujo 2" - #define MSG_CONTROL "Control" - #define MSG_MIN "\002 Min" - #define MSG_MAX "\002 Max" - #define MSG_FACTOR "\002 Fact" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On" - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Acel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax" - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "Vvacio min" - #define MSG_AMAX "Amax" - #define MSG_A_RETRACT "A-retrac." - #define MSG_XSTEPS "X pasos/mm" - #define MSG_YSTEPS "Y pasos/mm" - #define MSG_ZSTEPS "Z pasos/mm" - #define MSG_ESTEPS "E pasos/mm" - #define MSG_RECTRACT "Retraer" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Movimiento" - #define MSG_STORE_EPROM "Guardar memoria" - #define MSG_LOAD_EPROM "Cargar memoria" - #define MSG_RESTORE_FAILSAFE "Rest. de emergen." - #define MSG_REFRESH "Volver a cargar" - #define MSG_WATCH "Monitorizar" - #define MSG_PREPARE "Preparar" - #define MSG_TUNE "Ajustar" - #define MSG_PAUSE_PRINT "Pausar impresion" - #define MSG_RESUME_PRINT "Reanudar impres." - #define MSG_STOP_PRINT "Detener impresion" - #define MSG_CARD_MENU "Menu de SD" - #define MSG_NO_CARD "No hay tarjeta SD" - #define MSG_DWELL "Reposo..." - #define MSG_USERWAIT "Esperando ordenes" - #define MSG_RESUMING "Resumiendo impre." - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Sin movimiento" - #define MSG_KILLED "PARADA DE EMERG." - #define MSG_STOPPED "PARADA" - #define MSG_CONTROL_RETRACT "Retraer mm" - #define MSG_CONTROL_RETRACT_SWAP "Interc. Retraer mm" - #define MSG_CONTROL_RETRACTF "Retraer V" - #define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm" - #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Interc. DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "DesRet V" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Cambiar filamento" - #define MSG_INIT_SDCARD "Iniciando tarjeta" - #define MSG_CNG_SDCARD "Cambiar tarjeta" - #define MSG_RECTRACT_WIDE "Retraer" - #define MSG_TEMPERATURE_WIDE "Temperatura" - #define MSG_TEMPERATURE_RTN "Temperatura" - #define MSG_MAIN_WIDE "Menu principal" - #define MSG_MOTION_WIDE "Movimiento" - #define MSG_PREPARE_ALT "Preparar" - #define MSG_CONTROL_ARROW "Control" - #define MSG_RETRACT_ARROW "Retraer" - #define MSG_STEPPER_RELEASED "Desacoplada." - #define MSG_ZPROBE_OUT "sonda Z fuera" - #define MSG_POSITION_UNKNOWN "Reiniciar X/Y y Z" - #define MSG_ZPROBE_ZOFFSET "Offset Z" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contraste" - -#endif - -#if LANGUAGE_CHOICE == 6 - - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME "Готов." - #define MSG_SD_INSERTED "Карта вÑтавлена" - #define MSG_SD_REMOVED "Карта извлечена" - #define MSG_MAIN "Меню \003" - #define MSG_AUTOSTART "ÐвтоÑтарт" - #define MSG_DISABLE_STEPPERS "Выкл. двигатели" - #define MSG_AUTO_HOME "Парковка" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Запомнить ноль" - #define MSG_PREHEAT_PLA "Преднагрев PLA" - #define MSG_PREHEAT_PLA0 "Преднагрев PLA0" - #define MSG_PREHEAT_PLA1 "Преднагрев PLA1" - #define MSG_PREHEAT_PLA2 "Преднагрев PLA2" - #define MSG_PREHEAT_PLA012 "Преднаг. PLA вÑе" - #define MSG_PREHEAT_PLA_BEDONLY "Пред. PLA Кровать" - #define MSG_PREHEAT_PLA_SETTINGS "ÐаÑтройки PLA" - #define MSG_PREHEAT_ABS "Преднагрев ABS" - #define MSG_PREHEAT_ABS0 "Преднагрев ABS0" - #define MSG_PREHEAT_ABS1 "Преднагрев ABS1" - #define MSG_PREHEAT_ABS2 "Преднагрев ABS2" - #define MSG_PREHEAT_ABS012 "Преднаг. ABS вÑе " - #define MSG_PREHEAT_ABS_BEDONLY "Пред. ABS Кровать" - #define MSG_PREHEAT_ABS_SETTINGS "ÐаÑтройки ABS" - #define MSG_COOLDOWN "Охлаждение" - #define MSG_SWITCH_PS_ON "Switch Power On" - #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE "ЭкÑтрузиÑ" - #define MSG_RETRACT "Откат" - #define MSG_MOVE_AXIS "Движение по оÑÑм" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "СкороÑÑ‚ÑŒ:" - #define MSG_NOZZLE "\002 Фильера:" - #define MSG_NOZZLE1 "\002 Фильера2:" - #define MSG_NOZZLE2 "\002 Фильера3:" - #define MSG_BED "\002 Кровать:" - #define MSG_FAN_SPEED "Куллер:" - #define MSG_FLOW "Поток:" - #define MSG_FLOW0 " Поток0:" - #define MSG_FLOW1 " Поток1:" - #define MSG_FLOW2 " Поток2:" - #define MSG_CONTROL "ÐаÑтройки \003" - #define MSG_MIN "\002 Минимум:" - #define MSG_MAX "\002 МакÑимум:" - #define MSG_FACTOR "\002 Фактор:" - #define MSG_AUTOTEMP "Autotemp:" - #define MSG_ON "Вкл. " - #define MSG_OFF "Выкл. " - #define MSG_PID_P "PID-P: " - #define MSG_PID_I "PID-I: " - #define MSG_PID_D "PID-D: " - #define MSG_PID_C "PID-C: " - #define MSG_ACC "Acc:" - #define MSG_VXY_JERK "Vxy-jerk: " - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x:" - #define MSG_Y "y:" - #define MSG_Z "z:" - #define MSG_E "e:" - #define MSG_VMIN "Vmin:" - #define MSG_VTRAV_MIN "VTrav min:" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract:" - #define MSG_XSTEPS "X шаг/mm:" - #define MSG_YSTEPS "Y шаг/mm:" - #define MSG_ZSTEPS "Z шаг/mm:" - #define MSG_ESTEPS "E шаг/mm:" - #define MSG_RECTRACT "Откат подачи \x7E" - #define MSG_TEMPERATURE "Температура \x7E" - #define MSG_MOTION "СкороÑти \x7E" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "Сохранить в EPROM" - #define MSG_LOAD_EPROM "Загруз. из EPROM" - #define MSG_RESTORE_FAILSAFE "Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек" - #define MSG_REFRESH "\004Обновить" - #define MSG_WATCH "Обзор \003" - #define MSG_PREPARE "ДейÑÑ‚Ð²Ð¸Ñ \x7E" - #define MSG_TUNE "ÐаÑтройки \x7E" - #define MSG_PAUSE_PRINT "Продолжить печать" - #define MSG_RESUME_PRINT "возобн. печать" - #define MSG_STOP_PRINT "ОÑтановить печать" - #define MSG_CARD_MENU "Меню карты \x7E" - #define MSG_NO_CARD "Ðет карты" - #define MSG_DWELL "Сон..." - #define MSG_USERWAIT "Ожиданиие" - #define MSG_RESUMING "Resuming print" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Ðет движениÑ." - #define MSG_KILLED "УБИТО." - #define MSG_STOPPED "ОСТÐÐОВЛЕÐО." - #define MSG_CONTROL_RETRACT "Откат mm:" - #define MSG_CONTROL_RETRACT_SWAP "Ñвоп Откат mm:" - #define MSG_CONTROL_RETRACTF "Откат V:" - #define MSG_CONTROL_RETRACT_ZLIFT "Прыжок mm:" - #define MSG_CONTROL_RETRACT_RECOVER "Возврат +mm:" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ñвоп Возврат +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF "Возврат V:" - #define MSG_AUTORETRACT "ÐвтоОткат:" - #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" - -#endif - - -#if LANGUAGE_CHOICE == 7 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " pronto." - #define MSG_SD_INSERTED "SD Card inserita" - #define MSG_SD_REMOVED "SD Card rimossa" - #define MSG_MAIN "Menu principale" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Disabilita Motori" - #define MSG_AUTO_HOME "Auto Home" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Imposta Origine" - #define MSG_PREHEAT_PLA "Preriscalda PLA" - #define MSG_PREHEAT_PLA0 "Preriscalda PLA 1" - #define MSG_PREHEAT_PLA1 "Preriscalda PLA 2" - #define MSG_PREHEAT_PLA2 "Preriscalda PLA 3" - #define MSG_PREHEAT_PLA012 "Preris. PLA Tutto" - #define MSG_PREHEAT_PLA_BEDONLY "Preri. PLA Piatto" - #define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf" - #define MSG_PREHEAT_ABS "Preriscalda ABS" - #define MSG_PREHEAT_ABS0 "Preriscalda ABS 1" - #define MSG_PREHEAT_ABS1 "Preriscalda ABS 2" - #define MSG_PREHEAT_ABS2 "Preriscalda ABS 3" - #define MSG_PREHEAT_ABS012 "Preris. ABS Tutto" - #define MSG_PREHEAT_ABS_BEDONLY "Preri. ABS Piatto" - #define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf" - #define MSG_COOLDOWN "Raffredda" - #define MSG_SWITCH_PS_ON "Switch Power On" - #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE "Estrudi" - #define MSG_RETRACT "Ritrai" - #define MSG_MOVE_AXIS "Muovi Asse" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "Velcità" - #define MSG_NOZZLE "Ugello" - #define MSG_NOZZLE1 "Ugello2" - #define MSG_NOZZLE2 "Ugello3" - #define MSG_BED "Piatto" - #define MSG_FAN_SPEED "Ventola" - #define MSG_FLOW "Flusso" - #define MSG_FLOW0 "Flusso 0" - #define MSG_FLOW1 "Flusso 1" - #define MSG_FLOW2 "Flusso 2" - #define MSG_CONTROL "Controllo" - #define MSG_MIN " \002 Min:" - #define MSG_MAX " \002 Max:" - #define MSG_FACTOR " \002 Fact:" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Accel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax" - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax" - #define MSG_A_RETRACT "A-retract" - #define MSG_XSTEPS "Xpassi/mm" - #define MSG_YSTEPS "Ypassi/mm" - #define MSG_ZSTEPS "Zpassi/mm" - #define MSG_ESTEPS "Epassi/mm" - #define MSG_RECTRACT "Ritrai" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Movimento" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "Salva in EEPROM" - #define MSG_LOAD_EPROM "Carica da EEPROM" - #define MSG_RESTORE_FAILSAFE "Impostaz. default" - #define MSG_REFRESH "Aggiorna" - #define MSG_WATCH "Guarda" - #define MSG_PREPARE "Prepara" - #define MSG_TUNE "Adatta" - #define MSG_PAUSE_PRINT "Pausa" - #define MSG_RESUME_PRINT "Riprendi Stampa" - #define MSG_STOP_PRINT "Arresta Stampa" - #define MSG_CARD_MENU "SD Card Menu" - #define MSG_NO_CARD "No SD Card" - #define MSG_DWELL "Sospensione..." - #define MSG_USERWAIT "Attendi Utente..." - #define MSG_RESUMING "Riprendi Stampa" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Nessun Movimento." - #define MSG_KILLED "UCCISO. " - #define MSG_STOPPED "ARRESTATO. " - #define MSG_CONTROL_RETRACT "Ritrai mm" - #define MSG_CONTROL_RETRACT_SWAP "Scamb. Ritrai mm" - #define MSG_CONTROL_RETRACTF "Ritrai V" - #define MSG_CONTROL_RETRACT_ZLIFT "Salta mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Scamb. UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" - #define MSG_AUTORETRACT "AutoArretramento" - #define MSG_FILAMENTCHANGE "Cambia filamento" - #define MSG_INIT_SDCARD "Iniz. SD-Card" - #define MSG_CNG_SDCARD "Cambia SD-Card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" - -#endif - - -#if LANGUAGE_CHOICE == 8 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " pronto." - #define MSG_SD_INSERTED "Cartao inserido" - #define MSG_SD_REMOVED "Cartao removido" - #define MSG_MAIN " Menu principal \003" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS " Apagar motores" - #define MSG_AUTO_HOME "Ir para origen" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Estabelecer orig." - #define MSG_PREHEAT_PLA "Pre-aquecer PLA" - #define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1" - #define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2" - #define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3" - #define MSG_PREHEAT_PLA012 " pre-aq. PLA Tudo" - #define MSG_PREHEAT_PLA_BEDONLY " pre-aq. PLA \002Base" - #define MSG_PREHEAT_PLA_SETTINGS "PLA setting" - #define MSG_PREHEAT_ABS "Pre-aquecer ABS" - #define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1" - #define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2" - #define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3" - #define MSG_PREHEAT_ABS012 " pre-aq. ABS Tudo" - #define MSG_PREHEAT_ABS_BEDONLY " pre-aq. ABS \002Base" - #define MSG_PREHEAT_ABS_SETTINGS "ABS setting" - #define MSG_COOLDOWN "Esfriar" - #define MSG_SWITCH_PS_ON "Switch Power On" - #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE "Extrudar" - #define MSG_RETRACT "Retrair" - #define MSG_PREHEAT_PLA "Pre-aquecer PLA" - #define MSG_PREHEAT_ABS "Pre-aquecer ABS" - #define MSG_MOVE_AXIS "Mover eixo \x7E" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "Velocidade:" - #define MSG_NOZZLE "\002Nozzle:" - #define MSG_NOZZLE1 "\002Nozzle2:" - #define MSG_NOZZLE2 "\002Nozzle3:" - #define MSG_BED "\002Base:" - #define MSG_FAN_SPEED "Velocidade vento." - #define MSG_FLOW "Fluxo:" - #define MSG_FLOW0 "Fluxo0:" - #define MSG_FLOW1 "Fluxo1:" - #define MSG_FLOW2 "Fluxo2:" - #define MSG_CONTROL "Controle \003" - #define MSG_MIN "\002 Min:" - #define MSG_MAX "\002 Max:" - #define MSG_FACTOR "\002 Fact:" - #define MSG_AUTOTEMP "Autotemp:" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P: " - #define MSG_PID_I "PID-I: " - #define MSG_PID_D "PID-D: " - #define MSG_PID_C "PID-C: " - #define MSG_ACC "Acc:" - #define MSG_VXY_JERK "Vxy-jerk: " - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX " Vmax " - #define MSG_X "x:" - #define MSG_Y "y:" - #define MSG_Z "z:" - #define MSG_E "e:" - #define MSG_VMIN "Vmin:" - #define MSG_VTRAV_MIN "VTrav min:" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract:" - #define MSG_XSTEPS "Xpasso/mm:" - #define MSG_YSTEPS "Ypasso/mm:" - #define MSG_ZSTEPS "Zpasso/mm:" - #define MSG_ESTEPS "Epasso/mm:" - #define MSG_MAIN_WIDE "Menu Principal \003" - #define MSG_RECTRACT "Retrair" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Movimento" - #define MSG_STORE_EPROM "Guardar memoria" - #define MSG_LOAD_EPROM "Carregar memoria" - #define MSG_RESTORE_FAILSAFE "Rest. de emergen." - #define MSG_REFRESH "\004Recarregar" - #define MSG_WATCH "Monitorar \003" - #define MSG_PREPARE "Preparar \x7E" - #define MSG_PREPARE_ALT "Preparar \003" - #define MSG_CONTROL_ARROW "Controle \x7E" - #define MSG_RETRACT_ARROW "Retrair \x7E" - #define MSG_TUNE "Tune \x7E" - #define MSG_PAUSE_PRINT "Pausar impressao" - #define MSG_RESUME_PRINT "Resumir impressao" - #define MSG_STOP_PRINT "Parar impressao" - #define MSG_CARD_MENU "Menu cartao SD" - #define MSG_NO_CARD "Sem cartao SD" - #define MSG_DWELL "Repouso..." - #define MSG_USERWAIT "Esperando ordem" - #define MSG_RESUMING "Resuming print" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Sem movimento" - #define MSG_KILLED "PARADA DE EMERG." - #define MSG_STOPPED "PARADA. " - #define MSG_STEPPER_RELEASED "Lancado." - #define MSG_CONTROL_RETRACT " Retrair mm:" - #define MSG_CONTROL_RETRACT_SWAP "Troca Retrair mm:" - #define MSG_CONTROL_RETRACTF " Retrair V:" - #define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm:" - #define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm:" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Troca DesRet +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF " DesRet V:" - #define MSG_AUTORETRACT " AutoRetr.:" - #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Son. fora da mesa" - #define MSG_POSITION_UNKNOWN "XY antes de Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" - -#endif - - - -#if LANGUAGE_CHOICE == 9 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " valmis." - #define MSG_SD_INSERTED "Kortti asetettu" - #define MSG_SD_REMOVED "Kortti poistettu" - #define MSG_MAIN "Palaa" - #define MSG_AUTOSTART "Automaatti" - #define MSG_DISABLE_STEPPERS "Vapauta moottorit" - #define MSG_AUTO_HOME "Aja referenssiin" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Aseta origo" - #define MSG_PREHEAT_PLA "Esilammita PLA" - #define MSG_PREHEAT_PLA0 "Esilammita PLA 1" - #define MSG_PREHEAT_PLA1 "Esilammita PLA 2" - #define MSG_PREHEAT_PLA2 "Esilammita PLA 3" - #define MSG_PREHEAT_PLA012 "Esila. PLA Kaikki" - #define MSG_PREHEAT_PLA_BEDONLY "Esila. PLA Alusta" - #define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf" - #define MSG_PREHEAT_ABS "Esilammita ABS" - #define MSG_PREHEAT_ABS0 "Esilammita ABS 1" - #define MSG_PREHEAT_ABS1 "Esilammita ABS 2" - #define MSG_PREHEAT_ABS2 "Esilammita ABS 3" - #define MSG_PREHEAT_ABS012 "Esila. ABS Kaikki" - #define MSG_PREHEAT_ABS_BEDONLY "Esila. ABS Alusta" - #define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf" - #define MSG_COOLDOWN "Jaahdyta" - #define MSG_SWITCH_PS_ON "Virta paalle" - #define MSG_SWITCH_PS_OFF "Virta pois" - #define MSG_EXTRUDE "Pursota" - #define MSG_RETRACT "Veda takaisin" - #define MSG_MOVE_AXIS "Liikuta akseleita" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "Nopeus" - #define MSG_NOZZLE "Suutin" - #define MSG_NOZZLE1 "Suutin2" - #define MSG_NOZZLE2 "Suutin3" - #define MSG_BED "Alusta" - #define MSG_FAN_SPEED "Tuul. nopeus" - #define MSG_FLOW "Virtaus" - #define MSG_FLOW0 "Virtaus 0" - #define MSG_FLOW1 "Virtaus 1" - #define MSG_FLOW2 "Virtaus 2" - #define MSG_CONTROL "Kontrolli" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Kerr" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Kiihtyv" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VLiike min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-peruuta" - #define MSG_XSTEPS "Xsteps/mm" - #define MSG_YSTEPS "Ysteps/mm" - #define MSG_ZSTEPS "Zsteps/mm" - #define MSG_ESTEPS "Esteps/mm" - #define MSG_RECTRACT "Veda takaisin" - #define MSG_TEMPERATURE "Lampotila" - #define MSG_MOTION "Liike" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "Tallenna muistiin" - #define MSG_LOAD_EPROM "Lataa muistista" - #define MSG_RESTORE_FAILSAFE "Palauta oletus" - #define MSG_REFRESH "Paivita" - #define MSG_WATCH "Seuraa" - #define MSG_PREPARE "Valmistele" - #define MSG_TUNE "Saada" - #define MSG_PAUSE_PRINT "Keskeyta tulostus" - #define MSG_RESUME_PRINT "Jatka tulostusta" - #define MSG_STOP_PRINT "Pysayta tulostus" - #define MSG_CARD_MENU "Korttivalikko" - #define MSG_NO_CARD "Ei korttia" - #define MSG_DWELL "Nukkumassa..." - #define MSG_USERWAIT "Odotet. valintaa" - #define MSG_RESUMING "Jatke. tulostusta" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Ei liiketta." - #define MSG_KILLED "KILLED. " - #define MSG_STOPPED "STOPPED. " - #define MSG_CONTROL_RETRACT "Veda mm" - #define MSG_CONTROL_RETRACT_SWAP "Va. Veda mm" - #define MSG_CONTROL_RETRACTF "Veda V" - #define MSG_CONTROL_RETRACT_ZLIFT "Z mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Va. UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" - #define MSG_AUTORETRACT "AutoVeto." - #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - -#endif - -#if LANGUAGE_CHOICE == 10 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " parada." - #define MSG_SD_INSERTED "Tarcheta colocada" - #define MSG_SD_REMOVED "Tarcheta retirada" - #define MSG_MAIN "Menu prencipal" - #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS "Amortar motors" - #define MSG_AUTO_HOME "Levar a l'orichen" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Establir zero" - #define MSG_PREHEAT_PLA "Precalentar PLA" - #define MSG_PREHEAT_PLA0 "Precalentar PLA0" - #define MSG_PREHEAT_PLA1 "Precalentar PLA1" - #define MSG_PREHEAT_PLA2 "Precalentar PLA2" - #define MSG_PREHEAT_PLA012 "Precalentar PLA a" - #define MSG_PREHEAT_PLA_BEDONLY "Prec. PLA Base" - #define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA" - #define MSG_PREHEAT_ABS "Precalentar ABS" - #define MSG_PREHEAT_ABS0 "Precalentar ABS0" - #define MSG_PREHEAT_ABS1 "Precalentar ABS1" - #define MSG_PREHEAT_ABS2 "Precalentar ABS2" - #define MSG_PREHEAT_ABS012 "Precalentar ABS a" - #define MSG_PREHEAT_ABS_BEDONLY "Prec. ABS Base" - #define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS" - #define MSG_COOLDOWN "Enfriar" - #define MSG_SWITCH_PS_ON "Enchegar Fuent" - #define MSG_SWITCH_PS_OFF "Desenchegar Fuent" - #define MSG_EXTRUDE "Extruir" - #define MSG_RETRACT "Retraer" - #define MSG_MOVE_AXIS "Mover Eixes" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED "Velocidat" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Base" - #define MSG_FAN_SPEED "Ixoriador" - #define MSG_FLOW "Fluxo" - #define MSG_FLOW0 "Fluxo 0" - #define MSG_FLOW1 "Fluxo 1" - #define MSG_FLOW2 "Fluxo 2" - #define MSG_CONTROL "Control" - #define MSG_MIN "\002 Min" - #define MSG_MAX "\002 Max" - #define MSG_FACTOR "\002 Fact" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On" - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Acel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ves-jerk" - #define MSG_VMAX "Vmax" - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "y" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax" - #define MSG_A_RETRACT "A-retrac." - #define MSG_XSTEPS "X trangos/mm" - #define MSG_YSTEPS "Y trangos/mm" - #define MSG_ZSTEPS "Z trangos/mm" - #define MSG_ESTEPS "E trangos/mm" - #define MSG_RECTRACT "Retraer" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Movimiento" - #define MSG_STORE_EPROM "Alzar Memoria" - #define MSG_LOAD_EPROM "Cargar Memoria" - #define MSG_RESTORE_FAILSAFE "Rest. d'emerchen." - #define MSG_REFRESH "Tornar a cargar" - #define MSG_WATCH "Monitorizar" - #define MSG_PREPARE "Preparar" - #define MSG_TUNE "Achustar" - #define MSG_PAUSE_PRINT "Pausar impresion" - #define MSG_RESUME_PRINT "Contin. impresion" - #define MSG_STOP_PRINT "Detener Impresion" - #define MSG_CARD_MENU "Menu de SD" - #define MSG_NO_CARD "No i hai tarcheta" - #define MSG_DWELL "Reposo..." - #define MSG_USERWAIT "Asperan. ordines" - #define MSG_RESUMING "Contin. impresion" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Sin movimiento" - #define MSG_KILLED "ATURADA D'EMERCH." - #define MSG_STOPPED "ATURADA." - #define MSG_CONTROL_RETRACT "Retraer mm" - #define MSG_CONTROL_RETRACT_SWAP "Swap Retraer mm" - #define MSG_CONTROL_RETRACTF "Retraer F" - #define MSG_CONTROL_RETRACT_ZLIFT "Devantar mm" - #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Cambear" - #define MSG_INIT_SDCARD "Encetan. tarcheta" - #define MSG_CNG_SDCARD "Cambiar tarcheta" - #define MSG_RECTRACT_WIDE "Retraer" - #define MSG_TEMPERATURE_WIDE "Temperatura" - #define MSG_TEMPERATURE_RTN "Temperatura" - #define MSG_MAIN_WIDE "Menu Prencipal" - #define MSG_MOTION_WIDE "Movimiento" - #define MSG_PREPARE_ALT "Preparar" - #define MSG_CONTROL_ARROW "Control" - #define MSG_RETRACT_ARROW "Retraer" - #define MSG_STEPPER_RELEASED "Desacoplada." - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" - -#endif - -#if LANGUAGE_CHOICE == 11 //Dutch - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " gereed." - #define MSG_SD_INSERTED "Kaart ingestoken" - #define MSG_SD_REMOVED "Kaart verwijderd" - #define MSG_MAIN "Main" - #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Motoren uit" - #define MSG_AUTO_HOME "Auto home" - #define MSG_SET_HOME_OFFSETS "Set home offsets" - #define MSG_SET_ORIGIN "Nulpunt instellen" - #define MSG_PREHEAT_PLA "PLA voorverwarmen" - #define MSG_PREHEAT_PLA0 "PLA voorverw. 0" - #define MSG_PREHEAT_PLA1 "PLA voorverw. 1" - #define MSG_PREHEAT_PLA2 "PLA voorverw. 2" - #define MSG_PREHEAT_PLA012 "PLA voorverw. aan" - #define MSG_PREHEAT_PLA_BEDONLY "PLA voorverw. Bed" - #define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf" - #define MSG_PREHEAT_ABS "ABS voorverwarmen" - #define MSG_PREHEAT_ABS0 "ABS voorverw. 0" - #define MSG_PREHEAT_ABS1 "ABS voorverw. 1" - #define MSG_PREHEAT_ABS2 "ABS voorverw. 2" - #define MSG_PREHEAT_ABS012 "ABS voorverw. aan" - #define MSG_PREHEAT_ABS_BEDONLY "ABS voorverw. Bed" - #define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf" - #define MSG_COOLDOWN "Afkoelen" - #define MSG_SWITCH_PS_ON "Stroom aan" - #define MSG_SWITCH_PS_OFF "Stroom uit" - #define MSG_EXTRUDE "Extrude" - #define MSG_RETRACT "Retract" - #define MSG_MOVE_AXIS "As verplaatsen" - #define MSG_MOVE_X "Verplaats X" - #define MSG_MOVE_Y "Verplaats Y" - #define MSG_MOVE_Z "Verplaats Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Verplaats 0.1mm" - #define MSG_MOVE_1MM "Verplaats 1mm" - #define MSG_MOVE_10MM "Verplaats 10mm" - #define MSG_SPEED "Snelheid" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Bed" - #define MSG_FAN_SPEED "Fan snelheid" - #define MSG_FLOW "Flow" - #define MSG_FLOW0 "Flow 0" - #define MSG_FLOW1 "Flow 1" - #define MSG_FLOW2 "Flow 2" - #define MSG_CONTROL "Control" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Fact" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "Aan " - #define MSG_OFF "Uit" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Versn" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract" - #define MSG_XSTEPS "Xsteps/mm" - #define MSG_YSTEPS "Ysteps/mm" - #define MSG_ZSTEPS "Zsteps/mm" - #define MSG_ESTEPS "Esteps/mm" - #define MSG_RECTRACT "Terugtrekken" - #define MSG_TEMPERATURE "Temperatuur" - #define MSG_MOTION "Beweging" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM "Geheugen opslaan" - #define MSG_LOAD_EPROM "Geheugen laden" - #define MSG_RESTORE_FAILSAFE "Noodstop reset" - #define MSG_REFRESH "Ververs" - #define MSG_WATCH "Info scherm" - #define MSG_PREPARE "Voorbereiden" - #define MSG_TUNE "Afstellen" - #define MSG_PAUSE_PRINT "Print pauzeren" - #define MSG_RESUME_PRINT "Print hervatten" - #define MSG_STOP_PRINT "Print stoppen" - #define MSG_CARD_MENU "Print van SD" - #define MSG_NO_CARD "Geen SD kaart" - #define MSG_DWELL "Slapen..." - #define MSG_USERWAIT "Wachten..." - #define MSG_RESUMING "Print hervatten" - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Geen beweging." - #define MSG_KILLED "AFGEBROKEN. " - #define MSG_STOPPED "GESTOPT. " - #define MSG_CONTROL_RETRACT "Retract mm" - #define MSG_CONTROL_RETRACT_SWAP "Ruil Retract mm" - #define MSG_CONTROL_RETRACTF "Retract F" - #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" - #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ruil UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Verv. Filament" - #define MSG_INIT_SDCARD "Init. SD kaart" - #define MSG_CNG_SDCARD "Verv. SD card" - #define MSG_ZPROBE_OUT "Z probe uit. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y voor Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystap X" - #define MSG_BABYSTEP_Y "Babystap Y" - #define MSG_BABYSTEP_Z "Babystap Z" - #define MSG_ENDSTOP_ABORT "Endstop afbr." - -#endif - - -#if LANGUAGE_CHOICE == 12 - -// LCD Menu Messages - -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " preparada." - #define MSG_SD_INSERTED "SD detectada." - #define MSG_SD_REMOVED "SD expulsada." - #define MSG_MAIN "Menu principal" - #define MSG_AUTOSTART "Inici automatic" - #define MSG_DISABLE_STEPPERS "Apagar motors" - #define MSG_AUTO_HOME "Home global" - #define MSG_SET_ORIGIN "Establir origen" - #define MSG_PREHEAT_PLA "Preescalfar PLA" - #define MSG_PREHEAT_PLA0 "Preescalfar PLA 1" - #define MSG_PREHEAT_PLA1 "Preescalfar PLA 2" - #define MSG_PREHEAT_PLA2 "Preescalfar PLA 3" - #define MSG_PREHEAT_PLA012 "Preesc. tot PLA" - #define MSG_PREHEAT_PLA_BEDONLY "Preesc. llit PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Configuració PLA" - #define MSG_PREHEAT_ABS "Preescalfar ABS" - #define MSG_PREHEAT_ABS0 "Preescalfar ABS 1" - #define MSG_PREHEAT_ABS1 "Preescalfar ABS 2" - #define MSG_PREHEAT_ABS2 "Preescalfar ABS 3" - #define MSG_PREHEAT_ABS012 "Preesc. tot ABS" - #define MSG_PREHEAT_ABS_BEDONLY "Preesc. llit ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Configuració ABS" - #define MSG_COOLDOWN "Refredar" - #define MSG_SWITCH_PS_ON "Switch power on" - #define MSG_SWITCH_PS_OFF "Switch power off" - #define MSG_EXTRUDE "Extruir" - #define MSG_RETRACT "Refredar" - #define MSG_MOVE_AXIS "Moure eixos" - #define MSG_MOVE_X "Moure X" - #define MSG_MOVE_Y "Moure Y" - #define MSG_MOVE_Z "Moure Z" - #define MSG_MOVE_E "Extrusor" - #define MSG_MOVE_E1 "Extruder2" - #define MSG_MOVE_E2 "Extruder3" - #define MSG_MOVE_01MM "Moure 0.1mm" - #define MSG_MOVE_1MM "Moure 1mm" - #define MSG_MOVE_10MM "Moure 10mm" - #define MSG_SPEED "Velocitat" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Llit" - #define MSG_FAN_SPEED "Vel. Ventilador" - #define MSG_FLOW "Fluxe" - #define MSG_FLOW0 "Fluxe 0" - #define MSG_FLOW1 "Fluxe 1" - #define MSG_FLOW2 "Fluxe 2" - #define MSG_CONTROL "Control" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Fact" - #define MSG_AUTOTEMP "Autotemp" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Accel" - #define MSG_VXY_JERK "Vxy-jerk" - #define MSG_VZ_JERK "Vz-jerk" - #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retract" - #define MSG_XSTEPS "Xpassos/mm" - #define MSG_YSTEPS "Ypassos/mm" - #define MSG_ZSTEPS "Zpassos/mm" - #define MSG_ESTEPS "Epassos/mm" - #define MSG_RECTRACT "Retreure" - #define MSG_TEMPERATURE "Temperatura" - #define MSG_MOTION "Moviment" - #define MSG_CONTRAST "Contrast de LCD" - #define MSG_STORE_EPROM "Desar a memoria" - #define MSG_LOAD_EPROM "Carregar de mem." - #define MSG_RESTORE_FAILSAFE "Rest. emergencia" - #define MSG_REFRESH "Refrescar" - #define MSG_WATCH "Pantalla Info." - #define MSG_PREPARE "Preparar" - #define MSG_TUNE "Calibrar" - #define MSG_PAUSE_PRINT "Pausa imp." - #define MSG_RESUME_PRINT "Reprendre imp." - #define MSG_STOP_PRINT "Parar inp." - #define MSG_CARD_MENU "Imprimir de SD" - #define MSG_NO_CARD "-Sense targeta SD" - #define MSG_DWELL "Repos..." - #define MSG_USERWAIT "Esperant usuari.." - #define MSG_RESUMING "Reprenent imp." - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Sense moviment." - #define MSG_KILLED "PARADA DE EMERG. " - #define MSG_STOPPED "ATURAT. " - #define MSG_CONTROL_RETRACT "Retreure mm" - #define MSG_CONTROL_RETRACT_SWAP "Swap Retreure mm" - #define MSG_CONTROL_RETRACTF "Retreure F" - #define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm" - #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Canviar filament" - #define MSG_INIT_SDCARD "Iniciant SD" - #define MSG_CNG_SDCARD "Canviar SD" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y abans Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - -#endif - -//Basque-Euskera -#if LANGUAGE_CHOICE == 13 - -// LCD Menu Messages -// Please note these are limited to 17 characters! - - #define WELCOME_MSG MACHINE_NAME " prest." - #define MSG_SD_INSERTED "Txartela sartuta" - #define MSG_SD_REMOVED "Txartela kenduta" - #define MSG_MAIN "Menu nagusia" - #define MSG_AUTOSTART "Auto hasiera" - #define MSG_DISABLE_STEPPERS "Itzali motoreak" - #define MSG_AUTO_HOME "Hasierara joan" - #define MSG_SET_ORIGIN "Hasiera ipini" - #define MSG_PREHEAT_PLA "Aurreberotu PLA" - #define MSG_PREHEAT_PLA0 "Aurreberotu PLA1" - #define MSG_PREHEAT_PLA1 "Aurreberotu PLA2" - #define MSG_PREHEAT_PLA2 "Aurreberotu PLA3" - #define MSG_PREHEAT_PLA012 "Berotu PLA Guztia" - #define MSG_PREHEAT_PLA_BEDONLY "Berotu PLA Ohea" - #define MSG_PREHEAT_PLA_SETTINGS "Berotu PLA Konfig" - #define MSG_PREHEAT_ABS "Aurreberotu ABS" - #define MSG_PREHEAT_ABS0 "Aurreberotu ABS 1" - #define MSG_PREHEAT_ABS1 "Aurreberotu ABS 2" - #define MSG_PREHEAT_ABS2 "Aurreberotu ABS 3" - #define MSG_PREHEAT_ABS012 "Berotu ABS Guztia" - #define MSG_PREHEAT_ABS_BEDONLY "Berotu ABS Ohea" - #define MSG_PREHEAT_ABS_SETTINGS "Berotu ABS Konfig" - #define MSG_COOLDOWN "Hoztu" - #define MSG_SWITCH_PS_ON "Energia piztu" - #define MSG_SWITCH_PS_OFF "Energia itzali" - #define MSG_EXTRUDE "Estruitu" - #define MSG_RETRACT "Atzera eragin" - #define MSG_MOVE_AXIS "Ardatzak mugitu" - #define MSG_MOVE_X "Mugitu X" - #define MSG_MOVE_Y "Mugitu Y" - #define MSG_MOVE_Z "Mugitu Z" - #define MSG_MOVE_E "Estrusorea" - #define MSG_MOVE_E1 "Estrusorea2" - #define MSG_MOVE_E2 "Estrusorea3" - #define MSG_MOVE_01MM "Mugitu 0.1mm" - #define MSG_MOVE_1MM "Mugitu 1mm" - #define MSG_MOVE_10MM "Mugitu 10mm" - #define MSG_SPEED "Abiadura" - #define MSG_NOZZLE "Pita" - #define MSG_NOZZLE1 "Pita2" - #define MSG_NOZZLE2 "Pita3" - #define MSG_BED "Ohea" - #define MSG_FAN_SPEED "Haizagailua" - #define MSG_FLOW "Fluxua" - #define MSG_FLOW0 "Fluxua 0" - #define MSG_FLOW1 "Fluxua 1" - #define MSG_FLOW2 "Fluxua 2" - #define MSG_CONTROL "Kontrola" - #define MSG_MIN " \002 Min" - #define MSG_MAX " \002 Max" - #define MSG_FACTOR " \002 Faktorea" - #define MSG_AUTOTEMP "Auto tenperatura" - #define MSG_ON "On " - #define MSG_OFF "Off" - #define MSG_PID_P "PID-P" - #define MSG_PID_I "PID-I" - #define MSG_PID_D "PID-D" - #define MSG_PID_C "PID-C" - #define MSG_ACC "Azelerazioa" - #define MSG_VXY_JERK "Vxy-astindua" - #define MSG_VZ_JERK "Vz-astindua" - #define MSG_VE_JERK "Ve-astindua" - #define MSG_VMAX "Vmax " - #define MSG_X "x" - #define MSG_Y "y" - #define MSG_Z "z" - #define MSG_E "e" - #define MSG_VMIN "Vmin" - #define MSG_VTRAV_MIN "VTrav min" - #define MSG_AMAX "Amax " - #define MSG_A_RETRACT "A-retrakt" - #define MSG_XSTEPS "X pausoak/mm" - #define MSG_YSTEPS "Y pausoak/mm" - #define MSG_ZSTEPS "Z pausoak/mm" - #define MSG_ESTEPS "E pausoak/mm" - #define MSG_RECTRACT "Atzera eragin" - #define MSG_TEMPERATURE "Tenperatura" - #define MSG_MOTION "Mugimendua" - #define MSG_CONTRAST "LCD kontrastea" - #define MSG_STORE_EPROM "Gorde memoria" - #define MSG_LOAD_EPROM "Kargatu memoria" - #define MSG_RESTORE_FAILSAFE "Larri. berriz." - #define MSG_REFRESH "Berriz kargatu" - #define MSG_WATCH "Pantaila info" - #define MSG_PREPARE "Prestatu" - #define MSG_TUNE "Doitu" - #define MSG_PAUSE_PRINT "Pausatu inprimak." - #define MSG_RESUME_PRINT "Jarraitu inprima." - #define MSG_STOP_PRINT "Gelditu inprima." - #define MSG_CARD_MENU "SD-tik inprimatu" - #define MSG_NO_CARD "Ez dago txartelik" - #define MSG_DWELL "Lo egin..." - #define MSG_USERWAIT "Aginduak zain..." - #define MSG_RESUMING "Jarraitzen inpri." - #define MSG_PRINT_ABORTED "Print aborted" - #define MSG_NO_MOVE "Mugimendu gabe" - #define MSG_KILLED "LARRIALDI GELDIA" - #define MSG_STOPPED "GELDITUTA. " - #define MSG_CONTROL_RETRACT "Atzera egin mm" - #define MSG_CONTROL_RETRACT_SWAP "Swap Atzera egin mm" - #define MSG_CONTROL_RETRACTF "Atzera egin V" - #define MSG_CONTROL_RETRACT_ZLIFT "Igo mm" - #define MSG_CONTROL_RETRACT_RECOVER "Atzera egin +mm" - #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap Atzera egin +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "Atzera egin V" - #define MSG_AUTORETRACT "Atzera egin" - #define MSG_FILAMENTCHANGE "Aldatu filament." - #define MSG_INIT_SDCARD "Hasieratu txartela" - #define MSG_CNG_SDCARD "Aldatu txartela" - #define MSG_ZPROBE_OUT "Z ohe hasiera" - #define MSG_POSITION_UNKNOWN "Posizio ezezaguna" - #define MSG_ZPROBE_ZOFFSET "Z konpentsatu" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop deuseztat" - +#if LANGUAGE_CHOICE == en // English + #include "language_en.h" +#elif LANGUAGE_CHOICE == pl // Polish + #include "language_pl.h" +#elif LANGUAGE_CHOICE == fr // French + #include "language_fr.h" +#elif LANGUAGE_CHOICE == de // German + #include "language_de.h" +#elif LANGUAGE_CHOICE == es // Spanish + #include "language_es.h" +#elif LANGUAGE_CHOICE == ru // Russian + #include "language_ru.h" +#elif LANGUAGE_CHOICE == it // Italian + #include "language_it.h" +#elif LANGUAGE_CHOICE == pt // Portuguese + #include "language_pt.h" +#elif LANGUAGE_CHOICE == fi // Finnish + #include "language_fi.h" +#elif LANGUAGE_CHOICE == an // Aragonese + #include "language_an.h" +#elif LANGUAGE_CHOICE == nl // Dutch + #include "language_nl.h" +#elif LANGUAGE_CHOICE == ca // Catalan + #include "language_ca.h" +#elif LANGUAGE_CHOICE == eu // Basque-Euskera + #include "language_eu.h" #endif #endif // ifndef LANGUAGE_H diff --git a/Marlin/language_an.h b/Marlin/language_an.h new file mode 100644 index 000000000..3bfd23d00 --- /dev/null +++ b/Marlin/language_an.h @@ -0,0 +1,135 @@ +#ifndef LANGUAGE_AN_H +#define LANGUAGE_AN_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " parada." +#define MSG_SD_INSERTED "Tarcheta colocada" +#define MSG_SD_REMOVED "Tarcheta retirada" +#define MSG_MAIN "Menu prencipal" +#define MSG_AUTOSTART " Autostart" +#define MSG_DISABLE_STEPPERS "Amortar motors" +#define MSG_AUTO_HOME "Levar a l'orichen" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Establir zero" +#define MSG_PREHEAT_PLA "Precalentar PLA" +#define MSG_PREHEAT_PLA0 "Precalentar PLA0" +#define MSG_PREHEAT_PLA1 "Precalentar PLA1" +#define MSG_PREHEAT_PLA2 "Precalentar PLA2" +#define MSG_PREHEAT_PLA012 "Precalentar PLA a" +#define MSG_PREHEAT_PLA_BEDONLY "Prec. PLA Base" +#define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA" +#define MSG_PREHEAT_ABS "Precalentar ABS" +#define MSG_PREHEAT_ABS0 "Precalentar ABS0" +#define MSG_PREHEAT_ABS1 "Precalentar ABS1" +#define MSG_PREHEAT_ABS2 "Precalentar ABS2" +#define MSG_PREHEAT_ABS012 "Precalentar ABS a" +#define MSG_PREHEAT_ABS_BEDONLY "Prec. ABS Base" +#define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS" +#define MSG_COOLDOWN "Enfriar" +#define MSG_SWITCH_PS_ON "Enchegar Fuent" +#define MSG_SWITCH_PS_OFF "Desenchegar Fuent" +#define MSG_EXTRUDE "Extruir" +#define MSG_RETRACT "Retraer" +#define MSG_MOVE_AXIS "Mover Eixes" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Velocidat" +#define MSG_NOZZLE "Nozzle" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Base" +#define MSG_FAN_SPEED "Ixoriador" +#define MSG_FLOW "Fluxo" +#define MSG_FLOW0 "Fluxo 0" +#define MSG_FLOW1 "Fluxo 1" +#define MSG_FLOW2 "Fluxo 2" +#define MSG_CONTROL "Control" +#define MSG_MIN "\002 Min" +#define MSG_MAX "\002 Max" +#define MSG_FACTOR "\002 Fact" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On" +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Acel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ves-jerk" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "y" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax" +#define MSG_A_RETRACT "A-retrac." +#define MSG_XSTEPS "X trangos/mm" +#define MSG_YSTEPS "Y trangos/mm" +#define MSG_ZSTEPS "Z trangos/mm" +#define MSG_ESTEPS "E trangos/mm" +#define MSG_RECTRACT "Retraer" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Movimiento" +#define MSG_CONTRAST "Contrast" +#define MSG_STORE_EPROM "Alzar Memoria" +#define MSG_LOAD_EPROM "Cargar Memoria" +#define MSG_RESTORE_FAILSAFE "Rest. d'emerchen." +#define MSG_REFRESH "Tornar a cargar" +#define MSG_WATCH "Monitorizar" +#define MSG_PREPARE "Preparar" +#define MSG_TUNE "Achustar" +#define MSG_PAUSE_PRINT "Pausar impresion" +#define MSG_RESUME_PRINT "Contin. impresion" +#define MSG_STOP_PRINT "Detener Impresion" +#define MSG_CARD_MENU "Menu de SD" +#define MSG_NO_CARD "No i hai tarcheta" +#define MSG_DWELL "Reposo..." +#define MSG_USERWAIT "Asperan. ordines" +#define MSG_RESUMING "Contin. impresion" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Sin movimiento" +#define MSG_KILLED "ATURADA D'EMERCH." +#define MSG_STOPPED "ATURADA." +#define MSG_CONTROL_RETRACT "Retraer mm" +#define MSG_CONTROL_RETRACT_SWAP "Swap Retraer mm" +#define MSG_CONTROL_RETRACTF "Retraer F" +#define MSG_CONTROL_RETRACT_ZLIFT "Devantar mm" +#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Cambear" +#define MSG_INIT_SDCARD "Encetan. tarcheta" +#define MSG_CNG_SDCARD "Cambiar tarcheta" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" + +#define MSG_RECTRACT_WIDE "Retraer" +#define MSG_TEMPERATURE_WIDE "Temperatura" +#define MSG_TEMPERATURE_RTN "Temperatura" +#define MSG_MAIN_WIDE "Menu Prencipal" +#define MSG_MOTION_WIDE "Movimiento" +#define MSG_PREPARE_ALT "Preparar" +#define MSG_CONTROL_ARROW "Control" +#define MSG_RETRACT_ARROW "Retraer" +#define MSG_STEPPER_RELEASED "Desacoplada." + +#endif // LANGUAGE_AN_H diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h new file mode 100644 index 000000000..3bda222c9 --- /dev/null +++ b/Marlin/language_ca.h @@ -0,0 +1,125 @@ +#ifndef LANGUAGE_CA_H +#define LANGUAGE_CA_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " preparada." +#define MSG_SD_INSERTED "SD detectada." +#define MSG_SD_REMOVED "SD expulsada." +#define MSG_MAIN "Menu principal" +#define MSG_AUTOSTART "Inici automatic" +#define MSG_DISABLE_STEPPERS "Apagar motors" +#define MSG_AUTO_HOME "Home global" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Establir origen" +#define MSG_PREHEAT_PLA "Preescalfar PLA" +#define MSG_PREHEAT_PLA0 "Preescalfar PLA 1" +#define MSG_PREHEAT_PLA1 "Preescalfar PLA 2" +#define MSG_PREHEAT_PLA2 "Preescalfar PLA 3" +#define MSG_PREHEAT_PLA012 "Preesc. tot PLA" +#define MSG_PREHEAT_PLA_BEDONLY "Preesc. llit PLA" +#define MSG_PREHEAT_PLA_SETTINGS "Configuració PLA" +#define MSG_PREHEAT_ABS "Preescalfar ABS" +#define MSG_PREHEAT_ABS0 "Preescalfar ABS 1" +#define MSG_PREHEAT_ABS1 "Preescalfar ABS 2" +#define MSG_PREHEAT_ABS2 "Preescalfar ABS 3" +#define MSG_PREHEAT_ABS012 "Preesc. tot ABS" +#define MSG_PREHEAT_ABS_BEDONLY "Preesc. llit ABS" +#define MSG_PREHEAT_ABS_SETTINGS "Configuració ABS" +#define MSG_COOLDOWN "Refredar" +#define MSG_SWITCH_PS_ON "Switch power on" +#define MSG_SWITCH_PS_OFF "Switch power off" +#define MSG_EXTRUDE "Extruir" +#define MSG_RETRACT "Refredar" +#define MSG_MOVE_AXIS "Moure eixos" +#define MSG_MOVE_X "Moure X" +#define MSG_MOVE_Y "Moure Y" +#define MSG_MOVE_Z "Moure Z" +#define MSG_MOVE_E "Extrusor" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Moure 0.1mm" +#define MSG_MOVE_1MM "Moure 1mm" +#define MSG_MOVE_10MM "Moure 10mm" +#define MSG_SPEED "Velocitat" +#define MSG_NOZZLE "Nozzle" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Llit" +#define MSG_FAN_SPEED "Vel. Ventilador" +#define MSG_FLOW "Fluxe" +#define MSG_FLOW0 "Fluxe 0" +#define MSG_FLOW1 "Fluxe 1" +#define MSG_FLOW2 "Fluxe 2" +#define MSG_CONTROL "Control" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Fact" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Accel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xpassos/mm" +#define MSG_YSTEPS "Ypassos/mm" +#define MSG_ZSTEPS "Zpassos/mm" +#define MSG_ESTEPS "Epassos/mm" +#define MSG_RECTRACT "Retreure" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Moviment" +#define MSG_CONTRAST "Contrast de LCD" +#define MSG_STORE_EPROM "Desar a memoria" +#define MSG_LOAD_EPROM "Carregar de mem." +#define MSG_RESTORE_FAILSAFE "Rest. emergencia" +#define MSG_REFRESH "Refrescar" +#define MSG_WATCH "Pantalla Info." +#define MSG_PREPARE "Preparar" +#define MSG_TUNE "Calibrar" +#define MSG_PAUSE_PRINT "Pausa imp." +#define MSG_RESUME_PRINT "Reprendre imp." +#define MSG_STOP_PRINT "Parar inp." +#define MSG_CARD_MENU "Imprimir de SD" +#define MSG_NO_CARD "-Sense targeta SD" +#define MSG_DWELL "Repos..." +#define MSG_USERWAIT "Esperant usuari.." +#define MSG_RESUMING "Reprenent imp." +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Sense moviment." +#define MSG_KILLED "PARADA DE EMERG. " +#define MSG_STOPPED "ATURAT. " +#define MSG_CONTROL_RETRACT "Retreure mm" +#define MSG_CONTROL_RETRACT_SWAP "Swap Retreure mm" +#define MSG_CONTROL_RETRACTF "Retreure F" +#define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm" +#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Canviar filament" +#define MSG_INIT_SDCARD "Iniciant SD" +#define MSG_CNG_SDCARD "Canviar SD" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y abans Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" + +#endif // LANGUAGE_CA_H diff --git a/Marlin/language_de.h b/Marlin/language_de.h new file mode 100644 index 000000000..43861c1af --- /dev/null +++ b/Marlin/language_de.h @@ -0,0 +1,128 @@ +#ifndef LANGUAGE_DE_H +#define LANGUAGE_DE_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " Bereit." +#define MSG_SD_INSERTED "SDKarte erkannt" +#define MSG_SD_REMOVED "SDKarte entfernt" +#define MSG_MAIN "Hauptmenü" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Stepper abschalt." +#define MSG_AUTO_HOME "Auto Nullpunkt" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Setze Nullpunkt" +#define MSG_PREHEAT_PLA "Vorwärmen PLA" +#define MSG_PREHEAT_PLA0 "Vorwärmen PLA 1" +#define MSG_PREHEAT_PLA1 "Vorwärmen PLA 2" +#define MSG_PREHEAT_PLA2 "Vorwärmen PLA 3" +#define MSG_PREHEAT_PLA012 "Vorw. PLA Alle" +#define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett" +#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein." +#define MSG_PREHEAT_ABS "Vorwärmen ABS" +#define MSG_PREHEAT_ABS0 "Vorwärmen ABS 1" +#define MSG_PREHEAT_ABS1 "Vorwärmen ABS 2" +#define MSG_PREHEAT_ABS2 "Vorwärmen ABS 3" +#define MSG_PREHEAT_ABS012 "Vorw. ABS Alle" +#define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett" +#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein." +#define MSG_COOLDOWN "Abkühlen" +#define MSG_SWITCH_PS_ON "Switch Power On" +#define MSG_SWITCH_PS_OFF "Switch Power Off" +#define MSG_EXTRUDE "Extrude" +#define MSG_RETRACT "Retract" +#define MSG_MOVE_AXIS "Achsen bewegen" +#define MSG_MOVE_X "X bewegen" +#define MSG_MOVE_Y "Y bewegen" +#define MSG_MOVE_Z "Z bewegen" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "0.1mm bewegen" +#define MSG_MOVE_1MM "1mm bewegen" +#define MSG_MOVE_10MM "10mm bewegen" +#define MSG_SPEED "Geschw" +#define MSG_NOZZLE "Düse" +#define MSG_NOZZLE1 "Düse2" +#define MSG_NOZZLE2 "Düse3" +#define MSG_BED "Bett" +#define MSG_FAN_SPEED "Lüftergeschw." +#define MSG_FLOW "Fluss" +#define MSG_FLOW0 "Fluss 0" +#define MSG_FLOW1 "Fluss 1" +#define MSG_FLOW2 "Fluss 2" +#define MSG_CONTROL "Einstellungen" +#define MSG_MIN "\002 Min" +#define MSG_MAX "\002 Max" +#define MSG_FACTOR "\002 Faktor" +#define MSG_AUTOTEMP "AutoTemp" +#define MSG_ON "Ein" +#define MSG_OFF "Aus" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Acc" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-Retract" +#define MSG_XSTEPS "Xsteps/mm" +#define MSG_YSTEPS "Ysteps/mm" +#define MSG_ZSTEPS "Zsteps/mm" +#define MSG_ESTEPS "Esteps/mm" +#define MSG_RECTRACT_WIDE "Rectract" +#define MSG_WATCH "Beobachten" +#define MSG_TEMPERATURE "Temperatur" +#define MSG_MOTION "Bewegung" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "EPROM speichern" +#define MSG_LOAD_EPROM "EPROM laden" +#define MSG_RESTORE_FAILSAFE "Standardkonfig." +#define MSG_REFRESH "Aktualisieren" +#define MSG_PREPARE "Vorbereitung" +#define MSG_CONTROL "Einstellungen" +#define MSG_TUNE "Justierung" +#define MSG_PAUSE_PRINT "Druck anhalten" +#define MSG_RESUME_PRINT "Druck fortsetz" +#define MSG_STOP_PRINT "Druck stoppen" +#define MSG_CARD_MENU "SDKarten Menü" +#define MSG_NO_CARD "Keine SDKarte" +#define MSG_DWELL "Warten..." +#define MSG_USERWAIT "Warte auf Nutzer" +#define MSG_RESUMING "Druck fortsetzung" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Kein Zug." +#define MSG_KILLED "KILLED" +#define MSG_STOPPED "GESTOPPT" +#define MSG_STEPPER_RELEASED "Stepper frei" +#define MSG_CONTROL_RETRACT "Retract mm" +#define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm" +#define MSG_CONTROL_RETRACTF "Retract V" +#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Wechs. UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Filament wechseln" +#define MSG_INIT_SDCARD "Init. SD-Card" +#define MSG_CNG_SDCARD "Change SD-Card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_CONTRAST "Contrast" + +#endif // LANGUAGE_DE_H diff --git a/Marlin/language_en.h b/Marlin/language_en.h new file mode 100644 index 000000000..5da470839 --- /dev/null +++ b/Marlin/language_en.h @@ -0,0 +1,125 @@ +#ifndef LANGUAGE_CA_H +#define LANGUAGE_CA_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " ready." +#define MSG_SD_INSERTED "Card inserted" +#define MSG_SD_REMOVED "Card removed" +#define MSG_MAIN "Main" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Disable steppers" +#define MSG_AUTO_HOME "Auto home" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Set origin" +#define MSG_PREHEAT_PLA "Preheat PLA" +#define MSG_PREHEAT_PLA0 "Preheat PLA 1" +#define MSG_PREHEAT_PLA1 "Preheat PLA 2" +#define MSG_PREHEAT_PLA2 "Preheat PLA 3" +#define MSG_PREHEAT_PLA012 "Preheat PLA All" +#define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed" +#define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf" +#define MSG_PREHEAT_ABS "Preheat ABS" +#define MSG_PREHEAT_ABS0 "Preheat ABS 1" +#define MSG_PREHEAT_ABS1 "Preheat ABS 2" +#define MSG_PREHEAT_ABS2 "Preheat ABS 3" +#define MSG_PREHEAT_ABS012 "Preheat ABS All" +#define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed" +#define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf" +#define MSG_COOLDOWN "Cooldown" +#define MSG_SWITCH_PS_ON "Switch power on" +#define MSG_SWITCH_PS_OFF "Switch power off" +#define MSG_EXTRUDE "Extrude" +#define MSG_RETRACT "Retract" +#define MSG_MOVE_AXIS "Move axis" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Speed" +#define MSG_NOZZLE "Nozzle" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Bed" +#define MSG_FAN_SPEED "Fan speed" +#define MSG_FLOW "Flow" +#define MSG_FLOW0 "Flow 0" +#define MSG_FLOW1 "Flow 1" +#define MSG_FLOW2 "Flow 2" +#define MSG_CONTROL "Control" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Fact" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Accel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xsteps/mm" +#define MSG_YSTEPS "Ysteps/mm" +#define MSG_ZSTEPS "Zsteps/mm" +#define MSG_ESTEPS "Esteps/mm" +#define MSG_RECTRACT "Rectract" +#define MSG_TEMPERATURE "Temperature" +#define MSG_MOTION "Motion" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "Store memory" +#define MSG_LOAD_EPROM "Load memory" +#define MSG_RESTORE_FAILSAFE "Restore failsafe" +#define MSG_REFRESH "Refresh" +#define MSG_WATCH "Info screen" +#define MSG_PREPARE "Prepare" +#define MSG_TUNE "Tune" +#define MSG_PAUSE_PRINT "Pause print" +#define MSG_RESUME_PRINT "Resume print" +#define MSG_STOP_PRINT "Stop print" +#define MSG_CARD_MENU "Print from SD" +#define MSG_NO_CARD "No SD card" +#define MSG_DWELL "Sleep..." +#define MSG_USERWAIT "Wait for user..." +#define MSG_RESUMING "Resuming print" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "No move." +#define MSG_KILLED "KILLED. " +#define MSG_STOPPED "STOPPED. " +#define MSG_CONTROL_RETRACT "Retract mm" +#define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm" +#define MSG_CONTROL_RETRACTF "Retract V" +#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Change filament" +#define MSG_INIT_SDCARD "Init. SD card" +#define MSG_CNG_SDCARD "Change SD card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" + +#endif // LANGUAGE_CA_H diff --git a/Marlin/language_es.h b/Marlin/language_es.h new file mode 100644 index 000000000..1989a759d --- /dev/null +++ b/Marlin/language_es.h @@ -0,0 +1,134 @@ +#ifndef LANGUAGE_ES_H +#define LANGUAGE_ES_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " lista." +#define MSG_SD_INSERTED "Tarjeta colocada" +#define MSG_SD_REMOVED "Tarjeta retirada" +#define MSG_MAIN "Menu principal" +#define MSG_AUTOSTART " Autostart" +#define MSG_DISABLE_STEPPERS "Apagar motores" +#define MSG_AUTO_HOME "Llevar al origen" +#define MSG_SET_HOME_OFFSETS "Ajustar offsets" +#define MSG_SET_ORIGIN "Establecer cero" +#define MSG_PREHEAT_PLA "Precalentar PLA" +#define MSG_PREHEAT_PLA0 "Precalentar PLA 1" +#define MSG_PREHEAT_PLA1 "Precalentar PLA 2" +#define MSG_PREHEAT_PLA2 "Precalentar PLA 3" +#define MSG_PREHEAT_PLA012 "Precal. PLA Todo" +#define MSG_PREHEAT_PLA_BEDONLY "Precal. PLA Base" +#define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA" +#define MSG_PREHEAT_ABS "Precalentar ABS" +#define MSG_PREHEAT_ABS0 "Precalentar ABS 1" +#define MSG_PREHEAT_ABS1 "Precalentar ABS 2" +#define MSG_PREHEAT_ABS2 "Precalentar ABS 3" +#define MSG_PREHEAT_ABS012 "Precal. ABS Todo" +#define MSG_PREHEAT_ABS_BEDONLY "Precal. ABS Base" +#define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS" +#define MSG_COOLDOWN "Enfriar" +#define MSG_SWITCH_PS_ON "Encender" +#define MSG_SWITCH_PS_OFF "Apagar" +#define MSG_EXTRUDE "Extruir" +#define MSG_RETRACT "Retraer" +#define MSG_MOVE_AXIS "Mover ejes" +#define MSG_MOVE_X "Mover X" +#define MSG_MOVE_Y "Mover Y" +#define MSG_MOVE_Z "Mover Z" +#define MSG_MOVE_E "Extrusor" +#define MSG_MOVE_E1 "Extrusor2" +#define MSG_MOVE_E2 "Extrusor3" +#define MSG_MOVE_01MM "Mover 0.1mm" +#define MSG_MOVE_1MM "Mover 1mm" +#define MSG_MOVE_10MM "Mover 10mm" +#define MSG_SPEED "Velocidad" +#define MSG_NOZZLE "Nozzle" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Base" +#define MSG_FAN_SPEED "Ventilador" +#define MSG_FLOW "Flujo" +#define MSG_FLOW0 "Flujo 0" +#define MSG_FLOW1 "Flujo 1" +#define MSG_FLOW2 "Flujo 2" +#define MSG_CONTROL "Control" +#define MSG_MIN "\002 Min" +#define MSG_MAX "\002 Max" +#define MSG_FACTOR "\002 Fact" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On" +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Acel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "Vvacio min" +#define MSG_AMAX "Amax" +#define MSG_A_RETRACT "A-retrac." +#define MSG_XSTEPS "X pasos/mm" +#define MSG_YSTEPS "Y pasos/mm" +#define MSG_ZSTEPS "Z pasos/mm" +#define MSG_ESTEPS "E pasos/mm" +#define MSG_RECTRACT "Retraer" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Movimiento" +#define MSG_STORE_EPROM "Guardar memoria" +#define MSG_LOAD_EPROM "Cargar memoria" +#define MSG_RESTORE_FAILSAFE "Rest. de emergen." +#define MSG_REFRESH "Volver a cargar" +#define MSG_WATCH "Monitorizar" +#define MSG_PREPARE "Preparar" +#define MSG_TUNE "Ajustar" +#define MSG_PAUSE_PRINT "Pausar impresion" +#define MSG_RESUME_PRINT "Reanudar impres." +#define MSG_STOP_PRINT "Detener impresion" +#define MSG_CARD_MENU "Menu de SD" +#define MSG_NO_CARD "No hay tarjeta SD" +#define MSG_DWELL "Reposo..." +#define MSG_USERWAIT "Esperando ordenes" +#define MSG_RESUMING "Resumiendo impre." +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Sin movimiento" +#define MSG_KILLED "PARADA DE EMERG." +#define MSG_STOPPED "PARADA" +#define MSG_CONTROL_RETRACT "Retraer mm" +#define MSG_CONTROL_RETRACT_SWAP "Interc. Retraer mm" +#define MSG_CONTROL_RETRACTF "Retraer V" +#define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm" +#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Interc. DesRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "DesRet V" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Cambiar filamento" +#define MSG_INIT_SDCARD "Iniciando tarjeta" +#define MSG_CNG_SDCARD "Cambiar tarjeta" +#define MSG_RECTRACT_WIDE "Retraer" +#define MSG_TEMPERATURE_WIDE "Temperatura" +#define MSG_TEMPERATURE_RTN "Temperatura" +#define MSG_MAIN_WIDE "Menu principal" +#define MSG_MOTION_WIDE "Movimiento" +#define MSG_PREPARE_ALT "Preparar" +#define MSG_CONTROL_ARROW "Control" +#define MSG_RETRACT_ARROW "Retraer" +#define MSG_STEPPER_RELEASED "Desacoplada." +#define MSG_ZPROBE_OUT "sonda Z fuera" +#define MSG_POSITION_UNKNOWN "Reiniciar X/Y y Z" +#define MSG_ZPROBE_ZOFFSET "Offset Z" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_CONTRAST "Contraste" + +#endif // LANGUAGE_ES_H diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h new file mode 100644 index 000000000..5fad486f9 --- /dev/null +++ b/Marlin/language_eu.h @@ -0,0 +1,125 @@ +#ifndef LANGUAGE_EU_H +#define LANGUAGE_EU_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " prest." +#define MSG_SD_INSERTED "Txartela sartuta" +#define MSG_SD_REMOVED "Txartela kenduta" +#define MSG_MAIN "Menu nagusia" +#define MSG_AUTOSTART "Auto hasiera" +#define MSG_DISABLE_STEPPERS "Itzali motoreak" +#define MSG_AUTO_HOME "Hasierara joan" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Hasiera ipini" +#define MSG_PREHEAT_PLA "Aurreberotu PLA" +#define MSG_PREHEAT_PLA0 "Aurreberotu PLA1" +#define MSG_PREHEAT_PLA1 "Aurreberotu PLA2" +#define MSG_PREHEAT_PLA2 "Aurreberotu PLA3" +#define MSG_PREHEAT_PLA012 "Berotu PLA Guztia" +#define MSG_PREHEAT_PLA_BEDONLY "Berotu PLA Ohea" +#define MSG_PREHEAT_PLA_SETTINGS "Berotu PLA Konfig" +#define MSG_PREHEAT_ABS "Aurreberotu ABS" +#define MSG_PREHEAT_ABS0 "Aurreberotu ABS 1" +#define MSG_PREHEAT_ABS1 "Aurreberotu ABS 2" +#define MSG_PREHEAT_ABS2 "Aurreberotu ABS 3" +#define MSG_PREHEAT_ABS012 "Berotu ABS Guztia" +#define MSG_PREHEAT_ABS_BEDONLY "Berotu ABS Ohea" +#define MSG_PREHEAT_ABS_SETTINGS "Berotu ABS Konfig" +#define MSG_COOLDOWN "Hoztu" +#define MSG_SWITCH_PS_ON "Energia piztu" +#define MSG_SWITCH_PS_OFF "Energia itzali" +#define MSG_EXTRUDE "Estruitu" +#define MSG_RETRACT "Atzera eragin" +#define MSG_MOVE_AXIS "Ardatzak mugitu" +#define MSG_MOVE_X "Mugitu X" +#define MSG_MOVE_Y "Mugitu Y" +#define MSG_MOVE_Z "Mugitu Z" +#define MSG_MOVE_E "Estrusorea" +#define MSG_MOVE_E1 "Estrusorea2" +#define MSG_MOVE_E2 "Estrusorea3" +#define MSG_MOVE_01MM "Mugitu 0.1mm" +#define MSG_MOVE_1MM "Mugitu 1mm" +#define MSG_MOVE_10MM "Mugitu 10mm" +#define MSG_SPEED "Abiadura" +#define MSG_NOZZLE "Pita" +#define MSG_NOZZLE1 "Pita2" +#define MSG_NOZZLE2 "Pita3" +#define MSG_BED "Ohea" +#define MSG_FAN_SPEED "Haizagailua" +#define MSG_FLOW "Fluxua" +#define MSG_FLOW0 "Fluxua 0" +#define MSG_FLOW1 "Fluxua 1" +#define MSG_FLOW2 "Fluxua 2" +#define MSG_CONTROL "Kontrola" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Faktorea" +#define MSG_AUTOTEMP "Auto tenperatura" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Azelerazioa" +#define MSG_VXY_JERK "Vxy-astindua" +#define MSG_VZ_JERK "Vz-astindua" +#define MSG_VE_JERK "Ve-astindua" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retrakt" +#define MSG_XSTEPS "X pausoak/mm" +#define MSG_YSTEPS "Y pausoak/mm" +#define MSG_ZSTEPS "Z pausoak/mm" +#define MSG_ESTEPS "E pausoak/mm" +#define MSG_RECTRACT "Atzera eragin" +#define MSG_TEMPERATURE "Tenperatura" +#define MSG_MOTION "Mugimendua" +#define MSG_CONTRAST "LCD kontrastea" +#define MSG_STORE_EPROM "Gorde memoria" +#define MSG_LOAD_EPROM "Kargatu memoria" +#define MSG_RESTORE_FAILSAFE "Larri. berriz." +#define MSG_REFRESH "Berriz kargatu" +#define MSG_WATCH "Pantaila info" +#define MSG_PREPARE "Prestatu" +#define MSG_TUNE "Doitu" +#define MSG_PAUSE_PRINT "Pausatu inprimak." +#define MSG_RESUME_PRINT "Jarraitu inprima." +#define MSG_STOP_PRINT "Gelditu inprima." +#define MSG_CARD_MENU "SD-tik inprimatu" +#define MSG_NO_CARD "Ez dago txartelik" +#define MSG_DWELL "Lo egin..." +#define MSG_USERWAIT "Aginduak zain..." +#define MSG_RESUMING "Jarraitzen inpri." +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Mugimendu gabe" +#define MSG_KILLED "LARRIALDI GELDIA" +#define MSG_STOPPED "GELDITUTA. " +#define MSG_CONTROL_RETRACT "Atzera egin mm" +#define MSG_CONTROL_RETRACT_SWAP "Swap Atzera egin mm" +#define MSG_CONTROL_RETRACTF "Atzera egin V" +#define MSG_CONTROL_RETRACT_ZLIFT "Igo mm" +#define MSG_CONTROL_RETRACT_RECOVER "Atzera egin +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap Atzera egin +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "Atzera egin V" +#define MSG_AUTORETRACT "Atzera egin" +#define MSG_FILAMENTCHANGE "Aldatu filament." +#define MSG_INIT_SDCARD "Hasieratu txartela" +#define MSG_CNG_SDCARD "Aldatu txartela" +#define MSG_ZPROBE_OUT "Z ohe hasiera" +#define MSG_POSITION_UNKNOWN "Posizio ezezaguna" +#define MSG_ZPROBE_ZOFFSET "Z konpentsatu" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop deuseztat" + +#endif // LANGUAGE_EU_H diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h new file mode 100644 index 000000000..97ca7d7c2 --- /dev/null +++ b/Marlin/language_fi.h @@ -0,0 +1,125 @@ +#ifndef LANGUAGE_FI_H +#define LANGUAGE_FI_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " valmis." +#define MSG_SD_INSERTED "Kortti asetettu" +#define MSG_SD_REMOVED "Kortti poistettu" +#define MSG_MAIN "Palaa" +#define MSG_AUTOSTART "Automaatti" +#define MSG_DISABLE_STEPPERS "Vapauta moottorit" +#define MSG_AUTO_HOME "Aja referenssiin" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Aseta origo" +#define MSG_PREHEAT_PLA "Esilammita PLA" +#define MSG_PREHEAT_PLA0 "Esilammita PLA 1" +#define MSG_PREHEAT_PLA1 "Esilammita PLA 2" +#define MSG_PREHEAT_PLA2 "Esilammita PLA 3" +#define MSG_PREHEAT_PLA012 "Esila. PLA Kaikki" +#define MSG_PREHEAT_PLA_BEDONLY "Esila. PLA Alusta" +#define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf" +#define MSG_PREHEAT_ABS "Esilammita ABS" +#define MSG_PREHEAT_ABS0 "Esilammita ABS 1" +#define MSG_PREHEAT_ABS1 "Esilammita ABS 2" +#define MSG_PREHEAT_ABS2 "Esilammita ABS 3" +#define MSG_PREHEAT_ABS012 "Esila. ABS Kaikki" +#define MSG_PREHEAT_ABS_BEDONLY "Esila. ABS Alusta" +#define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf" +#define MSG_COOLDOWN "Jaahdyta" +#define MSG_SWITCH_PS_ON "Virta paalle" +#define MSG_SWITCH_PS_OFF "Virta pois" +#define MSG_EXTRUDE "Pursota" +#define MSG_RETRACT "Veda takaisin" +#define MSG_MOVE_AXIS "Liikuta akseleita" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Nopeus" +#define MSG_NOZZLE "Suutin" +#define MSG_NOZZLE1 "Suutin2" +#define MSG_NOZZLE2 "Suutin3" +#define MSG_BED "Alusta" +#define MSG_FAN_SPEED "Tuul. nopeus" +#define MSG_FLOW "Virtaus" +#define MSG_FLOW0 "Virtaus 0" +#define MSG_FLOW1 "Virtaus 1" +#define MSG_FLOW2 "Virtaus 2" +#define MSG_CONTROL "Kontrolli" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Kerr" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Kiihtyv" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VLiike min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-peruuta" +#define MSG_XSTEPS "Xsteps/mm" +#define MSG_YSTEPS "Ysteps/mm" +#define MSG_ZSTEPS "Zsteps/mm" +#define MSG_ESTEPS "Esteps/mm" +#define MSG_RECTRACT "Veda takaisin" +#define MSG_TEMPERATURE "Lampotila" +#define MSG_MOTION "Liike" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "Tallenna muistiin" +#define MSG_LOAD_EPROM "Lataa muistista" +#define MSG_RESTORE_FAILSAFE "Palauta oletus" +#define MSG_REFRESH "Paivita" +#define MSG_WATCH "Seuraa" +#define MSG_PREPARE "Valmistele" +#define MSG_TUNE "Saada" +#define MSG_PAUSE_PRINT "Keskeyta tulostus" +#define MSG_RESUME_PRINT "Jatka tulostusta" +#define MSG_STOP_PRINT "Pysayta tulostus" +#define MSG_CARD_MENU "Korttivalikko" +#define MSG_NO_CARD "Ei korttia" +#define MSG_DWELL "Nukkumassa..." +#define MSG_USERWAIT "Odotet. valintaa" +#define MSG_RESUMING "Jatke. tulostusta" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Ei liiketta." +#define MSG_KILLED "KILLED. " +#define MSG_STOPPED "STOPPED. " +#define MSG_CONTROL_RETRACT "Veda mm" +#define MSG_CONTROL_RETRACT_SWAP "Va. Veda mm" +#define MSG_CONTROL_RETRACTF "Veda V" +#define MSG_CONTROL_RETRACT_ZLIFT "Z mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Va. UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "AutoVeto." +#define MSG_FILAMENTCHANGE "Change filament" +#define MSG_INIT_SDCARD "Init. SD-Card" +#define MSG_CNG_SDCARD "Change SD-Card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" + +#endif // LANGUAGE_FI_H diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h new file mode 100644 index 000000000..619a048ce --- /dev/null +++ b/Marlin/language_fr.h @@ -0,0 +1,128 @@ +#ifndef LANGUAGE_FR_H +#define LANGUAGE_FR_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " prete." +#define MSG_SD_INSERTED "Carte inseree" +#define MSG_SD_REMOVED "Carte retiree" +#define MSG_MAIN "Menu principal" +#define MSG_AUTOSTART "Demarrage auto" +#define MSG_DISABLE_STEPPERS "Arreter moteurs" +#define MSG_AUTO_HOME "Home auto." +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Regler origine" +#define MSG_PREHEAT_PLA " Prechauffage PLA" +#define MSG_PREHEAT_PLA0 "Prechauff. PLA 1" +#define MSG_PREHEAT_PLA1 "Prechauff. PLA 2" +#define MSG_PREHEAT_PLA2 "Prechauff. PLA 3" +#define MSG_PREHEAT_PLA012 "Prech. PLA Tout" +#define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau" +#define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA" +#define MSG_PREHEAT_ABS "Prechauffage ABS" +#define MSG_PREHEAT_ABS0 "Prechauff. ABS 1" +#define MSG_PREHEAT_ABS1 "Prechauff. ABS 2" +#define MSG_PREHEAT_ABS2 "Prechauff. ABS 3" +#define MSG_PREHEAT_ABS012 "Prech. ABS Tout" +#define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau" +#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" +#define MSG_COOLDOWN "Refroidir" +#define MSG_SWITCH_PS_ON "Allumer alim." +#define MSG_SWITCH_PS_OFF "Eteindre alim." +#define MSG_EXTRUDE "Extrusion" +#define MSG_RETRACT "Retraction" +#define MSG_PREHEAT_PLA "Prechauffage PLA" +#define MSG_PREHEAT_ABS "Prechauffage ABS" +#define MSG_MOVE_AXIS "Deplacer un axe" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED " Vitesse" +#define MSG_NOZZLE "Buse" +#define MSG_NOZZLE1 "Buse2" +#define MSG_NOZZLE2 "Buse3" +#define MSG_BED "Plateau" +#define MSG_FAN_SPEED "Vite. ventilateur" +#define MSG_FLOW "Flux" +#define MSG_FLOW0 "Flux 0" +#define MSG_FLOW1 "Flux 1" +#define MSG_FLOW2 "Flux 2" +#define MSG_CONTROL "Controler" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Facteur" +#define MSG_AUTOTEMP "Temp. Auto." +#define MSG_ON "Marche " +#define MSG_OFF "Arret" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Accel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "Vdepl min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xpas/mm" +#define MSG_YSTEPS "Ypas/mm" +#define MSG_ZSTEPS "Zpas/mm" +#define MSG_ESTEPS "Epas/mm" +#define MSG_TEMPERATURE "Temperature" +#define MSG_MOTION "Mouvement" +#define MSG_CONTRAST "Contraste LCD" +#define MSG_STORE_EPROM "Sauver config" +#define MSG_LOAD_EPROM "Lire config" +#define MSG_RESTORE_FAILSAFE "Restaurer defauts" +#define MSG_REFRESH "Actualiser" +#define MSG_WATCH "Surveiller" +#define MSG_PREPARE "Preparer" +#define MSG_TUNE "Regler" +#define MSG_PAUSE_PRINT "Interrompre impr." +#define MSG_RESUME_PRINT "Reprendre impr." +#define MSG_STOP_PRINT "Arreter impr." +#define MSG_CARD_MENU "Impr. depuis SD" +#define MSG_NO_CARD "Pas de carte" +#define MSG_DWELL "Repos..." +#define MSG_USERWAIT "Atten. de l'util." +#define MSG_RESUMING "Repri. de l'impr." +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Aucun mouvement." +#define MSG_KILLED "MORT." +#define MSG_STOPPED "STOPPE." +#define MSG_STEPPER_RELEASED "RELACHE." +#define MSG_CONTROL_RETRACT "Retraction mm" +#define MSG_CONTROL_RETRACT_SWAP "Ech. Retr. mm" +#define MSG_CONTROL_RETRACTF "Retraction V" +#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ech. UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "Retract. Auto." +#define MSG_FILAMENTCHANGE "Changer filament" +#define MSG_INIT_SDCARD "Init. la carte SD" +#define MSG_CNG_SDCARD "Changer de carte" +#define MSG_ZPROBE_OUT "Z sonde exte. lit" +#define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z" +#define MSG_ZPROBE_ZOFFSET "Offset Z" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Butee abandon" +#define MSG_CONTRAST "Contrast" + +#endif // LANGUAGE_FR_H diff --git a/Marlin/language_it.h b/Marlin/language_it.h new file mode 100644 index 000000000..4c8dfec22 --- /dev/null +++ b/Marlin/language_it.h @@ -0,0 +1,126 @@ +#ifndef LANGUAGE_IT_H +#define LANGUAGE_IT_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " pronto." +#define MSG_SD_INSERTED "SD Card inserita" +#define MSG_SD_REMOVED "SD Card rimossa" +#define MSG_MAIN "Menu principale" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Disabilita Motori" +#define MSG_AUTO_HOME "Auto Home" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Imposta Origine" +#define MSG_PREHEAT_PLA "Preriscalda PLA" +#define MSG_PREHEAT_PLA0 "Preriscalda PLA 1" +#define MSG_PREHEAT_PLA1 "Preriscalda PLA 2" +#define MSG_PREHEAT_PLA2 "Preriscalda PLA 3" +#define MSG_PREHEAT_PLA012 "Preris. PLA Tutto" +#define MSG_PREHEAT_PLA_BEDONLY "Preri. PLA Piatto" +#define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf" +#define MSG_PREHEAT_ABS "Preriscalda ABS" +#define MSG_PREHEAT_ABS0 "Preriscalda ABS 1" +#define MSG_PREHEAT_ABS1 "Preriscalda ABS 2" +#define MSG_PREHEAT_ABS2 "Preriscalda ABS 3" +#define MSG_PREHEAT_ABS012 "Preris. ABS Tutto" +#define MSG_PREHEAT_ABS_BEDONLY "Preri. ABS Piatto" +#define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf" +#define MSG_COOLDOWN "Raffredda" +#define MSG_SWITCH_PS_ON "Switch Power On" +#define MSG_SWITCH_PS_OFF "Switch Power Off" +#define MSG_EXTRUDE "Estrudi" +#define MSG_RETRACT "Ritrai" +#define MSG_MOVE_AXIS "Muovi Asse" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Velcità" +#define MSG_NOZZLE "Ugello" +#define MSG_NOZZLE1 "Ugello2" +#define MSG_NOZZLE2 "Ugello3" +#define MSG_BED "Piatto" +#define MSG_FAN_SPEED "Ventola" +#define MSG_FLOW "Flusso" +#define MSG_FLOW0 "Flusso 0" +#define MSG_FLOW1 "Flusso 1" +#define MSG_FLOW2 "Flusso 2" +#define MSG_CONTROL "Controllo" +#define MSG_MIN " \002 Min:" +#define MSG_MAX " \002 Max:" +#define MSG_FACTOR " \002 Fact:" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Accel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax" +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xpassi/mm" +#define MSG_YSTEPS "Ypassi/mm" +#define MSG_ZSTEPS "Zpassi/mm" +#define MSG_ESTEPS "Epassi/mm" +#define MSG_RECTRACT "Ritrai" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Movimento" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "Salva in EEPROM" +#define MSG_LOAD_EPROM "Carica da EEPROM" +#define MSG_RESTORE_FAILSAFE "Impostaz. default" +#define MSG_REFRESH "Aggiorna" +#define MSG_WATCH "Guarda" +#define MSG_PREPARE "Prepara" +#define MSG_TUNE "Adatta" +#define MSG_PAUSE_PRINT "Pausa" +#define MSG_RESUME_PRINT "Riprendi Stampa" +#define MSG_STOP_PRINT "Arresta Stampa" +#define MSG_CARD_MENU "SD Card Menu" +#define MSG_NO_CARD "No SD Card" +#define MSG_DWELL "Sospensione..." +#define MSG_USERWAIT "Attendi Utente..." +#define MSG_RESUMING "Riprendi Stampa" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Nessun Movimento." +#define MSG_KILLED "UCCISO. " +#define MSG_STOPPED "ARRESTATO. " +#define MSG_CONTROL_RETRACT "Ritrai mm" +#define MSG_CONTROL_RETRACT_SWAP "Scamb. Ritrai mm" +#define MSG_CONTROL_RETRACTF "Ritrai V" +#define MSG_CONTROL_RETRACT_ZLIFT "Salta mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Scamb. UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "AutoArretramento" +#define MSG_FILAMENTCHANGE "Cambia filamento" +#define MSG_INIT_SDCARD "Iniz. SD-Card" +#define MSG_CNG_SDCARD "Cambia SD-Card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_CONTRAST "Contrast" + +#endif // LANGUAGE_IT_H diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h new file mode 100644 index 000000000..972f825e9 --- /dev/null +++ b/Marlin/language_nl.h @@ -0,0 +1,125 @@ +#ifndef LANGUAGE_NL_H +#define LANGUAGE_NL_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " gereed." +#define MSG_SD_INSERTED "Kaart ingestoken" +#define MSG_SD_REMOVED "Kaart verwijderd" +#define MSG_MAIN "Main" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Motoren uit" +#define MSG_AUTO_HOME "Auto home" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Nulpunt instellen" +#define MSG_PREHEAT_PLA "PLA voorverwarmen" +#define MSG_PREHEAT_PLA0 "PLA voorverw. 0" +#define MSG_PREHEAT_PLA1 "PLA voorverw. 1" +#define MSG_PREHEAT_PLA2 "PLA voorverw. 2" +#define MSG_PREHEAT_PLA012 "PLA voorverw. aan" +#define MSG_PREHEAT_PLA_BEDONLY "PLA voorverw. Bed" +#define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf" +#define MSG_PREHEAT_ABS "ABS voorverwarmen" +#define MSG_PREHEAT_ABS0 "ABS voorverw. 0" +#define MSG_PREHEAT_ABS1 "ABS voorverw. 1" +#define MSG_PREHEAT_ABS2 "ABS voorverw. 2" +#define MSG_PREHEAT_ABS012 "ABS voorverw. aan" +#define MSG_PREHEAT_ABS_BEDONLY "ABS voorverw. Bed" +#define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf" +#define MSG_COOLDOWN "Afkoelen" +#define MSG_SWITCH_PS_ON "Stroom aan" +#define MSG_SWITCH_PS_OFF "Stroom uit" +#define MSG_EXTRUDE "Extrude" +#define MSG_RETRACT "Retract" +#define MSG_MOVE_AXIS "As verplaatsen" +#define MSG_MOVE_X "Verplaats X" +#define MSG_MOVE_Y "Verplaats Y" +#define MSG_MOVE_Z "Verplaats Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Verplaats 0.1mm" +#define MSG_MOVE_1MM "Verplaats 1mm" +#define MSG_MOVE_10MM "Verplaats 10mm" +#define MSG_SPEED "Snelheid" +#define MSG_NOZZLE "Nozzle" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Bed" +#define MSG_FAN_SPEED "Fan snelheid" +#define MSG_FLOW "Flow" +#define MSG_FLOW0 "Flow 0" +#define MSG_FLOW1 "Flow 1" +#define MSG_FLOW2 "Flow 2" +#define MSG_CONTROL "Control" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Fact" +#define MSG_AUTOTEMP "Autotemp" +#define MSG_ON "Aan " +#define MSG_OFF "Uit" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Versn" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "VTrav min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xsteps/mm" +#define MSG_YSTEPS "Ysteps/mm" +#define MSG_ZSTEPS "Zsteps/mm" +#define MSG_ESTEPS "Esteps/mm" +#define MSG_RECTRACT "Terugtrekken" +#define MSG_TEMPERATURE "Temperatuur" +#define MSG_MOTION "Beweging" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "Geheugen opslaan" +#define MSG_LOAD_EPROM "Geheugen laden" +#define MSG_RESTORE_FAILSAFE "Noodstop reset" +#define MSG_REFRESH "Ververs" +#define MSG_WATCH "Info scherm" +#define MSG_PREPARE "Voorbereiden" +#define MSG_TUNE "Afstellen" +#define MSG_PAUSE_PRINT "Print pauzeren" +#define MSG_RESUME_PRINT "Print hervatten" +#define MSG_STOP_PRINT "Print stoppen" +#define MSG_CARD_MENU "Print van SD" +#define MSG_NO_CARD "Geen SD kaart" +#define MSG_DWELL "Slapen..." +#define MSG_USERWAIT "Wachten..." +#define MSG_RESUMING "Print hervatten" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Geen beweging." +#define MSG_KILLED "AFGEBROKEN. " +#define MSG_STOPPED "GESTOPT. " +#define MSG_CONTROL_RETRACT "Retract mm" +#define MSG_CONTROL_RETRACT_SWAP "Ruil Retract mm" +#define MSG_CONTROL_RETRACTF "Retract F" +#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ruil UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" +#define MSG_AUTORETRACT "AutoRetr." +#define MSG_FILAMENTCHANGE "Verv. Filament" +#define MSG_INIT_SDCARD "Init. SD kaart" +#define MSG_CNG_SDCARD "Verv. SD card" +#define MSG_ZPROBE_OUT "Z probe uit. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y voor Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystap X" +#define MSG_BABYSTEP_Y "Babystap Y" +#define MSG_BABYSTEP_Z "Babystap Z" +#define MSG_ENDSTOP_ABORT "Endstop afbr." + +#endif // LANGUAGE_NL_H diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h new file mode 100644 index 000000000..4426d014c --- /dev/null +++ b/Marlin/language_pl.h @@ -0,0 +1,128 @@ +#ifndef LANGUAGE_PL_H +#define LANGUAGE_PL_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " gotowy." +#define MSG_SD_INSERTED "Karta wlozona" +#define MSG_SD_REMOVED "Karta usunieta" +#define MSG_MAIN "Menu glowne" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Wylacz silniki" +#define MSG_AUTO_HOME "Auto. poz. zerowa" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Ustaw punkt zero" +#define MSG_PREHEAT_PLA "Rozgrzej PLA" +#define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" +#define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" +#define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" +#define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko" +#define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" +#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" +#define MSG_PREHEAT_ABS "Rozgrzej ABS" +#define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1" +#define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" +#define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" +#define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko" +#define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" +#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" +#define MSG_COOLDOWN "Chlodzenie" +#define MSG_SWITCH_PS_ON "Wlacz zasilacz" +#define MSG_SWITCH_PS_OFF "Wylacz zasilacz" +#define MSG_EXTRUDE "Ekstruzja" +#define MSG_RETRACT "Cofanie" +#define MSG_MOVE_AXIS "Ruch osi" +#define MSG_MOVE_X "Przesun w X" +#define MSG_MOVE_Y "Przesun w Y" +#define MSG_MOVE_Z "Przesun w Z" +#define MSG_MOVE_E "Ekstruzja (os E)" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Przesuwaj co .1mm" +#define MSG_MOVE_1MM "Przesuwaj co 1mm" +#define MSG_MOVE_10MM "Przesuwaj co 10mm" +#define MSG_SPEED "Predkosc" +#define MSG_NOZZLE "Dysza" +#define MSG_NOZZLE1 "Dysza 2" +#define MSG_NOZZLE2 "Dysza 3" +#define MSG_BED "Loze" +#define MSG_FAN_SPEED "Obroty wiatraka" +#define MSG_FLOW "Przeplyw" +#define MSG_FLOW0 "Przeplyw 0" +#define MSG_FLOW1 "Przeplyw 1" +#define MSG_FLOW2 "Przeplyw 2" +#define MSG_CONTROL "Kontrola" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Mnoznik" +#define MSG_AUTOTEMP "Auto. temperatura" +#define MSG_ON "Wl. " +#define MSG_OFF "Wyl." +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Przyspieszenie" +#define MSG_VXY_JERK "Zryw Vxy" +#define MSG_VZ_JERK "Zryw Vz" +#define MSG_VE_JERK "Zryw Ve" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "Vskok min" +#define MSG_AMAX "Amax" +#define MSG_A_RETRACT "A-wycofanie" +#define MSG_XSTEPS "krokiX/mm" +#define MSG_YSTEPS "krokiY/mm" +#define MSG_ZSTEPS "krokiZ/mm" +#define MSG_ESTEPS "krokiE/mm" +#define MSG_RECTRACT "Wycofanie" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Ruch" +#define MSG_CONTRAST "Kontrast LCD" +#define MSG_STORE_EPROM "Zapisz w pamieci" +#define MSG_LOAD_EPROM "Wczytaj z pamieci" +#define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne" +#define MSG_REFRESH "\004Odswiez" +#define MSG_WATCH "Ekran glowny" +#define MSG_PREPARE "Przygotuj" +#define MSG_CONTROL "Ustawienia" +#define MSG_TUNE "Strojenie" +#define MSG_PAUSE_PRINT "Pauza" +#define MSG_RESUME_PRINT "Wznowienie" +#define MSG_STOP_PRINT "Stop" +#define MSG_CARD_MENU "Menu karty SD" +#define MSG_NO_CARD "Brak karty" +#define MSG_DWELL "Uspij..." +#define MSG_USERWAIT "Oczekiwanie..." +#define MSG_RESUMING "Wznawianie druku" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Brak ruchu" +#define MSG_KILLED "Ubity. " +#define MSG_STOPPED "Zatrzymany. " +#define MSG_STEPPER_RELEASED "Zwolniony." +#define MSG_CONTROL_RETRACT "Wycofaj mm" +#define MSG_CONTROL_RETRACT_SWAP "Z Wycof. mm" +#define MSG_CONTROL_RETRACTF "Wycofaj V" +#define MSG_CONTROL_RETRACT_ZLIFT "Skok Z mm:" +#define MSG_CONTROL_RETRACT_RECOVER "Cof. wycof. +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Z Cof. wyc. +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. V" +#define MSG_AUTORETRACT "Auto. wycofanie" +#define MSG_FILAMENTCHANGE "Zmien filament" +#define MSG_INIT_SDCARD "Inicjal. karty SD" +#define MSG_CNG_SDCARD "Zmiana karty SD" +#define MSG_ZPROBE_OUT "Sonda Z za lozem" +#define MSG_POSITION_UNKNOWN "Wroc w XY przed Z" +#define MSG_ZPROBE_ZOFFSET "Offset Z" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Blad wyl. kranc." +#define MSG_CONTRAST "Kontrast" + +#endif // LANGUAGE_PL_H diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h new file mode 100644 index 000000000..868e8530c --- /dev/null +++ b/Marlin/language_pt.h @@ -0,0 +1,131 @@ +#ifndef LANGUAGE_PT_H +#define LANGUAGE_PT_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME " pronto." +#define MSG_SD_INSERTED "Cartao inserido" +#define MSG_SD_REMOVED "Cartao removido" +#define MSG_MAIN " Menu principal \003" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS " Apagar motores" +#define MSG_AUTO_HOME "Ir para origen" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Estabelecer orig." +#define MSG_PREHEAT_PLA "Pre-aquecer PLA" +#define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1" +#define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2" +#define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3" +#define MSG_PREHEAT_PLA012 " pre-aq. PLA Tudo" +#define MSG_PREHEAT_PLA_BEDONLY " pre-aq. PLA \002Base" +#define MSG_PREHEAT_PLA_SETTINGS "PLA setting" +#define MSG_PREHEAT_ABS "Pre-aquecer ABS" +#define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1" +#define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2" +#define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3" +#define MSG_PREHEAT_ABS012 " pre-aq. ABS Tudo" +#define MSG_PREHEAT_ABS_BEDONLY " pre-aq. ABS \002Base" +#define MSG_PREHEAT_ABS_SETTINGS "ABS setting" +#define MSG_COOLDOWN "Esfriar" +#define MSG_SWITCH_PS_ON "Switch Power On" +#define MSG_SWITCH_PS_OFF "Switch Power Off" +#define MSG_EXTRUDE "Extrudar" +#define MSG_RETRACT "Retrair" +#define MSG_MOVE_AXIS "Mover eixo \x7E" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Velocidade:" +#define MSG_NOZZLE "\002Nozzle:" +#define MSG_NOZZLE1 "\002Nozzle2:" +#define MSG_NOZZLE2 "\002Nozzle3:" +#define MSG_BED "\002Base:" +#define MSG_FAN_SPEED "Velocidade vento." +#define MSG_FLOW "Fluxo:" +#define MSG_FLOW0 "Fluxo0:" +#define MSG_FLOW1 "Fluxo1:" +#define MSG_FLOW2 "Fluxo2:" +#define MSG_CONTROL "Controle \003" +#define MSG_MIN "\002 Min:" +#define MSG_MAX "\002 Max:" +#define MSG_FACTOR "\002 Fact:" +#define MSG_AUTOTEMP "Autotemp:" +#define MSG_ON "On " +#define MSG_OFF "Off" +#define MSG_PID_P "PID-P: " +#define MSG_PID_I "PID-I: " +#define MSG_PID_D "PID-D: " +#define MSG_PID_C "PID-C: " +#define MSG_ACC "Acc:" +#define MSG_VXY_JERK "Vxy-jerk: " +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX " Vmax " +#define MSG_X "x:" +#define MSG_Y "y:" +#define MSG_Z "z:" +#define MSG_E "e:" +#define MSG_VMIN "Vmin:" +#define MSG_VTRAV_MIN "VTrav min:" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract:" +#define MSG_XSTEPS "Xpasso/mm:" +#define MSG_YSTEPS "Ypasso/mm:" +#define MSG_ZSTEPS "Zpasso/mm:" +#define MSG_ESTEPS "Epasso/mm:" +#define MSG_RECTRACT "Retrair" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Movimento" +#define MSG_CONTRAST "Contrast" +#define MSG_STORE_EPROM "Guardar memoria" +#define MSG_LOAD_EPROM "Carregar memoria" +#define MSG_RESTORE_FAILSAFE "Rest. de emergen." +#define MSG_REFRESH "\004Recarregar" +#define MSG_WATCH "Monitorar \003" +#define MSG_PREPARE "Preparar \x7E" +#define MSG_TUNE "Tune \x7E" +#define MSG_PAUSE_PRINT "Pausar impressao" +#define MSG_RESUME_PRINT "Resumir impressao" +#define MSG_STOP_PRINT "Parar impressao" +#define MSG_CARD_MENU "Menu cartao SD" +#define MSG_NO_CARD "Sem cartao SD" +#define MSG_DWELL "Repouso..." +#define MSG_USERWAIT "Esperando ordem" +#define MSG_RESUMING "Resuming print" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Sem movimento" +#define MSG_KILLED "PARADA DE EMERG." +#define MSG_STOPPED "PARADA. " +#define MSG_CONTROL_RETRACT " Retrair mm:" +#define MSG_CONTROL_RETRACT_SWAP "Troca Retrair mm:" +#define MSG_CONTROL_RETRACTF " Retrair V:" +#define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm:" +#define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm:" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Troca DesRet +mm:" +#define MSG_CONTROL_RETRACT_RECOVERF " DesRet V:" +#define MSG_AUTORETRACT " AutoRetr.:" +#define MSG_FILAMENTCHANGE "Change filament" +#define MSG_INIT_SDCARD "Init. SD-Card" +#define MSG_CNG_SDCARD "Change SD-Card" +#define MSG_ZPROBE_OUT "Son. fora da mesa" +#define MSG_POSITION_UNKNOWN "XY antes de Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" + +#define MSG_PREPARE_ALT "Preparar \003" +#define MSG_CONTROL_ARROW "Controle \x7E" +#define MSG_RETRACT_ARROW "Retrair \x7E" +#define MSG_MAIN_WIDE "Menu Principal \003" +#define MSG_STEPPER_RELEASED "Lancado." + +#endif // LANGUAGE_PT_H diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h new file mode 100644 index 000000000..3ece77545 --- /dev/null +++ b/Marlin/language_ru.h @@ -0,0 +1,126 @@ +#ifndef LANGUAGE_RU_H +#define LANGUAGE_RU_H + +// LCD Menu Messages +// Please note these are limited to 17 characters! + +#define WELCOME_MSG MACHINE_NAME "Готов." +#define MSG_SD_INSERTED "Карта вÑтавлена" +#define MSG_SD_REMOVED "Карта извлечена" +#define MSG_MAIN "Меню \003" +#define MSG_AUTOSTART "ÐвтоÑтарт" +#define MSG_DISABLE_STEPPERS "Выкл. двигатели" +#define MSG_AUTO_HOME "Парковка" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Запомнить ноль" +#define MSG_PREHEAT_PLA "Преднагрев PLA" +#define MSG_PREHEAT_PLA0 "Преднагрев PLA0" +#define MSG_PREHEAT_PLA1 "Преднагрев PLA1" +#define MSG_PREHEAT_PLA2 "Преднагрев PLA2" +#define MSG_PREHEAT_PLA012 "Преднаг. PLA вÑе" +#define MSG_PREHEAT_PLA_BEDONLY "Пред. PLA Кровать" +#define MSG_PREHEAT_PLA_SETTINGS "ÐаÑтройки PLA" +#define MSG_PREHEAT_ABS "Преднагрев ABS" +#define MSG_PREHEAT_ABS0 "Преднагрев ABS0" +#define MSG_PREHEAT_ABS1 "Преднагрев ABS1" +#define MSG_PREHEAT_ABS2 "Преднагрев ABS2" +#define MSG_PREHEAT_ABS012 "Преднаг. ABS вÑе " +#define MSG_PREHEAT_ABS_BEDONLY "Пред. ABS Кровать" +#define MSG_PREHEAT_ABS_SETTINGS "ÐаÑтройки ABS" +#define MSG_COOLDOWN "Охлаждение" +#define MSG_SWITCH_PS_ON "Switch Power On" +#define MSG_SWITCH_PS_OFF "Switch Power Off" +#define MSG_EXTRUDE "ЭкÑтрузиÑ" +#define MSG_RETRACT "Откат" +#define MSG_MOVE_AXIS "Движение по оÑÑм" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "СкороÑÑ‚ÑŒ:" +#define MSG_NOZZLE "\002 Фильера:" +#define MSG_NOZZLE1 "\002 Фильера2:" +#define MSG_NOZZLE2 "\002 Фильера3:" +#define MSG_BED "\002 Кровать:" +#define MSG_FAN_SPEED "Куллер:" +#define MSG_FLOW "Поток:" +#define MSG_FLOW0 " Поток0:" +#define MSG_FLOW1 " Поток1:" +#define MSG_FLOW2 " Поток2:" +#define MSG_CONTROL "ÐаÑтройки \003" +#define MSG_MIN "\002 Минимум:" +#define MSG_MAX "\002 МакÑимум:" +#define MSG_FACTOR "\002 Фактор:" +#define MSG_AUTOTEMP "Autotemp:" +#define MSG_ON "Вкл. " +#define MSG_OFF "Выкл. " +#define MSG_PID_P "PID-P: " +#define MSG_PID_I "PID-I: " +#define MSG_PID_D "PID-D: " +#define MSG_PID_C "PID-C: " +#define MSG_ACC "Acc:" +#define MSG_VXY_JERK "Vxy-jerk: " +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax " +#define MSG_X "x:" +#define MSG_Y "y:" +#define MSG_Z "z:" +#define MSG_E "e:" +#define MSG_VMIN "Vmin:" +#define MSG_VTRAV_MIN "VTrav min:" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract:" +#define MSG_XSTEPS "X шаг/mm:" +#define MSG_YSTEPS "Y шаг/mm:" +#define MSG_ZSTEPS "Z шаг/mm:" +#define MSG_ESTEPS "E шаг/mm:" +#define MSG_RECTRACT "Откат подачи \x7E" +#define MSG_TEMPERATURE "Температура \x7E" +#define MSG_MOTION "СкороÑти \x7E" +#define MSG_CONTRAST "LCD contrast" +#define MSG_STORE_EPROM "Сохранить в EPROM" +#define MSG_LOAD_EPROM "Загруз. из EPROM" +#define MSG_RESTORE_FAILSAFE "Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек" +#define MSG_REFRESH "\004Обновить" +#define MSG_WATCH "Обзор \003" +#define MSG_PREPARE "ДейÑÑ‚Ð²Ð¸Ñ \x7E" +#define MSG_TUNE "ÐаÑтройки \x7E" +#define MSG_PAUSE_PRINT "Продолжить печать" +#define MSG_RESUME_PRINT "возобн. печать" +#define MSG_STOP_PRINT "ОÑтановить печать" +#define MSG_CARD_MENU "Меню карты \x7E" +#define MSG_NO_CARD "Ðет карты" +#define MSG_DWELL "Сон..." +#define MSG_USERWAIT "Ожиданиие" +#define MSG_RESUMING "Resuming print" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Ðет движениÑ." +#define MSG_KILLED "УБИТО." +#define MSG_STOPPED "ОСТÐÐОВЛЕÐО." +#define MSG_CONTROL_RETRACT "Откат mm:" +#define MSG_CONTROL_RETRACT_SWAP "Ñвоп Откат mm:" +#define MSG_CONTROL_RETRACTF "Откат V:" +#define MSG_CONTROL_RETRACT_ZLIFT "Прыжок mm:" +#define MSG_CONTROL_RETRACT_RECOVER "Возврат +mm:" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ñвоп Возврат +mm:" +#define MSG_CONTROL_RETRACT_RECOVERF "Возврат V:" +#define MSG_AUTORETRACT "ÐвтоОткат:" +#define MSG_FILAMENTCHANGE "Change filament" +#define MSG_INIT_SDCARD "Init. SD-Card" +#define MSG_CNG_SDCARD "Change SD-Card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_CONTRAST "Contrast" + +#endif // LANGUAGE_RU_H diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 41c0d34dd..923e249c8 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -198,7 +198,7 @@ extern volatile uint16_t buttons; //an extended version of the last checked but #else // Standard directly connected LCD implementations - #if LANGUAGE_CHOICE == 6 + #if LANGUAGE_CHOICE == ru #include "LiquidCrystalRus.h" #define LCD_CLASS LiquidCrystalRus #else From e970461adb6341dee395e74a0d329a0a21ad9db3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 10:33:00 -0800 Subject: [PATCH 27/33] Clean up, move unused to the bottom, add headings --- Marlin/language.h | 144 ++++++++++++------------- Marlin/language_an.h | 16 +-- Marlin/language_ca.h | 13 ++- Marlin/language_de.h | 19 ++-- Marlin/language_en.h | 19 ++-- Marlin/language_es.h | 33 +++--- Marlin/language_eu.h | 13 ++- Marlin/language_fi.h | 13 ++- Marlin/language_fr.h | 247 ++++++++++++++++++++++--------------------- Marlin/language_it.h | 14 ++- Marlin/language_nl.h | 13 ++- Marlin/language_pl.h | 247 ++++++++++++++++++++++--------------------- Marlin/language_pt.h | 14 ++- Marlin/language_ru.h | 14 ++- 14 files changed, 438 insertions(+), 381 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 0f245769b..9ab5df73e 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -73,79 +73,81 @@ // Serial Console Messages (do not translate those!) -#define MSG_Enqueing "enqueing \"" -#define MSG_POWERUP "PowerUp" -#define MSG_EXTERNAL_RESET " External Reset" -#define MSG_BROWNOUT_RESET " Brown out Reset" -#define MSG_WATCHDOG_RESET " Watchdog Reset" -#define MSG_SOFTWARE_RESET " Software Reset" -#define MSG_AUTHOR " | Author: " -#define MSG_CONFIGURATION_VER " Last Updated: " -#define MSG_FREE_MEMORY " Free Memory: " -#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " -#define MSG_OK "ok" -#define MSG_FILE_SAVED "Done saving file." -#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line: " -#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: " -#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: " +#define MSG_Enqueing "enqueing \"" +#define MSG_POWERUP "PowerUp" +#define MSG_EXTERNAL_RESET " External Reset" +#define MSG_BROWNOUT_RESET " Brown out Reset" +#define MSG_WATCHDOG_RESET " Watchdog Reset" +#define MSG_SOFTWARE_RESET " Software Reset" +#define MSG_AUTHOR " | Author: " +#define MSG_CONFIGURATION_VER " Last Updated: " +#define MSG_FREE_MEMORY " Free Memory: " +#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " +#define MSG_OK "ok" +#define MSG_FILE_SAVED "Done saving file." +#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line: " +#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: " +#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: " #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line: " -#define MSG_FILE_PRINTED "Done printing file" -#define MSG_BEGIN_FILE_LIST "Begin file list" -#define MSG_END_FILE_LIST "End file list" -#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder " -#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder " -#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder " -#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder " -#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder " -#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" -#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder " -#define MSG_HEATING "Heating..." -#define MSG_HEATING_COMPLETE "Heating done." -#define MSG_BED_HEATING "Bed Heating." -#define MSG_BED_DONE "Bed done." -#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" -#define MSG_COUNT_X " Count X: " -#define MSG_ERR_KILLED "Printer halted. kill() called!" -#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" -#define MSG_RESEND "Resend: " -#define MSG_UNKNOWN_COMMAND "Unknown command: \"" -#define MSG_ACTIVE_EXTRUDER "Active Extruder: " -#define MSG_INVALID_EXTRUDER "Invalid extruder" -#define MSG_X_MIN "x_min: " -#define MSG_X_MAX "x_max: " -#define MSG_Y_MIN "y_min: " -#define MSG_Y_MAX "y_max: " -#define MSG_Z_MIN "z_min: " -#define MSG_Z_MAX "z_max: " -#define MSG_M119_REPORT "Reporting endstop status" -#define MSG_ENDSTOP_HIT "TRIGGERED" -#define MSG_ENDSTOP_OPEN "open" -#define MSG_HOTEND_OFFSET "Hotend offsets:" +#define MSG_FILE_PRINTED "Done printing file" +#define MSG_BEGIN_FILE_LIST "Begin file list" +#define MSG_END_FILE_LIST "End file list" +#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder " +#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder " +#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder " +#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder " +#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder " +#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" +#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder " +#define MSG_HEATING "Heating..." +#define MSG_HEATING_COMPLETE "Heating done." +#define MSG_BED_HEATING "Bed Heating." +#define MSG_BED_DONE "Bed done." +#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" +#define MSG_COUNT_X " Count X: " +#define MSG_ERR_KILLED "Printer halted. kill() called!" +#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" +#define MSG_RESEND "Resend: " +#define MSG_UNKNOWN_COMMAND "Unknown command: \"" +#define MSG_ACTIVE_EXTRUDER "Active Extruder: " +#define MSG_INVALID_EXTRUDER "Invalid extruder" +#define MSG_X_MIN "x_min: " +#define MSG_X_MAX "x_max: " +#define MSG_Y_MIN "y_min: " +#define MSG_Y_MAX "y_max: " +#define MSG_Z_MIN "z_min: " +#define MSG_Z_MAX "z_max: " +#define MSG_M119_REPORT "Reporting endstop status" +#define MSG_ENDSTOP_HIT "TRIGGERED" +#define MSG_ENDSTOP_OPEN "open" +#define MSG_HOTEND_OFFSET "Hotend offsets:" -#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" -#define MSG_SD_INIT_FAIL "SD init fail" -#define MSG_SD_VOL_INIT_FAIL "volume.init failed" -#define MSG_SD_OPENROOT_FAIL "openRoot failed" -#define MSG_SD_CARD_OK "SD card ok" -#define MSG_SD_WORKDIR_FAIL "workDir open failed" -#define MSG_SD_OPEN_FILE_FAIL "open failed, File: " -#define MSG_SD_FILE_OPENED "File opened: " -#define MSG_SD_SIZE " Size: " -#define MSG_SD_FILE_SELECTED "File selected" -#define MSG_SD_WRITE_TO_FILE "Writing to file: " -#define MSG_SD_PRINTING_BYTE "SD printing byte " -#define MSG_SD_NOT_PRINTING "Not SD printing" -#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file" -#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: " +#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" +#define MSG_SD_INIT_FAIL "SD init fail" +#define MSG_SD_VOL_INIT_FAIL "volume.init failed" +#define MSG_SD_OPENROOT_FAIL "openRoot failed" +#define MSG_SD_CARD_OK "SD card ok" +#define MSG_SD_WORKDIR_FAIL "workDir open failed" +#define MSG_SD_OPEN_FILE_FAIL "open failed, File: " +#define MSG_SD_FILE_OPENED "File opened: " +#define MSG_SD_SIZE " Size: " +#define MSG_SD_FILE_SELECTED "File selected" +#define MSG_SD_WRITE_TO_FILE "Writing to file: " +#define MSG_SD_PRINTING_BYTE "SD printing byte " +#define MSG_SD_NOT_PRINTING "Not SD printing" +#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file" +#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: " -#define MSG_STEPPER_TOO_HIGH "Steprate too high: " -#define MSG_ENDSTOPS_HIT "endstops hit: " -#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" -#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" -#define MSG_BABYSTEPPING_X "Babystepping X" -#define MSG_BABYSTEPPING_Y "Babystepping Y" -#define MSG_BABYSTEPPING_Z "Babystepping Z" -#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" +#define MSG_STEPPER_TOO_HIGH "Steprate too high: " +#define MSG_ENDSTOPS_HIT "endstops hit: " +#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" +#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" +#define MSG_BABYSTEPPING_X "Babystepping X" +#define MSG_BABYSTEPPING_Y "Babystepping Y" +#define MSG_BABYSTEPPING_Z "Babystepping Z" +#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" + +// LCD Menu Messages #if LANGUAGE_CHOICE == en // English #include "language_en.h" @@ -175,4 +177,4 @@ #include "language_eu.h" #endif -#endif // ifndef LANGUAGE_H +#endif //__LANGUAGE_H diff --git a/Marlin/language_an.h b/Marlin/language_an.h index 3bfd23d00..8c6820e1a 100644 --- a/Marlin/language_an.h +++ b/Marlin/language_an.h @@ -1,9 +1,13 @@ +/** + * Aragonese + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_AN_H #define LANGUAGE_AN_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " parada." #define MSG_SD_INSERTED "Tarcheta colocada" #define MSG_SD_REMOVED "Tarcheta retirada" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Y trangos/mm" #define MSG_ZSTEPS "Z trangos/mm" #define MSG_ESTEPS "E trangos/mm" -#define MSG_RECTRACT "Retraer" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimiento" #define MSG_CONTRAST "Contrast" @@ -122,14 +125,15 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_RECTRACT "Retraer" #define MSG_RECTRACT_WIDE "Retraer" #define MSG_TEMPERATURE_WIDE "Temperatura" #define MSG_TEMPERATURE_RTN "Temperatura" #define MSG_MAIN_WIDE "Menu Prencipal" #define MSG_MOTION_WIDE "Movimiento" #define MSG_PREPARE_ALT "Preparar" -#define MSG_CONTROL_ARROW "Control" -#define MSG_RETRACT_ARROW "Retraer" +#define MSG_CONTROL_ARROW "Control \x7E" +#define MSG_RETRACT_ARROW "Retraer \x7E" #define MSG_STEPPER_RELEASED "Desacoplada." #endif // LANGUAGE_AN_H diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h index 3bda222c9..680c6eed0 100644 --- a/Marlin/language_ca.h +++ b/Marlin/language_ca.h @@ -1,9 +1,13 @@ +/** + * Catalan + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_CA_H #define LANGUAGE_CA_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " preparada." #define MSG_SD_INSERTED "SD detectada." #define MSG_SD_REMOVED "SD expulsada." @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ypassos/mm" #define MSG_ZSTEPS "Zpassos/mm" #define MSG_ESTEPS "Epassos/mm" -#define MSG_RECTRACT "Retreure" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Moviment" #define MSG_CONTRAST "Contrast de LCD" @@ -122,4 +125,6 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_RECTRACT "Retreure" + #endif // LANGUAGE_CA_H diff --git a/Marlin/language_de.h b/Marlin/language_de.h index 43861c1af..801250b51 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -1,9 +1,13 @@ +/** + * German + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_DE_H #define LANGUAGE_DE_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " Bereit." #define MSG_SD_INSERTED "SDKarte erkannt" #define MSG_SD_REMOVED "SDKarte entfernt" @@ -80,8 +84,6 @@ #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_RECTRACT_WIDE "Rectract" -#define MSG_WATCH "Beobachten" #define MSG_TEMPERATURE "Temperatur" #define MSG_MOTION "Bewegung" #define MSG_CONTRAST "LCD contrast" @@ -89,8 +91,8 @@ #define MSG_LOAD_EPROM "EPROM laden" #define MSG_RESTORE_FAILSAFE "Standardkonfig." #define MSG_REFRESH "Aktualisieren" +#define MSG_WATCH "Beobachten" #define MSG_PREPARE "Vorbereitung" -#define MSG_CONTROL "Einstellungen" #define MSG_TUNE "Justierung" #define MSG_PAUSE_PRINT "Druck anhalten" #define MSG_RESUME_PRINT "Druck fortsetz" @@ -104,7 +106,6 @@ #define MSG_NO_MOVE "Kein Zug." #define MSG_KILLED "KILLED" #define MSG_STOPPED "GESTOPPT" -#define MSG_STEPPER_RELEASED "Stepper frei" #define MSG_CONTROL_RETRACT "Retract mm" #define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm" #define MSG_CONTROL_RETRACTF "Retract V" @@ -123,6 +124,8 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_CONTRAST "Contrast" + +#define MSG_STEPPER_RELEASED "Stepper frei" +#define MSG_RECTRACT_WIDE "Rectract" #endif // LANGUAGE_DE_H diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 5da470839..c094ff641 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -1,8 +1,12 @@ -#ifndef LANGUAGE_CA_H -#define LANGUAGE_CA_H - -// LCD Menu Messages -// Please note these are limited to 17 characters! +/** + * English + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ +#ifndef LANGUAGE_EN_H +#define LANGUAGE_EN_H #define WELCOME_MSG MACHINE_NAME " ready." #define MSG_SD_INSERTED "Card inserted" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_RECTRACT "Rectract" #define MSG_TEMPERATURE "Temperature" #define MSG_MOTION "Motion" #define MSG_CONTRAST "LCD contrast" @@ -122,4 +125,6 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#endif // LANGUAGE_CA_H +#define MSG_RECTRACT "Rectract" + +#endif // LANGUAGE_EN_H diff --git a/Marlin/language_es.h b/Marlin/language_es.h index 1989a759d..eff9d6a8a 100644 --- a/Marlin/language_es.h +++ b/Marlin/language_es.h @@ -1,9 +1,13 @@ +/** + * Spanish + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_ES_H #define LANGUAGE_ES_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " lista." #define MSG_SD_INSERTED "Tarjeta colocada" #define MSG_SD_REMOVED "Tarjeta retirada" @@ -80,9 +84,9 @@ #define MSG_YSTEPS "Y pasos/mm" #define MSG_ZSTEPS "Z pasos/mm" #define MSG_ESTEPS "E pasos/mm" -#define MSG_RECTRACT "Retraer" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimiento" +#define MSG_CONTRAST "Contraste" #define MSG_STORE_EPROM "Guardar memoria" #define MSG_LOAD_EPROM "Cargar memoria" #define MSG_RESTORE_FAILSAFE "Rest. de emergen." @@ -113,15 +117,6 @@ #define MSG_FILAMENTCHANGE "Cambiar filamento" #define MSG_INIT_SDCARD "Iniciando tarjeta" #define MSG_CNG_SDCARD "Cambiar tarjeta" -#define MSG_RECTRACT_WIDE "Retraer" -#define MSG_TEMPERATURE_WIDE "Temperatura" -#define MSG_TEMPERATURE_RTN "Temperatura" -#define MSG_MAIN_WIDE "Menu principal" -#define MSG_MOTION_WIDE "Movimiento" -#define MSG_PREPARE_ALT "Preparar" -#define MSG_CONTROL_ARROW "Control" -#define MSG_RETRACT_ARROW "Retraer" -#define MSG_STEPPER_RELEASED "Desacoplada." #define MSG_ZPROBE_OUT "sonda Z fuera" #define MSG_POSITION_UNKNOWN "Reiniciar X/Y y Z" #define MSG_ZPROBE_ZOFFSET "Offset Z" @@ -129,6 +124,16 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_CONTRAST "Contraste" + +#define MSG_RECTRACT "Retraer" +#define MSG_RECTRACT_WIDE "Retraer" +#define MSG_TEMPERATURE_WIDE "Temperatura" +#define MSG_TEMPERATURE_RTN "Temperatura" +#define MSG_MAIN_WIDE "Menu principal" +#define MSG_MOTION_WIDE "Movimiento" +#define MSG_PREPARE_ALT "Preparar" +#define MSG_CONTROL_ARROW "Control \x7E" +#define MSG_RETRACT_ARROW "Retraer \x7E" +#define MSG_STEPPER_RELEASED "Desacoplada." #endif // LANGUAGE_ES_H diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h index 5fad486f9..4b31b6567 100644 --- a/Marlin/language_eu.h +++ b/Marlin/language_eu.h @@ -1,9 +1,13 @@ +/** + * Basque-Euskera + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_EU_H #define LANGUAGE_EU_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " prest." #define MSG_SD_INSERTED "Txartela sartuta" #define MSG_SD_REMOVED "Txartela kenduta" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Y pausoak/mm" #define MSG_ZSTEPS "Z pausoak/mm" #define MSG_ESTEPS "E pausoak/mm" -#define MSG_RECTRACT "Atzera eragin" #define MSG_TEMPERATURE "Tenperatura" #define MSG_MOTION "Mugimendua" #define MSG_CONTRAST "LCD kontrastea" @@ -122,4 +125,6 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop deuseztat" +#define MSG_RECTRACT "Atzera eragin" + #endif // LANGUAGE_EU_H diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h index 97ca7d7c2..b88c3759a 100644 --- a/Marlin/language_fi.h +++ b/Marlin/language_fi.h @@ -1,9 +1,13 @@ +/** + * Finnish + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_FI_H #define LANGUAGE_FI_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " valmis." #define MSG_SD_INSERTED "Kortti asetettu" #define MSG_SD_REMOVED "Kortti poistettu" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_RECTRACT "Veda takaisin" #define MSG_TEMPERATURE "Lampotila" #define MSG_MOTION "Liike" #define MSG_CONTRAST "LCD contrast" @@ -122,4 +125,6 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_RECTRACT "Veda takaisin" + #endif // LANGUAGE_FI_H diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h index 619a048ce..ffcfeb481 100644 --- a/Marlin/language_fr.h +++ b/Marlin/language_fr.h @@ -1,128 +1,131 @@ +/** + * French + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_FR_H #define LANGUAGE_FR_H -// LCD Menu Messages -// Please note these are limited to 17 characters! +#define WELCOME_MSG MACHINE_NAME " prete." +#define MSG_SD_INSERTED "Carte inseree" +#define MSG_SD_REMOVED "Carte retiree" +#define MSG_MAIN "Menu principal" +#define MSG_AUTOSTART "Demarrage auto" +#define MSG_DISABLE_STEPPERS "Arreter moteurs" +#define MSG_AUTO_HOME "Home auto." +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Regler origine" +#define MSG_PREHEAT_PLA "Prechauffage PLA" +#define MSG_PREHEAT_PLA0 "Prechauff. PLA 1" +#define MSG_PREHEAT_PLA1 "Prechauff. PLA 2" +#define MSG_PREHEAT_PLA2 "Prechauff. PLA 3" +#define MSG_PREHEAT_PLA012 "Prech. PLA Tout" +#define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau" +#define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA" +#define MSG_PREHEAT_ABS "Prechauffage ABS" +#define MSG_PREHEAT_ABS0 "Prechauff. ABS 1" +#define MSG_PREHEAT_ABS1 "Prechauff. ABS 2" +#define MSG_PREHEAT_ABS2 "Prechauff. ABS 3" +#define MSG_PREHEAT_ABS012 "Prech. ABS Tout" +#define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau" +#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" +#define MSG_COOLDOWN "Refroidir" +#define MSG_SWITCH_PS_ON "Allumer alim." +#define MSG_SWITCH_PS_OFF "Eteindre alim." +#define MSG_EXTRUDE "Extrusion" +#define MSG_RETRACT "Retraction" +#define MSG_MOVE_AXIS "Deplacer un axe" +#define MSG_MOVE_X "Move X" +#define MSG_MOVE_Y "Move Y" +#define MSG_MOVE_Z "Move Z" +#define MSG_MOVE_E "Extruder" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED " Vitesse" +#define MSG_NOZZLE "Buse" +#define MSG_NOZZLE1 "Buse2" +#define MSG_NOZZLE2 "Buse3" +#define MSG_BED "Plateau" +#define MSG_FAN_SPEED "Vite. ventilateur" +#define MSG_FLOW "Flux" +#define MSG_FLOW0 "Flux 0" +#define MSG_FLOW1 "Flux 1" +#define MSG_FLOW2 "Flux 2" +#define MSG_CONTROL "Controler" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Facteur" +#define MSG_AUTOTEMP "Temp. Auto." +#define MSG_ON "Marche " +#define MSG_OFF "Arret" +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Accel" +#define MSG_VXY_JERK "Vxy-jerk" +#define MSG_VZ_JERK "Vz-jerk" +#define MSG_VE_JERK "Ve-jerk" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "Vdepl min" +#define MSG_AMAX "Amax " +#define MSG_A_RETRACT "A-retract" +#define MSG_XSTEPS "Xpas/mm" +#define MSG_YSTEPS "Ypas/mm" +#define MSG_ZSTEPS "Zpas/mm" +#define MSG_ESTEPS "Epas/mm" +#define MSG_TEMPERATURE "Temperature" +#define MSG_MOTION "Mouvement" +#define MSG_CONTRAST "Contraste LCD" +#define MSG_STORE_EPROM "Sauver config" +#define MSG_LOAD_EPROM "Lire config" +#define MSG_RESTORE_FAILSAFE "Restaurer defauts" +#define MSG_REFRESH "Actualiser" +#define MSG_WATCH "Surveiller" +#define MSG_PREPARE "Preparer" +#define MSG_TUNE "Regler" +#define MSG_PAUSE_PRINT "Interrompre impr." +#define MSG_RESUME_PRINT "Reprendre impr." +#define MSG_STOP_PRINT "Arreter impr." +#define MSG_CARD_MENU "Impr. depuis SD" +#define MSG_NO_CARD "Pas de carte" +#define MSG_DWELL "Repos..." +#define MSG_USERWAIT "Atten. de l'util." +#define MSG_RESUMING "Repri. de l'impr." +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Aucun mouvement." +#define MSG_KILLED "MORT." +#define MSG_STOPPED "STOPPE." +#define MSG_CONTROL_RETRACT "Retraction mm" +#define MSG_CONTROL_RETRACT_SWAP "Ech. Retr. mm" +#define MSG_CONTROL_RETRACTF "Retraction V" +#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ech. UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" +#define MSG_AUTORETRACT "Retract. Auto." +#define MSG_FILAMENTCHANGE "Changer filament" +#define MSG_INIT_SDCARD "Init. la carte SD" +#define MSG_CNG_SDCARD "Changer de carte" +#define MSG_ZPROBE_OUT "Z sonde exte. lit" +#define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z" +#define MSG_ZPROBE_ZOFFSET "Offset Z" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Butee abandon" -#define WELCOME_MSG MACHINE_NAME " prete." -#define MSG_SD_INSERTED "Carte inseree" -#define MSG_SD_REMOVED "Carte retiree" -#define MSG_MAIN "Menu principal" -#define MSG_AUTOSTART "Demarrage auto" -#define MSG_DISABLE_STEPPERS "Arreter moteurs" -#define MSG_AUTO_HOME "Home auto." -#define MSG_SET_HOME_OFFSETS "Set home offsets" -#define MSG_SET_ORIGIN "Regler origine" -#define MSG_PREHEAT_PLA " Prechauffage PLA" -#define MSG_PREHEAT_PLA0 "Prechauff. PLA 1" -#define MSG_PREHEAT_PLA1 "Prechauff. PLA 2" -#define MSG_PREHEAT_PLA2 "Prechauff. PLA 3" -#define MSG_PREHEAT_PLA012 "Prech. PLA Tout" -#define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau" -#define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA" -#define MSG_PREHEAT_ABS "Prechauffage ABS" -#define MSG_PREHEAT_ABS0 "Prechauff. ABS 1" -#define MSG_PREHEAT_ABS1 "Prechauff. ABS 2" -#define MSG_PREHEAT_ABS2 "Prechauff. ABS 3" -#define MSG_PREHEAT_ABS012 "Prech. ABS Tout" -#define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau" -#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" -#define MSG_COOLDOWN "Refroidir" -#define MSG_SWITCH_PS_ON "Allumer alim." -#define MSG_SWITCH_PS_OFF "Eteindre alim." -#define MSG_EXTRUDE "Extrusion" -#define MSG_RETRACT "Retraction" -#define MSG_PREHEAT_PLA "Prechauffage PLA" -#define MSG_PREHEAT_ABS "Prechauffage ABS" -#define MSG_MOVE_AXIS "Deplacer un axe" -#define MSG_MOVE_X "Move X" -#define MSG_MOVE_Y "Move Y" -#define MSG_MOVE_Z "Move Z" -#define MSG_MOVE_E "Extruder" -#define MSG_MOVE_E1 "Extruder2" -#define MSG_MOVE_E2 "Extruder3" -#define MSG_MOVE_01MM "Move 0.1mm" -#define MSG_MOVE_1MM "Move 1mm" -#define MSG_MOVE_10MM "Move 10mm" -#define MSG_SPEED " Vitesse" -#define MSG_NOZZLE "Buse" -#define MSG_NOZZLE1 "Buse2" -#define MSG_NOZZLE2 "Buse3" -#define MSG_BED "Plateau" -#define MSG_FAN_SPEED "Vite. ventilateur" -#define MSG_FLOW "Flux" -#define MSG_FLOW0 "Flux 0" -#define MSG_FLOW1 "Flux 1" -#define MSG_FLOW2 "Flux 2" -#define MSG_CONTROL "Controler" -#define MSG_MIN " \002 Min" -#define MSG_MAX " \002 Max" -#define MSG_FACTOR " \002 Facteur" -#define MSG_AUTOTEMP "Temp. Auto." -#define MSG_ON "Marche " -#define MSG_OFF "Arret" -#define MSG_PID_P "PID-P" -#define MSG_PID_I "PID-I" -#define MSG_PID_D "PID-D" -#define MSG_PID_C "PID-C" -#define MSG_ACC "Accel" -#define MSG_VXY_JERK "Vxy-jerk" -#define MSG_VZ_JERK "Vz-jerk" -#define MSG_VE_JERK "Ve-jerk" -#define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" -#define MSG_VMIN "Vmin" -#define MSG_VTRAV_MIN "Vdepl min" -#define MSG_AMAX "Amax " -#define MSG_A_RETRACT "A-retract" -#define MSG_XSTEPS "Xpas/mm" -#define MSG_YSTEPS "Ypas/mm" -#define MSG_ZSTEPS "Zpas/mm" -#define MSG_ESTEPS "Epas/mm" -#define MSG_TEMPERATURE "Temperature" -#define MSG_MOTION "Mouvement" -#define MSG_CONTRAST "Contraste LCD" -#define MSG_STORE_EPROM "Sauver config" -#define MSG_LOAD_EPROM "Lire config" -#define MSG_RESTORE_FAILSAFE "Restaurer defauts" -#define MSG_REFRESH "Actualiser" -#define MSG_WATCH "Surveiller" -#define MSG_PREPARE "Preparer" -#define MSG_TUNE "Regler" -#define MSG_PAUSE_PRINT "Interrompre impr." -#define MSG_RESUME_PRINT "Reprendre impr." -#define MSG_STOP_PRINT "Arreter impr." -#define MSG_CARD_MENU "Impr. depuis SD" -#define MSG_NO_CARD "Pas de carte" -#define MSG_DWELL "Repos..." -#define MSG_USERWAIT "Atten. de l'util." -#define MSG_RESUMING "Repri. de l'impr." -#define MSG_PRINT_ABORTED "Print aborted" -#define MSG_NO_MOVE "Aucun mouvement." -#define MSG_KILLED "MORT." -#define MSG_STOPPED "STOPPE." -#define MSG_STEPPER_RELEASED "RELACHE." -#define MSG_CONTROL_RETRACT "Retraction mm" -#define MSG_CONTROL_RETRACT_SWAP "Ech. Retr. mm" -#define MSG_CONTROL_RETRACTF "Retraction V" -#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" -#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" -#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Ech. UnRet +mm" -#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" -#define MSG_AUTORETRACT "Retract. Auto." -#define MSG_FILAMENTCHANGE "Changer filament" -#define MSG_INIT_SDCARD "Init. la carte SD" -#define MSG_CNG_SDCARD "Changer de carte" -#define MSG_ZPROBE_OUT "Z sonde exte. lit" -#define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z" -#define MSG_ZPROBE_ZOFFSET "Offset Z" -#define MSG_BABYSTEP_X "Babystep X" -#define MSG_BABYSTEP_Y "Babystep Y" -#define MSG_BABYSTEP_Z "Babystep Z" -#define MSG_ENDSTOP_ABORT "Butee abandon" -#define MSG_CONTRAST "Contrast" +#define MSG_RECTRACT "Rectract" +#define MSG_STEPPER_RELEASED "RELACHE." #endif // LANGUAGE_FR_H diff --git a/Marlin/language_it.h b/Marlin/language_it.h index 4c8dfec22..b70a0841c 100644 --- a/Marlin/language_it.h +++ b/Marlin/language_it.h @@ -1,9 +1,13 @@ +/** + * Italian + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_IT_H #define LANGUAGE_IT_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " pronto." #define MSG_SD_INSERTED "SD Card inserita" #define MSG_SD_REMOVED "SD Card rimossa" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ypassi/mm" #define MSG_ZSTEPS "Zpassi/mm" #define MSG_ESTEPS "Epassi/mm" -#define MSG_RECTRACT "Ritrai" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimento" #define MSG_CONTRAST "LCD contrast" @@ -121,6 +124,7 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_CONTRAST "Contrast" + +#define MSG_RECTRACT "Ritrai" #endif // LANGUAGE_IT_H diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h index 972f825e9..56162d34d 100644 --- a/Marlin/language_nl.h +++ b/Marlin/language_nl.h @@ -1,9 +1,13 @@ +/** + * Dutch + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_NL_H #define LANGUAGE_NL_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " gereed." #define MSG_SD_INSERTED "Kaart ingestoken" #define MSG_SD_REMOVED "Kaart verwijderd" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_RECTRACT "Terugtrekken" #define MSG_TEMPERATURE "Temperatuur" #define MSG_MOTION "Beweging" #define MSG_CONTRAST "LCD contrast" @@ -122,4 +125,6 @@ #define MSG_BABYSTEP_Z "Babystap Z" #define MSG_ENDSTOP_ABORT "Endstop afbr." +#define MSG_RECTRACT "Terugtrekken" + #endif // LANGUAGE_NL_H diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h index 4426d014c..430b90053 100644 --- a/Marlin/language_pl.h +++ b/Marlin/language_pl.h @@ -1,128 +1,131 @@ +/** + * Polish + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_PL_H #define LANGUAGE_PL_H -// LCD Menu Messages -// Please note these are limited to 17 characters! +#define WELCOME_MSG MACHINE_NAME " gotowy." +#define MSG_SD_INSERTED "Karta wlozona" +#define MSG_SD_REMOVED "Karta usunieta" +#define MSG_MAIN "Menu glowne" +#define MSG_AUTOSTART "Autostart" +#define MSG_DISABLE_STEPPERS "Wylacz silniki" +#define MSG_AUTO_HOME "Auto. poz. zerowa" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Ustaw punkt zero" +#define MSG_PREHEAT_PLA "Rozgrzej PLA" +#define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" +#define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" +#define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" +#define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko" +#define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" +#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" +#define MSG_PREHEAT_ABS "Rozgrzej ABS" +#define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1" +#define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" +#define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" +#define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko" +#define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" +#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" +#define MSG_COOLDOWN "Chlodzenie" +#define MSG_SWITCH_PS_ON "Wlacz zasilacz" +#define MSG_SWITCH_PS_OFF "Wylacz zasilacz" +#define MSG_EXTRUDE "Ekstruzja" +#define MSG_RETRACT "Cofanie" +#define MSG_MOVE_AXIS "Ruch osi" +#define MSG_MOVE_X "Przesun w X" +#define MSG_MOVE_Y "Przesun w Y" +#define MSG_MOVE_Z "Przesun w Z" +#define MSG_MOVE_E "Ekstruzja (os E)" +#define MSG_MOVE_E1 "Extruder2" +#define MSG_MOVE_E2 "Extruder3" +#define MSG_MOVE_01MM "Przesuwaj co .1mm" +#define MSG_MOVE_1MM "Przesuwaj co 1mm" +#define MSG_MOVE_10MM "Przesuwaj co 10mm" +#define MSG_SPEED "Predkosc" +#define MSG_NOZZLE "Dysza" +#define MSG_NOZZLE1 "Dysza 2" +#define MSG_NOZZLE2 "Dysza 3" +#define MSG_BED "Loze" +#define MSG_FAN_SPEED "Obroty wiatraka" +#define MSG_FLOW "Przeplyw" +#define MSG_FLOW0 "Przeplyw 0" +#define MSG_FLOW1 "Przeplyw 1" +#define MSG_FLOW2 "Przeplyw 2" +#define MSG_CONTROL "Ustawienia" +#define MSG_MIN " \002 Min" +#define MSG_MAX " \002 Max" +#define MSG_FACTOR " \002 Mnoznik" +#define MSG_AUTOTEMP "Auto. temperatura" +#define MSG_ON "Wl. " +#define MSG_OFF "Wyl." +#define MSG_PID_P "PID-P" +#define MSG_PID_I "PID-I" +#define MSG_PID_D "PID-D" +#define MSG_PID_C "PID-C" +#define MSG_ACC "Przyspieszenie" +#define MSG_VXY_JERK "Zryw Vxy" +#define MSG_VZ_JERK "Zryw Vz" +#define MSG_VE_JERK "Zryw Ve" +#define MSG_VMAX "Vmax" +#define MSG_X "x" +#define MSG_Y "y" +#define MSG_Z "z" +#define MSG_E "e" +#define MSG_VMIN "Vmin" +#define MSG_VTRAV_MIN "Vskok min" +#define MSG_AMAX "Amax" +#define MSG_A_RETRACT "A-wycofanie" +#define MSG_XSTEPS "krokiX/mm" +#define MSG_YSTEPS "krokiY/mm" +#define MSG_ZSTEPS "krokiZ/mm" +#define MSG_ESTEPS "krokiE/mm" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Ruch" +#define MSG_CONTRAST "Kontrast LCD" +#define MSG_STORE_EPROM "Zapisz w pamieci" +#define MSG_LOAD_EPROM "Wczytaj z pamieci" +#define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne" +#define MSG_REFRESH "\004Odswiez" +#define MSG_WATCH "Ekran glowny" +#define MSG_PREPARE "Przygotuj" +#define MSG_TUNE "Strojenie" +#define MSG_PAUSE_PRINT "Pauza" +#define MSG_RESUME_PRINT "Wznowienie" +#define MSG_STOP_PRINT "Stop" +#define MSG_CARD_MENU "Menu karty SD" +#define MSG_NO_CARD "Brak karty" +#define MSG_DWELL "Uspij..." +#define MSG_USERWAIT "Oczekiwanie..." +#define MSG_RESUMING "Wznawianie druku" +#define MSG_PRINT_ABORTED "Print aborted" +#define MSG_NO_MOVE "Brak ruchu" +#define MSG_KILLED "Ubity. " +#define MSG_STOPPED "Zatrzymany. " +#define MSG_CONTROL_RETRACT "Wycofaj mm" +#define MSG_CONTROL_RETRACT_SWAP "Z Wycof. mm" +#define MSG_CONTROL_RETRACTF "Wycofaj V" +#define MSG_CONTROL_RETRACT_ZLIFT "Skok Z mm:" +#define MSG_CONTROL_RETRACT_RECOVER "Cof. wycof. +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Z Cof. wyc. +mm" +#define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. V" +#define MSG_AUTORETRACT "Auto. wycofanie" +#define MSG_FILAMENTCHANGE "Zmien filament" +#define MSG_INIT_SDCARD "Inicjal. karty SD" +#define MSG_CNG_SDCARD "Zmiana karty SD" +#define MSG_ZPROBE_OUT "Sonda Z za lozem" +#define MSG_POSITION_UNKNOWN "Wroc w XY przed Z" +#define MSG_ZPROBE_ZOFFSET "Offset Z" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Blad wyl. kranc." -#define WELCOME_MSG MACHINE_NAME " gotowy." -#define MSG_SD_INSERTED "Karta wlozona" -#define MSG_SD_REMOVED "Karta usunieta" -#define MSG_MAIN "Menu glowne" -#define MSG_AUTOSTART "Autostart" -#define MSG_DISABLE_STEPPERS "Wylacz silniki" -#define MSG_AUTO_HOME "Auto. poz. zerowa" -#define MSG_SET_HOME_OFFSETS "Set home offsets" -#define MSG_SET_ORIGIN "Ustaw punkt zero" -#define MSG_PREHEAT_PLA "Rozgrzej PLA" -#define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" -#define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" -#define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" -#define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko" -#define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" -#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" -#define MSG_PREHEAT_ABS "Rozgrzej ABS" -#define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1" -#define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" -#define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" -#define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko" -#define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" -#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" -#define MSG_COOLDOWN "Chlodzenie" -#define MSG_SWITCH_PS_ON "Wlacz zasilacz" -#define MSG_SWITCH_PS_OFF "Wylacz zasilacz" -#define MSG_EXTRUDE "Ekstruzja" -#define MSG_RETRACT "Cofanie" -#define MSG_MOVE_AXIS "Ruch osi" -#define MSG_MOVE_X "Przesun w X" -#define MSG_MOVE_Y "Przesun w Y" -#define MSG_MOVE_Z "Przesun w Z" -#define MSG_MOVE_E "Ekstruzja (os E)" -#define MSG_MOVE_E1 "Extruder2" -#define MSG_MOVE_E2 "Extruder3" -#define MSG_MOVE_01MM "Przesuwaj co .1mm" -#define MSG_MOVE_1MM "Przesuwaj co 1mm" -#define MSG_MOVE_10MM "Przesuwaj co 10mm" -#define MSG_SPEED "Predkosc" -#define MSG_NOZZLE "Dysza" -#define MSG_NOZZLE1 "Dysza 2" -#define MSG_NOZZLE2 "Dysza 3" -#define MSG_BED "Loze" -#define MSG_FAN_SPEED "Obroty wiatraka" -#define MSG_FLOW "Przeplyw" -#define MSG_FLOW0 "Przeplyw 0" -#define MSG_FLOW1 "Przeplyw 1" -#define MSG_FLOW2 "Przeplyw 2" -#define MSG_CONTROL "Kontrola" -#define MSG_MIN " \002 Min" -#define MSG_MAX " \002 Max" -#define MSG_FACTOR " \002 Mnoznik" -#define MSG_AUTOTEMP "Auto. temperatura" -#define MSG_ON "Wl. " -#define MSG_OFF "Wyl." -#define MSG_PID_P "PID-P" -#define MSG_PID_I "PID-I" -#define MSG_PID_D "PID-D" -#define MSG_PID_C "PID-C" -#define MSG_ACC "Przyspieszenie" -#define MSG_VXY_JERK "Zryw Vxy" -#define MSG_VZ_JERK "Zryw Vz" -#define MSG_VE_JERK "Zryw Ve" -#define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" -#define MSG_VMIN "Vmin" -#define MSG_VTRAV_MIN "Vskok min" -#define MSG_AMAX "Amax" -#define MSG_A_RETRACT "A-wycofanie" -#define MSG_XSTEPS "krokiX/mm" -#define MSG_YSTEPS "krokiY/mm" -#define MSG_ZSTEPS "krokiZ/mm" -#define MSG_ESTEPS "krokiE/mm" -#define MSG_RECTRACT "Wycofanie" -#define MSG_TEMPERATURE "Temperatura" -#define MSG_MOTION "Ruch" -#define MSG_CONTRAST "Kontrast LCD" -#define MSG_STORE_EPROM "Zapisz w pamieci" -#define MSG_LOAD_EPROM "Wczytaj z pamieci" -#define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne" -#define MSG_REFRESH "\004Odswiez" -#define MSG_WATCH "Ekran glowny" -#define MSG_PREPARE "Przygotuj" -#define MSG_CONTROL "Ustawienia" -#define MSG_TUNE "Strojenie" -#define MSG_PAUSE_PRINT "Pauza" -#define MSG_RESUME_PRINT "Wznowienie" -#define MSG_STOP_PRINT "Stop" -#define MSG_CARD_MENU "Menu karty SD" -#define MSG_NO_CARD "Brak karty" -#define MSG_DWELL "Uspij..." -#define MSG_USERWAIT "Oczekiwanie..." -#define MSG_RESUMING "Wznawianie druku" -#define MSG_PRINT_ABORTED "Print aborted" -#define MSG_NO_MOVE "Brak ruchu" -#define MSG_KILLED "Ubity. " -#define MSG_STOPPED "Zatrzymany. " -#define MSG_STEPPER_RELEASED "Zwolniony." -#define MSG_CONTROL_RETRACT "Wycofaj mm" -#define MSG_CONTROL_RETRACT_SWAP "Z Wycof. mm" -#define MSG_CONTROL_RETRACTF "Wycofaj V" -#define MSG_CONTROL_RETRACT_ZLIFT "Skok Z mm:" -#define MSG_CONTROL_RETRACT_RECOVER "Cof. wycof. +mm" -#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Z Cof. wyc. +mm" -#define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. V" -#define MSG_AUTORETRACT "Auto. wycofanie" -#define MSG_FILAMENTCHANGE "Zmien filament" -#define MSG_INIT_SDCARD "Inicjal. karty SD" -#define MSG_CNG_SDCARD "Zmiana karty SD" -#define MSG_ZPROBE_OUT "Sonda Z za lozem" -#define MSG_POSITION_UNKNOWN "Wroc w XY przed Z" -#define MSG_ZPROBE_ZOFFSET "Offset Z" -#define MSG_BABYSTEP_X "Babystep X" -#define MSG_BABYSTEP_Y "Babystep Y" -#define MSG_BABYSTEP_Z "Babystep Z" -#define MSG_ENDSTOP_ABORT "Blad wyl. kranc." -#define MSG_CONTRAST "Kontrast" +#define MSG_RECTRACT "Wycofanie" +#define MSG_STEPPER_RELEASED "Zwolniony." #endif // LANGUAGE_PL_H diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index 868e8530c..5c6f4fe7f 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -1,9 +1,13 @@ +/** + * Portuguese + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_PT_H #define LANGUAGE_PT_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " pronto." #define MSG_SD_INSERTED "Cartao inserido" #define MSG_SD_REMOVED "Cartao removido" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Ypasso/mm:" #define MSG_ZSTEPS "Zpasso/mm:" #define MSG_ESTEPS "Epasso/mm:" -#define MSG_RECTRACT "Retrair" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimento" #define MSG_CONTRAST "Contrast" @@ -122,10 +125,11 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_RECTRACT "Retrair" +#define MSG_MAIN_WIDE "Menu Principal \003" #define MSG_PREPARE_ALT "Preparar \003" #define MSG_CONTROL_ARROW "Controle \x7E" #define MSG_RETRACT_ARROW "Retrair \x7E" -#define MSG_MAIN_WIDE "Menu Principal \003" #define MSG_STEPPER_RELEASED "Lancado." #endif // LANGUAGE_PT_H diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h index 3ece77545..844b3776b 100644 --- a/Marlin/language_ru.h +++ b/Marlin/language_ru.h @@ -1,9 +1,13 @@ +/** + * Russian + * + * LCD Menu Messages + * Please note these are limited to 17 characters! + * + */ #ifndef LANGUAGE_RU_H #define LANGUAGE_RU_H -// LCD Menu Messages -// Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME "Готов." #define MSG_SD_INSERTED "Карта вÑтавлена" #define MSG_SD_REMOVED "Карта извлечена" @@ -80,7 +84,6 @@ #define MSG_YSTEPS "Y шаг/mm:" #define MSG_ZSTEPS "Z шаг/mm:" #define MSG_ESTEPS "E шаг/mm:" -#define MSG_RECTRACT "Откат подачи \x7E" #define MSG_TEMPERATURE "Температура \x7E" #define MSG_MOTION "СкороÑти \x7E" #define MSG_CONTRAST "LCD contrast" @@ -121,6 +124,7 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_CONTRAST "Contrast" + +#define MSG_RECTRACT "Откат подачи \x7E" #endif // LANGUAGE_RU_H From 174f8d363160ebc53937b03e92ecab8617d2a4aa Mon Sep 17 00:00:00 2001 From: Bo Herrmannsen Date: Thu, 18 Dec 2014 20:34:24 +0100 Subject: [PATCH 28/33] Added example configs for printers from http://tvrrug.org.uk/ --- .../tvrrug/Round2/Configuration.h | 820 ++++++++++++++++++ .../tvrrug/Round2/Configuration_adv.h | 501 +++++++++++ 2 files changed, 1321 insertions(+) create mode 100644 Marlin/example_configurations/tvrrug/Round2/Configuration.h create mode 100644 Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h new file mode 100644 index 000000000..527431a5b --- /dev/null +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -0,0 +1,820 @@ +#ifndef CONFIGURATION_H +#define CONFIGURATION_H + +// This configuration file contains the basic settings. +// Advanced settings can be found in Configuration_adv.h +// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration + +//=========================================================================== +//============================= DELTA Printer =============================== +//=========================================================================== +// For a Delta printer replace the configuration files with the files in the +// example_configurations/delta directory. +// + +//=========================================================================== +//============================= SCARA Printer =============================== +//=========================================================================== +// For a Delta printer replace the configuration files with the files in the +// example_configurations/SCARA directory. +// + +// User-specified version info of this build to display in [Pronterface, etc] terminal window during +// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this +// build by the user have been successfully uploaded into firmware. +#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time +#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. + +// SERIAL_PORT selects which serial port should be used for communication with the host. +// This allows the connection of wireless adapters (for instance) to non-default port pins. +// Serial port 0 is still used by the Arduino bootloader regardless of this setting. +#define SERIAL_PORT 0 + +// This determines the communication speed of the printer +#define BAUDRATE 250000 + +// This enables the serial port associated to the Bluetooth interface +//#define BTENABLED // Enable BT interface on AT90USB devices + + +//// The following define selects which electronics board you have. Please choose the one that matches your setup +// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" +// 11 = Gen7 v1.1, v1.2 = 11 +// 12 = Gen7 v1.3 +// 13 = Gen7 v1.4 +// 2 = Cheaptronic v1.0 +// 20 = Sethi 3D_1 +// 3 = MEGA/RAMPS up to 1.2 = 3 +// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) +// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) +// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) +// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) +// 4 = Duemilanove w/ ATMega328P pin assignment +// 5 = Gen6 +// 51 = Gen6 deluxe +// 6 = Sanguinololu < 1.2 +// 62 = Sanguinololu 1.2 and above +// 63 = Melzi +// 64 = STB V1.1 +// 65 = Azteeg X1 +// 66 = Melzi with ATmega1284 (MaKr3d version) +// 67 = Azteeg X3 +// 68 = Azteeg X3 Pro +// 7 = Ultimaker +// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) +// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) +// 77 = 3Drag Controller +// 8 = Teensylu +// 80 = Rumba +// 81 = Printrboard (AT90USB1286) +// 82 = Brainwave (AT90USB646) +// 83 = SAV Mk-I (AT90USB1286) +// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make +// 9 = Gen3+ +// 70 = Megatronics +// 701= Megatronics v2.0 +// 702= Minitronics v1.0 +// 90 = Alpha OMCA board +// 91 = Final OMCA board +// 301= Rambo +// 21 = Elefu Ra Board (v3) +// 88 = 5DPrint D8 Driver Board +// 999 = Leapfrog + +#ifndef MOTHERBOARD +#define MOTHERBOARD 91 +#endif + +// Define this to set a custom name for your generic Mendel, +// #define CUSTOM_MENDEL_NAME "This Mendel" + +// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines) +// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4) +// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" + +// This defines the number of extruders +#define EXTRUDERS 1 + +//// The following define selects which power supply you have. Please choose the one that matches your setup +// 1 = ATX +// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC) + +#define POWER_SUPPLY 1 + +// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. +// #define PS_DEFAULT_OFF + +//=========================================================================== +//=============================Thermal Settings ============================ +//=========================================================================== +// +//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table +// +//// Temperature sensor settings: +// -2 is thermocouple with MAX6675 (only for sensor 0) +// -1 is thermocouple with AD595 +// 0 is not used +// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) +// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) +// 3 is Mendel-parts thermistor (4.7k pullup) +// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! +// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) +// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) +// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) +// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) +// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) +// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) +// 10 is 100k RS thermistor 198-961 (4.7k pullup) +// 11 is 100k beta 3950 1% thermistor (4.7k pullup) +// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) +// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" +// 20 is the PT100 circuit found in the Ultimainboard V2.x +// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 +// +// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k +// (but gives greater accuracy and more stable PID) +// 51 is 100k thermistor - EPCOS (1k pullup) +// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) +// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) +// +// 1047 is Pt1000 with 4k7 pullup +// 1010 is Pt1000 with 1k pullup (non standard) +// 147 is Pt100 with 4k7 pullup +// 110 is Pt100 with 1k pullup (non standard) + +#define TEMP_SENSOR_0 5 +#define TEMP_SENSOR_1 0 +#define TEMP_SENSOR_2 0 +#define TEMP_SENSOR_BED 5 + +// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. +//#define TEMP_SENSOR_1_AS_REDUNDANT +#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 + +// Actual temperature must be close to target for this long before M109 returns success +#define TEMP_RESIDENCY_TIME 10 // (seconds) +#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + +// The minimal temperature defines the temperature below which the heater will not be enabled It is used +// to check that the wiring to the thermistor is not broken. +// Otherwise this would lead to the heater being powered on all the time. +#define HEATER_0_MINTEMP 5 +#define HEATER_1_MINTEMP 5 +#define HEATER_2_MINTEMP 5 +#define BED_MINTEMP 5 + +// When temperature exceeds max temp, your heater will be switched off. +// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! +// You should use MINTEMP for thermistor short/failure protection. +#define HEATER_0_MAXTEMP 275 +#define HEATER_1_MAXTEMP 275 +#define HEATER_2_MAXTEMP 275 +#define BED_MAXTEMP 150 + +#define CONFIG_STEPPERS_TOSHIBA 1 + +// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the +// average current. The value should be an integer and the heat bed will be turned on for 1 interval of +// HEATER_BED_DUTY_CYCLE_DIVIDER intervals. +//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4 + +// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS +//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R +//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R + +// PID settings: +// Comment the following line to disable PID and enable bang-bang. +#define PIDTEMP +#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current +#define PID_MAX 255 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current +#ifdef PIDTEMP + //#define PID_DEBUG // Sends debug data to the serial port. + //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX + #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature + // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + #define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term + #define K1 0.95 //smoothing factor within the PID + #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine + +// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it +// J-Head Mk V-B + #define DEFAULT_Kp 25.05 + #define DEFAULT_Ki 2.30 + #define DEFAULT_Kd 68.15 + +// Ultimaker +// #define DEFAULT_Kp 22.2 +// #define DEFAULT_Ki 1.08 +// #define DEFAULT_Kd 114 + +// MakerGear +// #define DEFAULT_Kp 7.0 +// #define DEFAULT_Ki 0.1 +// #define DEFAULT_Kd 12 + +// Mendel Parts V9 on 12V +// #define DEFAULT_Kp 63.0 +// #define DEFAULT_Ki 2.25 +// #define DEFAULT_Kd 440 +#endif // PIDTEMP + +// Bed Temperature Control +// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis +// +// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. +// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz, +// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating. +// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater. +// If your configuration is significantly different than this and you don't understand the issues involved, you probably +// shouldn't use bed PID until someone else verifies your hardware works. +// If this is enabled, find your own PID constants below. +//#define PIDTEMPBED +// +//#define BED_LIMIT_SWITCHING + +// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. +// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) +// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, +// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED) +#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current + +#ifdef PIDTEMPBED +//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) +//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) + #define DEFAULT_bedKp 10.00 + #define DEFAULT_bedKi .023 + #define DEFAULT_bedKd 305.4 + +//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) +//from pidautotune +// #define DEFAULT_bedKp 97.1 +// #define DEFAULT_bedKi 1.41 +// #define DEFAULT_bedKd 1675.16 + +// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. +#endif // PIDTEMPBED + + + +//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit +//can be software-disabled for whatever purposes by +#define PREVENT_DANGEROUS_EXTRUDE +//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately. +#define PREVENT_LENGTHY_EXTRUDE + +#define EXTRUDE_MINTEMP 170 +#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. + +/*================== Thermal Runaway Protection ============================== +This is a feature to protect your printer from burn up in flames if it has +a thermistor coming off place (this happened to a friend of mine recently and +motivated me writing this feature). + +The issue: If a thermistor come off, it will read a lower temperature than actual. +The system will turn the heater on forever, burning up the filament and anything +else around. + +After the temperature reaches the target for the first time, this feature will +start measuring for how long the current temperature stays below the target +minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS). + +If it stays longer than _PERIOD, it means the thermistor temperature +cannot catch up with the target, so something *may be* wrong. Then, to be on the +safe side, the system will he halt. + +Bear in mind the count down will just start AFTER the first time the +thermistor temperature is over the target, so you will have no problem if +your extruder heater takes 2 minutes to hit the target on heating. + +*/ +// If you want to enable this feature for all your extruder heaters, +// uncomment the 2 defines below: + +// Parameters for all extruder heaters +//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds +//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius + +// If you want to enable this feature for your bed heater, +// uncomment the 2 defines below: + +// Parameters for the bed heater +//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds +//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius +//=========================================================================== + + +//=========================================================================== +//=============================Mechanical Settings=========================== +//=========================================================================== + +// Uncomment the following line to enable CoreXY kinematics +// #define COREXY + +// coarse Endstop Settings +#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors + +#ifndef ENDSTOPPULLUPS + // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined + // #define ENDSTOPPULLUP_XMAX + // #define ENDSTOPPULLUP_YMAX + // #define ENDSTOPPULLUP_ZMAX + // #define ENDSTOPPULLUP_XMIN + // #define ENDSTOPPULLUP_YMIN + // #define ENDSTOPPULLUP_ZMIN +#endif + +#ifdef ENDSTOPPULLUPS + #define ENDSTOPPULLUP_XMAX + #define ENDSTOPPULLUP_YMAX + #define ENDSTOPPULLUP_ZMAX + #define ENDSTOPPULLUP_XMIN + #define ENDSTOPPULLUP_YMIN + #define ENDSTOPPULLUP_ZMIN +#endif + +// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. +const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +//#define DISABLE_MAX_ENDSTOPS +//#define DISABLE_MIN_ENDSTOPS + +// Disable max endstops for compatibility with endstop checking routine +#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) + #define DISABLE_MAX_ENDSTOPS +#endif + +// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 +#define X_ENABLE_ON 1 +#define Y_ENABLE_ON 1 +#define Z_ENABLE_ON 1 +#define E_ENABLE_ON 1 // For all extruders + +// Disables axis when it's not being used. +#define DISABLE_X false +#define DISABLE_Y false +#define DISABLE_Z false +#define DISABLE_E false // For all extruders +#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled + +#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true +#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false +#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true +#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false +#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false +#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false + +// ENDSTOP SETTINGS: +// Sets direction of endstops when homing; 1=MAX, -1=MIN +#define X_HOME_DIR -1 +#define Y_HOME_DIR -1 +#define Z_HOME_DIR -1 + +#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. +#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. + +// Travel limits after homing +#define X_MAX_POS 205 +#define X_MIN_POS 0 +#define Y_MAX_POS 205 +#define Y_MIN_POS 0 +#define Z_MAX_POS 120 +#define Z_MIN_POS 0 + +#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) +#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) +#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) +//============================= Bed Auto Leveling =========================== + +//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) +#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. + +#ifdef ENABLE_AUTO_BED_LEVELING + +// There are 2 different ways to pick the X and Y locations to probe: + +// - "grid" mode +// Probe every point in a rectangular grid +// You must specify the rectangle, and the density of sample points +// This mode is preferred because there are more measurements. +// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive + +// - "3-point" mode +// Probe 3 arbitrary points on the bed (that aren't colinear) +// You must specify the X & Y coordinates of all 3 points + + #define AUTO_BED_LEVELING_GRID + // with AUTO_BED_LEVELING_GRID, the bed is sampled in a + // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid + // and least squares solution is calculated + // Note: this feature occupies 10'206 byte + #ifdef AUTO_BED_LEVELING_GRID + + // set the rectangle in which to probe + #define LEFT_PROBE_BED_POSITION 15 + #define RIGHT_PROBE_BED_POSITION 170 + #define BACK_PROBE_BED_POSITION 180 + #define FRONT_PROBE_BED_POSITION 20 + + // set the number of grid points per dimension + // I wouldn't see a reason to go above 3 (=9 probing points on the bed) + #define AUTO_BED_LEVELING_GRID_POINTS 2 + + + #else // not AUTO_BED_LEVELING_GRID + // with no grid, just probe 3 arbitrary points. A simple cross-product + // is used to esimate the plane of the print bed + + #define ABL_PROBE_PT_1_X 15 + #define ABL_PROBE_PT_1_Y 180 + #define ABL_PROBE_PT_2_X 15 + #define ABL_PROBE_PT_2_Y 20 + #define ABL_PROBE_PT_3_X 170 + #define ABL_PROBE_PT_3_Y 20 + + #endif // AUTO_BED_LEVELING_GRID + + + // these are the offsets to the probe relative to the extruder tip (Hotend - Probe) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 + + #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. + // Be sure you have this distance over your Z_MAX_POS in case + + #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min + + #define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. + #define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points + + //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell + //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + + //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk + //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it. + // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile. + +// #define PROBE_SERVO_DEACTIVATION_DELAY 300 + + +//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, +//it is highly recommended you let this Z_SAFE_HOMING enabled!!! + + #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. + // When defined, it will: + // - Allow Z homing only after X and Y homing AND stepper drivers still enabled + // - If stepper drivers timeout, it will need X and Y homing again before Z homing + // - Position the probe in a defined XY point before Z Homing when homing all axis (G28) + // - Block Z homing only when the probe is outside bed area. + + #ifdef Z_SAFE_HOMING + + #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28) + #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28) + + #endif + +#endif // ENABLE_AUTO_BED_LEVELING + + +// The position of the homing switches +//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used +//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0) + +//Manual homing switch locations: +// For deltabots this means top and center of the Cartesian print volume. +#define MANUAL_X_HOME_POS 0 +#define MANUAL_Y_HOME_POS 0 +#define MANUAL_Z_HOME_POS 0 +//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. + +//// MOVEMENT SETTINGS +#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E +#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min) + +// default settings + +//#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1} // default steps per unit for Ultimaker +//#define //DEFAULT_AXIS_STEPS_PER_UNIT {79.87, 79.87, 2566, 563,78} // Al's TVRR +//#define DEFAULT_AXIS_STEPS_PER_UNIT {81.26, 80.01, 2561, 599.14} // Michel TVRR old +//#define DEFAULT_AXIS_STEPS_PER_UNIT {71.1, 71.1, 2560, 739.65} // Michel TVRR +#define DEFAULT_AXIS_STEPS_PER_UNIT {71.1, 71.1, 2560, 600} // David TVRR + + + +//#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec) default +#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec) David TVRR +#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. + +/* MICHEL: This has an impact on the "ripples" in print walls */ +#define DEFAULT_ACCELERATION 500 // X, Y, Z and E max acceleration in mm/s^2 for printing moves +//#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves +#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts + +// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). +// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). +// For the other hotends it is their distance from the extruder 0 hotend. +// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis +// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis + +// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously) +#define DEFAULT_XYJERK 20.0 // (mm/sec) +#define DEFAULT_ZJERK 0.4 // (mm/sec) +#define DEFAULT_EJERK 5.0 // (mm/sec) + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +// Custom M code points +#define CUSTOM_M_CODES +#ifdef CUSTOM_M_CODES + #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 + #define Z_PROBE_OFFSET_RANGE_MIN -15 + #define Z_PROBE_OFFSET_RANGE_MAX -5 +#endif + + +// EEPROM +// The microcontroller can store settings in the EEPROM, e.g. max velocity... +// M500 - stores parameters in EEPROM +// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). +// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to. +//define this to enable EEPROM support +//#define EEPROM_SETTINGS +//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out: +// please keep turned on if you can. +//#define EEPROM_CHITCHAT + +// Preheat Constants +#define PLA_PREHEAT_HOTEND_TEMP 180 +#define PLA_PREHEAT_HPB_TEMP 70 +#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +#define ABS_PREHEAT_HOTEND_TEMP 240 +#define ABS_PREHEAT_HPB_TEMP 100 +#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +//LCD and SD support +//#define ULTRA_LCD //general LCD support, also 16x2 +//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) +//#define SDSUPPORT // Enable SD Card Support in Hardware Console +//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) +//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication +//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder +//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking +//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. +//#define ULTIPANEL //the UltiPanel as on Thingiverse +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click + +// The MaKr3d Makr-Panel with graphic controller and SD support +// http://reprap.org/wiki/MaKr3d_MaKrPanel +//#define MAKRPANEL + +// The RepRapDiscount Smart Controller (white PCB) +// http://reprap.org/wiki/RepRapDiscount_Smart_Controller +//#define REPRAP_DISCOUNT_SMART_CONTROLLER + +// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +//#define G3D_PANEL + +// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller +// +// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib +//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + +// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +//#define REPRAPWORLD_KEYPAD +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click + +// The Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARUDINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C +//#define RA_CONTROL_PANEL + +//automatic expansion +#if defined (MAKRPANEL) + #define DOGLCD + #define SDSUPPORT + #define ULTIPANEL + #define NEWPANEL + #define DEFAULT_LCD_CONTRAST 17 +#endif + +#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define DOGLCD + #define U8GLIB_ST7920 + #define REPRAP_DISCOUNT_SMART_CONTROLLER +#endif + +#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL) + #define ULTIPANEL + #define NEWPANEL +#endif + +#if defined(REPRAPWORLD_KEYPAD) + #define NEWPANEL + #define ULTIPANEL +#endif +#if defined(RA_CONTROL_PANEL) + #define ULTIPANEL + #define NEWPANEL + #define LCD_I2C_TYPE_PCA8574 + #define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander +#endif + +//I2C PANELS + +//#define LCD_I2C_SAINSMART_YWROBOT +#ifdef LCD_I2C_SAINSMART_YWROBOT + // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home ) + // Make sure it is placed in the Arduino libraries directory. + #define LCD_I2C_TYPE_PCF8575 + #define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander + #define NEWPANEL + #define ULTIPANEL +#endif + +// PANELOLU2 LCD with status LEDs, separate encoder and click inputs +//#define LCD_I2C_PANELOLU2 +#ifdef LCD_I2C_PANELOLU2 + // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) + // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. + // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) + // Note: The PANELOLU2 encoder click input can either be directly connected to a pin + // (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). + #define LCD_I2C_TYPE_MCP23017 + #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander + #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD + #define NEWPANEL + #define ULTIPANEL + + #ifndef ENCODER_PULSES_PER_STEP + #define ENCODER_PULSES_PER_STEP 4 + #endif + + #ifndef ENCODER_STEPS_PER_MENU_ITEM + #define ENCODER_STEPS_PER_MENU_ITEM 1 + #endif + + + #ifdef LCD_USE_I2C_BUZZER + #define LCD_FEEDBACK_FREQUENCY_HZ 1000 + #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 + #endif + +#endif + +// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +//#define LCD_I2C_VIKI +#ifdef LCD_I2C_VIKI + // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) + // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. + // Note: The pause/stop/resume LCD button pin should be connected to the Arduino + // BTN_ENC pin (or set BTN_ENC to -1 if not used) + #define LCD_I2C_TYPE_MCP23017 + #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander + #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later) + #define NEWPANEL + #define ULTIPANEL +#endif + +// Shift register panels +// --------------------- +// 2 wire Non-latching LCD SR from: +// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +//#define SR_LCD +#ifdef SR_LCD + #define SR_LCD_2W_NL // Non latching 2 wire shift register + //#define NEWPANEL +#endif + + +#ifdef ULTIPANEL +// #define NEWPANEL //enable this if you have a click-encoder panel + #define SDSUPPORT + #define ULTRA_LCD + #ifdef DOGLCD // Change number of lines to match the DOG graphic display + #define LCD_WIDTH 20 + #define LCD_HEIGHT 5 + #else + #define LCD_WIDTH 20 + #define LCD_HEIGHT 4 + #endif +#else //no panel but just LCD + #ifdef ULTRA_LCD + #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display + #define LCD_WIDTH 20 + #define LCD_HEIGHT 5 + #else + #define LCD_WIDTH 16 + #define LCD_HEIGHT 2 + #endif + #endif +#endif + +// default LCD contrast for dogm-like LCD displays +#ifdef DOGLCD +# ifndef DEFAULT_LCD_CONTRAST +# define DEFAULT_LCD_CONTRAST 32 +# endif +#endif + +// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino +//#define FAST_PWM_FAN + +// Temperature status LEDs that display the hotend and bet temperature. +// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. +// Otherwise the RED led is on. There is 1C hysteresis. +//#define TEMP_STAT_LEDS + +// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency +// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency +// is too low, you should also increment SOFT_PWM_SCALE. +//#define FAN_SOFT_PWM + +// Incrementing this by 1 will double the software PWM frequency, +// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. +// However, control resolution will be halved for each increment; +// at zero value, there are 128 effective control positions. +#define SOFT_PWM_SCALE 0 + +// M240 Triggers a camera by emulating a Canon RC-1 Remote +// Data from: http://www.doc-diy.net/photo/rc-1_hacked/ +// #define PHOTOGRAPH_PIN 23 + +// SF send wrong arc g-codes when using Arc Point as fillet procedure +//#define SF_ARC_FIX + +// Support for the BariCUDA Paste Extruder. +//#define BARICUDA + +//define BlinkM/CyzRgb Support +//#define BLINKM + +/*********************************************************************\ +* R/C SERVO support +* Sponsored by TrinityLabs, Reworked by codexmas +**********************************************************************/ + +// Number of servos +// +// If you select a configuration below, this will receive a default value and does not need to be set manually +// set it manually if you have more servos than extruders and wish to manually control some +// leaving it undefined or defining as 0 will disable the servo subsystem +// If unsure, leave commented / disabled +// +//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command + +// Servo Endstops +// +// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. +// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500. +// +//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1 +//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles + +/**********************************************************************\ + * Support for a filament diameter sensor + * Also allows adjustment of diameter at print time (vs at slicing) + * Single extruder only at this point (extruder 0) + * + * Motherboards + * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector + * 81 - Printrboard - Uses Analog input 2 on the Aux 2 connector + * 301 - Rambo - uses Analog input 3 + * Note may require analog pins to be defined for different motherboards + **********************************************************************/ +// Uncomment below to enable +//#define FILAMENT_SENSOR + +#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2) +#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel + +#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation +#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm +#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm +#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM) + +//defines used in the code +#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially + + + + + + + +#include "Configuration_adv.h" +#include "thermistortables.h" + +#endif //__CONFIGURATION_H diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h new file mode 100644 index 000000000..2eb1f642d --- /dev/null +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -0,0 +1,501 @@ +#ifndef CONFIGURATION_ADV_H +#define CONFIGURATION_ADV_H + +//=========================================================================== +//=============================Thermal Settings ============================ +//=========================================================================== + +#ifdef BED_LIMIT_SWITCHING + #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS +#endif +#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control + +//// Heating sanity check: +// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature +// If the temperature has not increased at the end of that period, the target temperature is set to zero. +// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature +// differ by at least 2x WATCH_TEMP_INCREASE +//#define WATCH_TEMP_PERIOD 40000 //40 seconds +//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds + +#ifdef PIDTEMP + // this adds an experimental additional term to the heating power, proportional to the extrusion speed. + // if Kc is chosen well, the additional required power due to increased melting should be compensated. + #define PID_ADD_EXTRUSION_RATE + #ifdef PID_ADD_EXTRUSION_RATE + #define DEFAULT_Kc (1) //heating power=Kc*(e_speed) + #endif +#endif + + +//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode. +//The maximum buffered steps/sec of the extruder motor are called "se". +//You enter the autotemp mode by a M109 S B F +// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp +// you exit the value by any M109 without F* +// Also, if the temperature is set to a value +// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results +// as long as it supports dual x-carriages. (M605 S0) +// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so +// that additional slicer support is not required. (M605 S1) +// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all +// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at +// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm]) + +// This is the default power-up mode which can be later using M605. +#define DEFAULT_DUAL_X_CARRIAGE_MODE 0 + +// As the x-carriages are independent we can now account for any relative Z offset +#define EXTRUDER1_Z_OFFSET 0.0 // z offset relative to extruder 0 + +// Default settings in "Auto-park Mode" +#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder +#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder + +// Default x offset in duplication mode (typically set to half print bed width) +#define DEFAULT_DUPLICATION_X_OFFSET 100 + +#endif //DUAL_X_CARRIAGE + +//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: +#define X_HOME_RETRACT_MM 5 +#define Y_HOME_RETRACT_MM 5 +#define Z_HOME_RETRACT_MM 1 +//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. + +#define AXIS_RELATIVE_MODES {false, false, false, false} +#ifdef CONFIG_STEPPERS_TOSHIBA +#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers +#else +#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step) +#endif +//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +#define INVERT_X_STEP_PIN false +#define INVERT_Y_STEP_PIN false +#define INVERT_Z_STEP_PIN false +#define INVERT_E_STEP_PIN false + +//default stepper release if idle +#define DEFAULT_STEPPER_DEACTIVE_TIME 60 + +#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate +#define DEFAULT_MINTRAVELFEEDRATE 0.0 + +// Feedrates for manual moves along X, Y, Z, E from panel +#ifdef ULTIPANEL +#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // set the speeds for manual moves (mm/min) +#endif + +//Comment to disable setting feedrate multiplier via encoder +#ifdef ULTIPANEL + #define ULTIPANEL_FEEDMULTIPLY +#endif + +// minimum time in microseconds that a movement needs to take if the buffer is emptied. +#define DEFAULT_MINSEGMENTTIME 20000 + +// If defined the movements slow down when the look ahead buffer is only half full +#define SLOWDOWN + +// Frequency limit +// See nophead's blog for more info +// Not working O +//#define XY_FREQUENCY_LIMIT 15 + +// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end +// of the buffer and all stops. This should not be much greater than zero and should only be changed +// if unwanted behavior is observed on a user's machine when running at very slow speeds. +#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) + +// MS1 MS2 Stepper Driver Microstepping mode table +#define MICROSTEP1 LOW,LOW +#define MICROSTEP2 HIGH,LOW +#define MICROSTEP4 LOW,HIGH +#define MICROSTEP8 HIGH,HIGH +#define MICROSTEP16 HIGH,HIGH + +// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. +#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] + +// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards) +#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) + +// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro +//#define DIGIPOT_I2C +// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8 +#define DIGIPOT_I2C_NUM_CHANNELS 8 +// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS +#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/ +#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again + +#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers? +#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place. + +#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order. +// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that. +// using: +//#define MENU_ADDAUTOSTART + +// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation. +//#define USE_WATCHDOG + +#ifdef USE_WATCHDOG +// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on. +// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset. +// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled. +//#define WATCHDOG_RESET_MANUAL +#endif + +// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled. +//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED + +// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process +// it can e.g. be used to change z-positions in the print startup phase in real-time +// does not respect endstops! +//#define BABYSTEPPING +#ifdef BABYSTEPPING + #define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions + #define BABYSTEP_INVERT_Z false //true for inverse movements in Z + #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements + + #ifdef COREXY + #error BABYSTEPPING not implemented for COREXY yet. + #endif + + #ifdef DELTA + #ifdef BABYSTEP_XY + #error BABYSTEPPING only implemented for Z axis on deltabots. + #endif + #endif +#endif + +// extruder advance constant (s2/mm3) +// +// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2 +// +// Hooke's law says: force = k * distance +// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant +// so: v ^ 2 is proportional to number of steps we advance the extruder +//#define ADVANCE + +#ifdef ADVANCE + #define EXTRUDER_ADVANCE_K .0 + + #define D_FILAMENT 2.85 + #define STEPS_MM_E 836 + #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + +#endif // ADVANCE + +// Arc interpretation settings: +#define MM_PER_ARC_SEGMENT 1 +#define N_ARC_CORRECTION 25 + +const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement + +// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted +// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT +// in the pins.h file. When using a push button pulling the pin to ground this will need inverted. This setting should +// be commented out otherwise +#define SDCARDDETECTINVERTED + +#ifdef ULTIPANEL + #undef SDCARDDETECTINVERTED +#endif + +// Power Signal Control Definitions +// By default use ATX definition +#ifndef POWER_SUPPLY + #define POWER_SUPPLY 1 +#endif +// 1 = ATX +#if (POWER_SUPPLY == 1) + #define PS_ON_AWAKE LOW + #define PS_ON_ASLEEP HIGH +#endif +// 2 = X-Box 360 203W +#if (POWER_SUPPLY == 2) + #define PS_ON_AWAKE HIGH + #define PS_ON_ASLEEP LOW +#endif + +// Control heater 0 and heater 1 in parallel. +//#define HEATERS_PARALLEL + +//=========================================================================== +//=============================Buffers ============================ +//=========================================================================== + +// The number of linear motions that can be in the plan at any give time. +// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering. +#if defined SDSUPPORT + #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller +#else + #define BLOCK_BUFFER_SIZE 16 // maximize block buffer +#endif + + +//The ASCII buffer for receiving from the serial: +#define MAX_CMD_SIZE 96 +#define BUFSIZE 4 + + +// Firmware based and LCD controlled retract +// M207 and M208 can be used to define parameters for the retraction. +// The retraction can be called by the slicer using G10 and G11 +// until then, intended retractions can be detected by moves that only extrude and the direction. +// the moves are than replaced by the firmware controlled ones. + +// #define FWRETRACT //ONLY PARTIALLY TESTED +#ifdef FWRETRACT + #define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt + #define RETRACT_LENGTH 3 //default retract length (positive mm) + #define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change + #define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s) + #define RETRACT_ZLIFT 0 //default retract Z-lift + #define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering) + #define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change) + #define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s) +#endif + +//adds support for experimental filament exchange support M600; requires display +#ifdef ULTIPANEL + #define FILAMENTCHANGEENABLE + #ifdef FILAMENTCHANGEENABLE + #define FILAMENTCHANGE_XPOS 3 + #define FILAMENTCHANGE_YPOS 3 + #define FILAMENTCHANGE_ZADD 10 + #define FILAMENTCHANGE_FIRSTRETRACT -2 + #define FILAMENTCHANGE_FINALRETRACT -100 + #endif +#endif + +#ifdef FILAMENTCHANGEENABLE + #ifdef EXTRUDER_RUNOUT_PREVENT + #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE + #endif +#endif + +//=========================================================================== +//============================= Define Defines ============================ +//=========================================================================== +#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT + #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" +#endif + +#if EXTRUDERS > 1 && defined HEATERS_PARALLEL + #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" +#endif + +#if TEMP_SENSOR_0 > 0 + #define THERMISTORHEATER_0 TEMP_SENSOR_0 + #define HEATER_0_USES_THERMISTOR +#endif +#if TEMP_SENSOR_1 > 0 + #define THERMISTORHEATER_1 TEMP_SENSOR_1 + #define HEATER_1_USES_THERMISTOR +#endif +#if TEMP_SENSOR_2 > 0 + #define THERMISTORHEATER_2 TEMP_SENSOR_2 + #define HEATER_2_USES_THERMISTOR +#endif +#if TEMP_SENSOR_BED > 0 + #define THERMISTORBED TEMP_SENSOR_BED + #define BED_USES_THERMISTOR +#endif +#if TEMP_SENSOR_0 == -1 + #define HEATER_0_USES_AD595 +#endif +#if TEMP_SENSOR_1 == -1 + #define HEATER_1_USES_AD595 +#endif +#if TEMP_SENSOR_2 == -1 + #define HEATER_2_USES_AD595 +#endif +#if TEMP_SENSOR_BED == -1 + #define BED_USES_AD595 +#endif +#if TEMP_SENSOR_0 == -2 + #define HEATER_0_USES_MAX6675 +#endif +#if TEMP_SENSOR_0 == 0 + #undef HEATER_0_MINTEMP + #undef HEATER_0_MAXTEMP +#endif +#if TEMP_SENSOR_1 == 0 + #undef HEATER_1_MINTEMP + #undef HEATER_1_MAXTEMP +#endif +#if TEMP_SENSOR_2 == 0 + #undef HEATER_2_MINTEMP + #undef HEATER_2_MAXTEMP +#endif +#if TEMP_SENSOR_BED == 0 + #undef BED_MINTEMP + #undef BED_MAXTEMP +#endif + + +#endif //__CONFIGURATION_ADV_H From 0e23105e1e251545dff23df032157f3b7774585e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 12:02:36 -0800 Subject: [PATCH 29/33] Defines for electronics boards Added boards.h which contains defines for all the board numbers, plus some shorthand macros for less typing. --- Marlin/Configuration.h | 51 +--- Marlin/boards.h | 55 ++++ Marlin/digipot_mcp4451.cpp | 2 +- .../SCARA/Configuration.h | 2 +- .../delta/Configuration.h | 49 +--- .../makibox/Configuration.h | 2 +- Marlin/language.h | 8 +- Marlin/pins.h | 253 +++++++++--------- Marlin/temperature.cpp | 2 +- 9 files changed, 197 insertions(+), 227 deletions(-) create mode 100644 Marlin/boards.h diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 1fe970a66..591ce1333 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -37,53 +39,10 @@ //#define BTENABLED // Enable BT interface on AT90USB devices -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 22 = Gen3 Monolithic Electronics -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board -// 999 = Leapfrog - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD -#define MOTHERBOARD 7 + #define MOTHERBOARD BOARD_ULTIMAKER #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/boards.h b/Marlin/boards.h new file mode 100644 index 000000000..af249c78c --- /dev/null +++ b/Marlin/boards.h @@ -0,0 +1,55 @@ +#ifndef BOARDS_H +#define BOARDS_H + +#define BOARD_UNKNOWN -1 + +#define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" +#define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2 +#define BOARD_GEN7_13 12 // Gen7 v1.3 +#define BOARD_GEN7_14 13 // Gen7 v1.4 +#define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0 +#define BOARD_SETHI 20 // Sethi 3D_1 +#define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2 +#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) +#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) +#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) +#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) +#define BOARD_DUEMILANOVE_328P 4 // Duemilanove w/ ATMega328P pin assignment +#define BOARD_GEN6 5 // Gen6 +#define BOARD_GEN6_DELUXE 51 // Gen6 deluxe +#define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 +#define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above +#define BOARD_MELZI 63 // Melzi +#define BOARD_STB_11 64 // STB V1.1 +#define BOARD_AZTEEG_X1 65 // Azteeg X1 +#define BOARD_MELZI_1284 66 // Melzi with ATmega1284 (MaKr3d version) +#define BOARD_AZTEEG_X3 67 // Azteeg X3 +#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro +#define BOARD_ULTIMAKER 7 // Ultimaker +#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) +#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) +#define BOARD_3DRAG 77 // 3Drag Controller +#define BOARD_TEENSYLU 8 // Teensylu +#define BOARD_RUMBA 80 // Rumba +#define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) +#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) +#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) +#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make +#define BOARD_GEN3_PLUS 9 // Gen3+ +#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics +#define BOARD_MEGATRONICS 70 // Megatronics +#define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 +#define BOARD_MEGATRONICS_1 702 // Minitronics v1.0 +#define BOARD_OMCA_A 90 // Alpha OMCA board +#define BOARD_OMCA 91 // Final OMCA board +#define BOARD_RAMBO 301 // Rambo +#define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) +#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board +#define BOARD_LEAPFROG 999 // Leapfrog + +#define BOARD_99 99 // This is in pins.h but...? + +#define MB(board) (MOTHERBOARD==BOARD_##board) +#define IS_RAMPS (MB(RAMPS_OLD) || MB(RAMPS_13_EFB) || MB(RAMPS_13_EEB) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF)) + +#endif //__BOARDS_H diff --git a/Marlin/digipot_mcp4451.cpp b/Marlin/digipot_mcp4451.cpp index 7c150558b..0ced287aa 100644 --- a/Marlin/digipot_mcp4451.cpp +++ b/Marlin/digipot_mcp4451.cpp @@ -6,7 +6,7 @@ #include "Wire.h" // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro -#if MOTHERBOARD == 88 +#if MB(5DPRINT) #define DIGIPOT_I2C_FACTOR 117.96 #define DIGIPOT_I2C_MAX_CURRENT 1.736 #else diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 6b74b0c20..f7bdab828 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -100,7 +100,7 @@ // 88 = 5DPrint D8 Driver Board #ifndef MOTHERBOARD -#define MOTHERBOARD 33 + #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/example_configurations/delta/Configuration.h b/Marlin/example_configurations/delta/Configuration.h index 042b221c3..e5c405e44 100644 --- a/Marlin/example_configurations/delta/Configuration.h +++ b/Marlin/example_configurations/delta/Configuration.h @@ -29,53 +29,10 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board -// 999 = Leapfrog - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD -#define MOTHERBOARD 33 + #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 6ebd08f43..c39465f2b 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -73,7 +73,7 @@ // 88 = 5DPrint D8 Driver Board #ifndef MOTHERBOARD -#define MOTHERBOARD 88 + #define MOTHERBOARD BOARD_5DPRINT #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/language.h b/Marlin/language.h index 3e6e17043..c0b66a372 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -27,16 +27,16 @@ #define PROTOCOL_VERSION "1.0" -#if MOTHERBOARD == 7 || MOTHERBOARD == 71 || MOTHERBOARD == 72 +#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2) #define MACHINE_NAME "Ultimaker" #define FIRMWARE_URL "http://firmware.ultimaker.com" -#elif MOTHERBOARD == 80 +#elif MB(RUMBA) #define MACHINE_NAME "Rumba" #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" -#elif MOTHERBOARD == 77 +#elif MB(3DRAG) #define MACHINE_NAME "3Drag" #define FIRMWARE_URL "http://3dprint.elettronicain.it/" -#elif MOTHERBOARD == 88 +#elif MB(5DPRINT) #define MACHINE_NAME "Makibox" #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" #else diff --git a/Marlin/pins.h b/Marlin/pins.h index 13cb9053e..906522b81 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1,7 +1,9 @@ #ifndef PINS_H #define PINS_H -#if MOTHERBOARD != 88 +#include "boards.h" + +#if !MB(5DPRINT) #define X_MS1_PIN -1 #define X_MS2_PIN -1 #define Y_MS1_PIN -1 @@ -20,7 +22,7 @@ * https://bitbucket.org/makible/5dprint-d8-controller-board ****************************************************************************************/ -#if MOTHERBOARD == 88 +#if MB(5DPRINT) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -92,13 +94,13 @@ #define E0_MS1_PIN 5 #define E0_MS2_PIN 4 -#endif /* 88 */ +#endif // 5DPRINT /**************************************************************************************** * Leapfrog Driver board * ****************************************************************************************/ -#if MOTHERBOARD == 999 // Leapfrog board +#if MB(LEAPFROG) // Leapfrog board #define KNOWN_BOARD 1 #ifndef __AVR_ATmega1280__ @@ -162,14 +164,14 @@ /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ -#endif +#endif // LEAPFROG /**************************************************************************************** * * ****************************************************************************************/ -#if MOTHERBOARD == 99 +#if MB(99) #define KNOWN_BOARD 1 #define X_STEP_PIN 2 @@ -207,14 +209,14 @@ #define HEATER_BED_PIN 4 #define TEMP_BED_PIN 10 -#endif /* 99 */ +#endif // 99 /**************************************************************************************** * Sethi 3D_1 pin assignment - www.sethi3d.com.br * ****************************************************************************************/ -#if MOTHERBOARD == 20 +#if MB(SETHI) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -285,7 +287,7 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 -#endif +#endif // SETHI /**************************************************************************************** * Gen7 v1.1, v1.2, v1.3 pin assignment @@ -293,12 +295,12 @@ ****************************************************************************************/ -#if MOTHERBOARD == 12 -#define MOTHERBOARD 11 +#if MB(GEN7_13) +#define MOTHERBOARD BOARD_GEN7_12 #define GEN7_VERSION 13 // v1.3 #endif -#if MOTHERBOARD == 11 +#if MB(GEN7_12) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -376,11 +378,11 @@ * ****************************************************************************************/ -#if MOTHERBOARD == 13 +#if MB(GEN7_14) #define GEN7_VERSION 14 // v1.4 #endif -#if MOTHERBOARD == 13 +#if MB(GEN7_14) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -442,22 +444,19 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 -#endif +#endif // GEN7 -/******************************************************************************* -********* +/****************************************************************************** * Gen7 Alfons3 pin assignment * -******************************************************************************** -********/ +******************************************************************************/ /* These Pins are assigned for the modified GEN7 Board from Alfons3 Please review the pins and adjust it for your needs*/ -#if MOTHERBOARD == 10 +#if MB(GEN7_CUSTOM) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. - #endif //x axis pins @@ -525,13 +524,13 @@ #define BTN_EN2 10 #define BTN_ENC 12 //the click -#endif +#endif // GEN7_CUSTOM /**************************************************************************************** * Arduino Mega pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68 +#if IS_RAMPS || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define KNOWN_BOARD 1 //////////////////FIX THIS////////////// @@ -547,11 +546,11 @@ // #define RAMPS_V_1_0 -#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68 +#if (IS_RAMPS && !MB(RAMPS_OLD)) || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define LARGE_FLASH true - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define X_STEP_PIN 54 #define X_DIR_PIN 55 #define X_ENABLE_PIN 38 @@ -628,16 +627,16 @@ #define E1_DIR_PIN 34 #define E1_ENABLE_PIN 30 -#if MOTHERBOARD == 34 //FMM added for Filament Extruder +#if MB(RAMPS_13_EEB) //FMM added for Filament Extruder #ifdef FILAMENT_SENSOR - //define analog pin for the filament width sensor input - //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector + //define analog pin for the filament width sensor input + //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector #define FILWIDTH_PIN 5 #endif #endif - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define E2_STEP_PIN 23 #define E2_DIR_PIN 25 #define E2_ENABLE_PIN 40 @@ -656,17 +655,17 @@ #define LED_PIN 13 #endif - #if MOTHERBOARD == 33 || MOTHERBOARD == 35 || MOTHERBOARD == 67 || MOTHERBOARD == 68 + #if MB(RAMPS_13_EFB) || MB(RAMPS_13_EFF) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define FAN_PIN 9 // (Sprinter config) #else #define FAN_PIN 4 // IO pin. Buffer needed #endif - #if MOTHERBOARD == 77 || MOTHERBOARD == 36 + #if MB(3DRAG) || MB(RAMPS_13_EEF) #define FAN_PIN 8 #endif - #if MOTHERBOARD == 35 + #if MB(RAMPS_13_EFF) #define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller #endif @@ -678,24 +677,24 @@ #define KILL_PIN -1 #endif - #if MOTHERBOARD == 35 + #if MB(RAMPS_13_EFF) #define HEATER_0_PIN 8 #else #define HEATER_0_PIN 10 // EXTRUDER 1 #endif - #if MOTHERBOARD == 33 || MOTHERBOARD == 67 + #if MB(RAMPS_13_EFB) || MB(AZTEEG_X3) #define HEATER_1_PIN -1 #else #define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter) #endif - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define HEATER_0_PIN 10 #define HEATER_1_PIN 12 #define HEATER_2_PIN 6 - #elif MOTHERBOARD == 68 + #elif MB(AZTEEG_X3_PRO) #define HEATER_2_PIN 16 #define HEATER_3_PIN 17 #define HEATER_4_PIN 4 @@ -708,7 +707,7 @@ #define TEMP_0_PIN 13 // ANALOG NUMBERING #define TEMP_1_PIN 15 // ANALOG NUMBERING - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define TEMP_2_PIN 12 // ANALOG NUMBERING #define TEMP_3_PIN 11 // ANALOG NUMBERING #define TEMP_4_PIN 10 // ANALOG NUMBERING @@ -718,10 +717,10 @@ #define TEMP_2_PIN -1 // ANALOG NUMBERING #endif - #if MOTHERBOARD == 35 || MOTHERBOARD == 36 + #if MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF) #define HEATER_BED_PIN -1 // NO BED #else - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define HEATER_BED_PIN 9 // BED #else #define HEATER_BED_PIN 8 // BED @@ -746,12 +745,12 @@ #endif #endif - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define BEEPER 33 #endif #ifdef TEMP_STAT_LEDS - #if MOTHERBOARD == 67 + #if MB(AZTEEG_X3) #define STAT_LED_RED 6 #define STAT_LED_BLUE 11 #endif @@ -814,7 +813,7 @@ #endif - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define BEEPER -1 #define LCD_PINS_RS 27 @@ -832,10 +831,10 @@ #endif #else //old style panel with shift register //arduino pin witch triggers an piezzo beeper - #define BEEPER 33 //No Beeper added + #define BEEPER 33 //No Beeper added //buttons are attached to a shift register - // Not wired this yet + // Not wired this yet //#define SHIFT_CLK 38 //#define SHIFT_LD 42 //#define SHIFT_OUT 40 @@ -850,7 +849,7 @@ #endif #endif //ULTRA_LCD -#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3) +#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (BOARD_RAMPS_OLD) #define X_STEP_PIN 26 #define X_DIR_PIN 28 @@ -896,7 +895,7 @@ #define TEMP_2_PIN -1 #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#endif // MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 +#endif // RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG // SPI for Max6675 Thermocouple @@ -910,13 +909,13 @@ #define MAX6675_SS 49 #endif -#endif //MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 +#endif // RAMPS_OLD || RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG /**************************************************************************************** * Duemilanove w/ ATMega328P pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 4 +#if MB(DUEMILANOVE_328P) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega328P__ @@ -958,25 +957,25 @@ #define HEATER_BED_PIN -1 #define TEMP_BED_PIN -1 -#endif +#endif // DUEMILANOVE_328P /**************************************************************************************** * Elefu RA Board Pin Assignments * ****************************************************************************************/ -#if MOTHERBOARD == 21 -#define KNOWN_BOARD 1 +#if MB(ELEFU_3) +#define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. #endif -#define X_STEP_PIN 49 -#define X_DIR_PIN 13 -#define X_ENABLE_PIN 48 -#define X_MIN_PIN 35 -#define X_MAX_PIN -1 //34 +#define X_STEP_PIN 49 +#define X_DIR_PIN 13 +#define X_ENABLE_PIN 48 +#define X_MIN_PIN 35 +#define X_MAX_PIN -1 //34 #define Y_STEP_PIN 11 #define Y_DIR_PIN 9 @@ -1008,18 +1007,18 @@ #define FAN_PIN 16 //5V PWM #define PS_ON_PIN 10 //Set to -1 if using a manual switch on the PWRSW Connector -#define SLEEP_WAKE_PIN 26 //This feature still needs work +#define SLEEP_WAKE_PIN 26 //This feature still needs work -#define HEATER_0_PIN 45 //12V PWM1 -#define HEATER_1_PIN 46 //12V PWM2 -#define HEATER_2_PIN 17 //12V PWM3 -#define HEATER_BED_PIN 44 //DOUBLE 12V PWM -#define TEMP_0_PIN 3 //ANALOG NUMBERING -#define TEMP_1_PIN 2 //ANALOG NUMBERING -#define TEMP_2_PIN 1 //ANALOG NUMBERING -#define TEMP_BED_PIN 0 //ANALOG NUMBERING +#define HEATER_0_PIN 45 //12V PWM1 +#define HEATER_1_PIN 46 //12V PWM2 +#define HEATER_2_PIN 17 //12V PWM3 +#define HEATER_BED_PIN 44 //DOUBLE 12V PWM +#define TEMP_0_PIN 3 //ANALOG NUMBERING +#define TEMP_1_PIN 2 //ANALOG NUMBERING +#define TEMP_2_PIN 1 //ANALOG NUMBERING +#define TEMP_BED_PIN 0 //ANALOG NUMBERING -#define BEEPER 36 +#define BEEPER 36 #define KILL_PIN -1 @@ -1082,14 +1081,14 @@ #endif //RA_LIGHTING -#endif /* Ra Board */ +#endif // ELEFU_3 /**************************************************************************************** * Gen6 pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 5 || MOTHERBOARD == 51 +#if MB(GEN6) || MB(GEN6_DELUXE) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ @@ -1128,7 +1127,7 @@ #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 #define HEATER_1_PIN -1 #define HEATER_2_PIN -1 - #if MOTHERBOARD == 5 + #if MB(GEN6) #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 #else @@ -1149,32 +1148,32 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 - -#endif +#endif // GEN6 || GEN6_DELUXE /**************************************************************************************** * Sanguinololu pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 64 +#if MB(STB_11) #define STB #endif -#if MOTHERBOARD == 63 || MOTHERBOARD == 66 +#if MB(MELZI) || MB(MELZI_1284) #define MELZI #endif -#if MOTHERBOARD == 65 +#if MB(AZTEEG_X1) #define AZTEEG_X1 #endif -#if MOTHERBOARD == 62 || MOTHERBOARD == 63 || MOTHERBOARD == 64 || MOTHERBOARD == 65 || MOTHERBOARD == 66 +#if MB(SANGUINOLOLU_12) || MB(MELZI) || MB(STB_11) || MB(AZTEEG_X1) || MB(MELZI_1284) #undef MOTHERBOARD -#define MOTHERBOARD 6 +#define MOTHERBOARD BOARD_SANGUINOLOLU_11 #define SANGUINOLOLU_V_1_2 #if defined(__AVR_ATmega1284P__) - #define LARGE_FLASH true + #define LARGE_FLASH true #endif #endif -#if MOTHERBOARD == 6 + +#if MB(SANGUINOLOLU_11) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ #ifndef __AVR_ATmega1284P__ @@ -1211,7 +1210,7 @@ #ifdef STB #define FAN_PIN 4 - // Uncomment this if you have the first generation (V1.10) of STBs board + // Uncomment this if you have the first generation (V1.10) of STBs board #define LCD_PIN_BL 17 // LCD backlight LED #endif @@ -1322,7 +1321,7 @@ // Pins for DOGM SPI LCD Support #define DOGLCD_A0 30 #define DOGLCD_CS 17 - #define LCD_PIN_BL 28 // backlight LED on PA3 + #define LCD_PIN_BL 28 // backlight LED on PA3 // GLCD features #define LCD_CONTRAST 1 // Uncomment screen orientation @@ -1338,15 +1337,16 @@ #define SDCARDDETECT -1 #endif //Makrpanel -#endif +#endif // SANGUINOLOLU_11 -#if MOTHERBOARD == 7 -#define KNOWN_BOARD /***************************************************************** * Ultimaker pin assignment ******************************************************************/ +#if MB(ULTIMAKER) +#define KNOWN_BOARD + #ifndef __AVR_ATmega1280__ #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. @@ -1442,9 +1442,9 @@ #endif #endif //ULTRA_LCD -#endif +#endif // ULTIMAKER -#if MOTHERBOARD == 71 +#if MB(ULTIMAKER_OLD) #define KNOWN_BOARD /***************************************************************** * Ultimaker pin assignment (Old electronics) @@ -1511,9 +1511,9 @@ #define LCD_PINS_D6 32 #define LCD_PINS_D7 30 -#endif +#endif // ULTIMAKER_OLD -#if MOTHERBOARD == 72 +#if MB(ULTIMAIN_2) #define KNOWN_BOARD /***************************************************************** * Ultiboard v2.0 pin assignment @@ -1596,13 +1596,13 @@ #define SDCARDDETECT 39 -#endif//MOTHERBOARD == 72 +#endif // ULTIMAIN_2 /**************************************************************************************** * RUMBA pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 80 +#if MB(RUMBA) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ @@ -1712,7 +1712,7 @@ #define BTN_EN2 12 #define BTN_ENC 43 -#endif //MOTHERBOARD==80 +#endif // RUMBA /**************************************************************************************** @@ -1721,7 +1721,7 @@ http://www.pjrc.com/teensy/teensyduino.html * See http://reprap.org/wiki/Printrboard for more info ****************************************************************************************/ -#if MOTHERBOARD == 8 || MOTHERBOARD == 81 +#if MB(TEENSYLU) || MB(PRINTRBOARD) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -1759,7 +1759,7 @@ // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h // for the fan and Teensyduino uses a different pin mapping. -#if MOTHERBOARD == 8 // Teensylu +#if MB(TEENSYLU) // Teensylu #define X_STOP_PIN 13 #define Y_STOP_PIN 14 #define Z_STOP_PIN 15 @@ -1793,14 +1793,14 @@ #define MOSI_PIN 10 #endif -#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard) +#endif // TEENSYLU || PRINTRBOARD /**************************************************************************************** * Brainwave 1.0 pin assignments (AT90USB646) * Requires hardware bundle for Arduino: https://github.com/unrepentantgeek/brainwave-arduino ****************************************************************************************/ -#if MOTHERBOARD == 82 +#if MB(BRAINWAVE) #define KNOWN_BOARD 1 #define AT90USB 646 // Disable MarlinSerial etc. @@ -1856,7 +1856,7 @@ #define MOSI_PIN 10 #endif -#endif // MOTHERBOARD == 82 (Brainwave) +#endif // BRAINWAVE // // SAV Mk-I @@ -1867,7 +1867,7 @@ http://www.pjrc.com/teensy/teensyduino.html RepRap Clone Wars project board. ****************************************************************************************/ -#if MOTHERBOARD == 83 // SAV Mk-I +#if MB(SAV_MKI) // SAV Mk-I #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -1941,7 +1941,7 @@ #define SR_DATA_PIN 0 #define SR_CLK_PIN 1 -#endif // MOTHERBOARD == 83 +#endif // SAV_MKI /**************************************************************************************** * Teensy++ 2.0 Breadboard pin assignments (AT90USB1286) @@ -1951,7 +1951,7 @@ * CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make * ****************************************************************************************/ -#if MOTHERBOARD == 84 +#if MB(TEENSY2) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -2036,7 +2036,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_2_PIN -1 #define SDPOWER -1 -#define SDCARDDETECT -1 +#define SDCARDDETECT -1 #define SDSS 20 // 8 #define LED_PIN 6 #define PS_ON_PIN 27 @@ -2062,15 +2062,15 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BTN_ENC 40 #endif -#endif // MOTHERBOARD == 84 (Teensy++2.0 Breadboard) +#endif // TEENSY2 /**************************************************************************************** * Gen3+ pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 9 -#define MOTHERBOARD 6 /*TODO: Figure out, Why is this done?*/ +#if MB(GEN3_PLUS) +#define MOTHERBOARD BOARD_SANGUINOLOLU_11 /*TODO: Figure out, Why is this done?*/ #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ #ifndef __AVR_ATmega1284P__ @@ -2116,13 +2116,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define SDSS 4 #define HEATER_2_PIN -1 -#endif +#endif // GEN3_PLUS /**************************************************************************************** * Gen3 Monolithic Electronics * ****************************************************************************************/ -#if MOTHERBOARD == 22 +#if MB(GEN3_MONOLITHIC) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ @@ -2170,12 +2170,12 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_BED_PIN -1 -#define SDSS -1 +#define SDSS -1 #define SDPOWER -1 #define LED_PIN -1 //pin for controlling the PSU. -#define PS_ON_PIN 14 //Alex, Do this work on the card? +#define PS_ON_PIN 14 //Alex, Do this work on the card? //Alex extras from Gen3+ #define KILL_PIN -1 @@ -2183,7 +2183,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_2_PIN -1 #define HEATER_2_PIN -1 -#endif +#endif // GEN3_MONOLITHIC /**************************************************************************************** * Open Motion controller with enable based extruders @@ -2214,7 +2214,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a * +--------+ * ****************************************************************************************/ -#if MOTHERBOARD == 90 //Alpha OMCA board +#if MB(OMCA_A) //Alpha OMCA board #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644__ @@ -2266,9 +2266,9 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_BED_PIN -1 // 1,2 or I2C /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ -#endif +#endif // OMCA_A -#if MOTHERBOARD == 91 // Final OMCA board -- REF http://sanguino.cc/hardware +#if MB(OMCA) // Final OMCA board -- REF http://sanguino.cc/hardware #define KNOWN_BOARD 1 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) @@ -2332,14 +2332,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define I2C_SCL 16 #define I2C_SDA 17 -#endif +#endif // OMCA -#if MOTHERBOARD == 301 -#define KNOWN_BOARD /***************************************************************** * Rambo Pin Assignments ******************************************************************/ - +#if MB(RAMBO) +#define KNOWN_BOARD #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #endif @@ -2478,13 +2477,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define FILWIDTH_PIN 3 #endif //FILAMENT_SENSOR -#endif +#endif // RAMBO /**************************************************************************************** * MegaTronics * ****************************************************************************************/ -#if MOTHERBOARD == 70 +#if MB(MEGATRONICS) #define KNOWN_BOARD 1 @@ -2570,7 +2569,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Ramps does not use this port + #define SDCARDDETECT -1 // Ramps does not use this port //encoder rotation values #define encrot0 0 @@ -2580,13 +2579,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #endif #endif //ULTRA_LCD -#endif +#endif // MEGATRONICS /**************************************************************************************** * MegaTronics v2.0 * ****************************************************************************************/ -#if MOTHERBOARD == 701 +#if MB(MEGATRONICS_2) #define KNOWN_BOARD 1 @@ -2682,7 +2681,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Megatronics does not use this port + #define SDCARDDETECT -1 // Megatronics does not use this port //encoder rotation values #define encrot0 0 @@ -2690,14 +2689,14 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // MEGATRONICS_2 /**************************************************************************************** * Minitronics v1.0 * ****************************************************************************************/ -#if MOTHERBOARD == 702 +#if MB(MEGATRONICS_1) #define KNOWN_BOARD 1 @@ -2778,7 +2777,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Megatronics does not use this port + #define SDCARDDETECT -1 // Megatronics does not use this port //encoder rotation values #define encrot0 0 @@ -2786,13 +2785,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // MEGATRONICS_1 /**************************************************************************************** * Cheaptronic v1.0 * ****************************************************************************************/ -#if MOTHERBOARD == 2 +#if MB(CHEAPTRONIC) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ @@ -2887,7 +2886,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // CHEAPTRONIC @@ -2954,5 +2953,5 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a HEATER_BED_PIN, FAN_PIN, \ _E0_PINS _E1_PINS _E2_PINS \ analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) } -#endif +#endif //__PINS_H diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index af5d8c130..5dc55df6e 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -768,7 +768,7 @@ return(filament_width_nominal/temp*100); void tp_init() { -#if (MOTHERBOARD == 80) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) +#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector MCUCR=(1< Date: Thu, 18 Dec 2014 12:07:26 -0800 Subject: [PATCH 30/33] Clean up configs --- Marlin/Configuration.h | 1 - .../SCARA/Configuration.h | 46 +------------------ .../makibox/Configuration.h | 44 +----------------- 3 files changed, 4 insertions(+), 87 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 591ce1333..b99ec6a29 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -38,7 +38,6 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - // The following define selects which electronics board you have. // Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index f7bdab828..e87d22848 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -55,50 +55,8 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 131 = OpenHardware.co.za custom Gen7 electronics -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index c39465f2b..967f0e3b2 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -30,48 +30,8 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_5DPRINT #endif From f83d0f2a689b325acfc135359c1571edd1b70466 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 12:02:36 -0800 Subject: [PATCH 31/33] Defines for electronics boards Added boards.h which contains defines for all the board numbers, plus some shorthand macros for less typing. --- Marlin/Configuration.h | 51 +--- Marlin/boards.h | 55 ++++ Marlin/digipot_mcp4451.cpp | 2 +- .../SCARA/Configuration.h | 2 +- .../delta/Configuration.h | 49 +--- .../makibox/Configuration.h | 2 +- Marlin/language.h | 8 +- Marlin/pins.h | 253 +++++++++--------- Marlin/temperature.cpp | 2 +- 9 files changed, 197 insertions(+), 227 deletions(-) create mode 100644 Marlin/boards.h diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 1fe970a66..591ce1333 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -37,53 +39,10 @@ //#define BTENABLED // Enable BT interface on AT90USB devices -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 22 = Gen3 Monolithic Electronics -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board -// 999 = Leapfrog - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD -#define MOTHERBOARD 7 + #define MOTHERBOARD BOARD_ULTIMAKER #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/boards.h b/Marlin/boards.h new file mode 100644 index 000000000..af249c78c --- /dev/null +++ b/Marlin/boards.h @@ -0,0 +1,55 @@ +#ifndef BOARDS_H +#define BOARDS_H + +#define BOARD_UNKNOWN -1 + +#define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" +#define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2 +#define BOARD_GEN7_13 12 // Gen7 v1.3 +#define BOARD_GEN7_14 13 // Gen7 v1.4 +#define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0 +#define BOARD_SETHI 20 // Sethi 3D_1 +#define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2 +#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) +#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) +#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) +#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) +#define BOARD_DUEMILANOVE_328P 4 // Duemilanove w/ ATMega328P pin assignment +#define BOARD_GEN6 5 // Gen6 +#define BOARD_GEN6_DELUXE 51 // Gen6 deluxe +#define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 +#define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above +#define BOARD_MELZI 63 // Melzi +#define BOARD_STB_11 64 // STB V1.1 +#define BOARD_AZTEEG_X1 65 // Azteeg X1 +#define BOARD_MELZI_1284 66 // Melzi with ATmega1284 (MaKr3d version) +#define BOARD_AZTEEG_X3 67 // Azteeg X3 +#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro +#define BOARD_ULTIMAKER 7 // Ultimaker +#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) +#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) +#define BOARD_3DRAG 77 // 3Drag Controller +#define BOARD_TEENSYLU 8 // Teensylu +#define BOARD_RUMBA 80 // Rumba +#define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) +#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) +#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) +#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make +#define BOARD_GEN3_PLUS 9 // Gen3+ +#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics +#define BOARD_MEGATRONICS 70 // Megatronics +#define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 +#define BOARD_MEGATRONICS_1 702 // Minitronics v1.0 +#define BOARD_OMCA_A 90 // Alpha OMCA board +#define BOARD_OMCA 91 // Final OMCA board +#define BOARD_RAMBO 301 // Rambo +#define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) +#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board +#define BOARD_LEAPFROG 999 // Leapfrog + +#define BOARD_99 99 // This is in pins.h but...? + +#define MB(board) (MOTHERBOARD==BOARD_##board) +#define IS_RAMPS (MB(RAMPS_OLD) || MB(RAMPS_13_EFB) || MB(RAMPS_13_EEB) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF)) + +#endif //__BOARDS_H diff --git a/Marlin/digipot_mcp4451.cpp b/Marlin/digipot_mcp4451.cpp index 7c150558b..0ced287aa 100644 --- a/Marlin/digipot_mcp4451.cpp +++ b/Marlin/digipot_mcp4451.cpp @@ -6,7 +6,7 @@ #include "Wire.h" // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro -#if MOTHERBOARD == 88 +#if MB(5DPRINT) #define DIGIPOT_I2C_FACTOR 117.96 #define DIGIPOT_I2C_MAX_CURRENT 1.736 #else diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 6b74b0c20..f7bdab828 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -100,7 +100,7 @@ // 88 = 5DPrint D8 Driver Board #ifndef MOTHERBOARD -#define MOTHERBOARD 33 + #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/example_configurations/delta/Configuration.h b/Marlin/example_configurations/delta/Configuration.h index 042b221c3..e5c405e44 100644 --- a/Marlin/example_configurations/delta/Configuration.h +++ b/Marlin/example_configurations/delta/Configuration.h @@ -29,53 +29,10 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board -// 999 = Leapfrog - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD -#define MOTHERBOARD 33 + #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 6ebd08f43..c39465f2b 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -73,7 +73,7 @@ // 88 = 5DPrint D8 Driver Board #ifndef MOTHERBOARD -#define MOTHERBOARD 88 + #define MOTHERBOARD BOARD_5DPRINT #endif // Define this to set a custom name for your generic Mendel, diff --git a/Marlin/language.h b/Marlin/language.h index 9ab5df73e..2e54a8860 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -31,16 +31,16 @@ #define PROTOCOL_VERSION "1.0" -#if MOTHERBOARD == 7 || MOTHERBOARD == 71 || MOTHERBOARD == 72 +#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2) #define MACHINE_NAME "Ultimaker" #define FIRMWARE_URL "http://firmware.ultimaker.com" -#elif MOTHERBOARD == 80 +#elif MB(RUMBA) #define MACHINE_NAME "Rumba" #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" -#elif MOTHERBOARD == 77 +#elif MB(3DRAG) #define MACHINE_NAME "3Drag" #define FIRMWARE_URL "http://3dprint.elettronicain.it/" -#elif MOTHERBOARD == 88 +#elif MB(5DPRINT) #define MACHINE_NAME "Makibox" #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" #else diff --git a/Marlin/pins.h b/Marlin/pins.h index 13cb9053e..906522b81 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1,7 +1,9 @@ #ifndef PINS_H #define PINS_H -#if MOTHERBOARD != 88 +#include "boards.h" + +#if !MB(5DPRINT) #define X_MS1_PIN -1 #define X_MS2_PIN -1 #define Y_MS1_PIN -1 @@ -20,7 +22,7 @@ * https://bitbucket.org/makible/5dprint-d8-controller-board ****************************************************************************************/ -#if MOTHERBOARD == 88 +#if MB(5DPRINT) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -92,13 +94,13 @@ #define E0_MS1_PIN 5 #define E0_MS2_PIN 4 -#endif /* 88 */ +#endif // 5DPRINT /**************************************************************************************** * Leapfrog Driver board * ****************************************************************************************/ -#if MOTHERBOARD == 999 // Leapfrog board +#if MB(LEAPFROG) // Leapfrog board #define KNOWN_BOARD 1 #ifndef __AVR_ATmega1280__ @@ -162,14 +164,14 @@ /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ -#endif +#endif // LEAPFROG /**************************************************************************************** * * ****************************************************************************************/ -#if MOTHERBOARD == 99 +#if MB(99) #define KNOWN_BOARD 1 #define X_STEP_PIN 2 @@ -207,14 +209,14 @@ #define HEATER_BED_PIN 4 #define TEMP_BED_PIN 10 -#endif /* 99 */ +#endif // 99 /**************************************************************************************** * Sethi 3D_1 pin assignment - www.sethi3d.com.br * ****************************************************************************************/ -#if MOTHERBOARD == 20 +#if MB(SETHI) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -285,7 +287,7 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 -#endif +#endif // SETHI /**************************************************************************************** * Gen7 v1.1, v1.2, v1.3 pin assignment @@ -293,12 +295,12 @@ ****************************************************************************************/ -#if MOTHERBOARD == 12 -#define MOTHERBOARD 11 +#if MB(GEN7_13) +#define MOTHERBOARD BOARD_GEN7_12 #define GEN7_VERSION 13 // v1.3 #endif -#if MOTHERBOARD == 11 +#if MB(GEN7_12) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -376,11 +378,11 @@ * ****************************************************************************************/ -#if MOTHERBOARD == 13 +#if MB(GEN7_14) #define GEN7_VERSION 14 // v1.4 #endif -#if MOTHERBOARD == 13 +#if MB(GEN7_14) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) @@ -442,22 +444,19 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 -#endif +#endif // GEN7 -/******************************************************************************* -********* +/****************************************************************************** * Gen7 Alfons3 pin assignment * -******************************************************************************** -********/ +******************************************************************************/ /* These Pins are assigned for the modified GEN7 Board from Alfons3 Please review the pins and adjust it for your needs*/ -#if MOTHERBOARD == 10 +#if MB(GEN7_CUSTOM) #define KNOWN_BOARD #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. - #endif //x axis pins @@ -525,13 +524,13 @@ #define BTN_EN2 10 #define BTN_ENC 12 //the click -#endif +#endif // GEN7_CUSTOM /**************************************************************************************** * Arduino Mega pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68 +#if IS_RAMPS || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define KNOWN_BOARD 1 //////////////////FIX THIS////////////// @@ -547,11 +546,11 @@ // #define RAMPS_V_1_0 -#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68 +#if (IS_RAMPS && !MB(RAMPS_OLD)) || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define LARGE_FLASH true - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define X_STEP_PIN 54 #define X_DIR_PIN 55 #define X_ENABLE_PIN 38 @@ -628,16 +627,16 @@ #define E1_DIR_PIN 34 #define E1_ENABLE_PIN 30 -#if MOTHERBOARD == 34 //FMM added for Filament Extruder +#if MB(RAMPS_13_EEB) //FMM added for Filament Extruder #ifdef FILAMENT_SENSOR - //define analog pin for the filament width sensor input - //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector + //define analog pin for the filament width sensor input + //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector #define FILWIDTH_PIN 5 #endif #endif - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define E2_STEP_PIN 23 #define E2_DIR_PIN 25 #define E2_ENABLE_PIN 40 @@ -656,17 +655,17 @@ #define LED_PIN 13 #endif - #if MOTHERBOARD == 33 || MOTHERBOARD == 35 || MOTHERBOARD == 67 || MOTHERBOARD == 68 + #if MB(RAMPS_13_EFB) || MB(RAMPS_13_EFF) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) #define FAN_PIN 9 // (Sprinter config) #else #define FAN_PIN 4 // IO pin. Buffer needed #endif - #if MOTHERBOARD == 77 || MOTHERBOARD == 36 + #if MB(3DRAG) || MB(RAMPS_13_EEF) #define FAN_PIN 8 #endif - #if MOTHERBOARD == 35 + #if MB(RAMPS_13_EFF) #define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller #endif @@ -678,24 +677,24 @@ #define KILL_PIN -1 #endif - #if MOTHERBOARD == 35 + #if MB(RAMPS_13_EFF) #define HEATER_0_PIN 8 #else #define HEATER_0_PIN 10 // EXTRUDER 1 #endif - #if MOTHERBOARD == 33 || MOTHERBOARD == 67 + #if MB(RAMPS_13_EFB) || MB(AZTEEG_X3) #define HEATER_1_PIN -1 #else #define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter) #endif - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define HEATER_0_PIN 10 #define HEATER_1_PIN 12 #define HEATER_2_PIN 6 - #elif MOTHERBOARD == 68 + #elif MB(AZTEEG_X3_PRO) #define HEATER_2_PIN 16 #define HEATER_3_PIN 17 #define HEATER_4_PIN 4 @@ -708,7 +707,7 @@ #define TEMP_0_PIN 13 // ANALOG NUMBERING #define TEMP_1_PIN 15 // ANALOG NUMBERING - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define TEMP_2_PIN 12 // ANALOG NUMBERING #define TEMP_3_PIN 11 // ANALOG NUMBERING #define TEMP_4_PIN 10 // ANALOG NUMBERING @@ -718,10 +717,10 @@ #define TEMP_2_PIN -1 // ANALOG NUMBERING #endif - #if MOTHERBOARD == 35 || MOTHERBOARD == 36 + #if MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF) #define HEATER_BED_PIN -1 // NO BED #else - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define HEATER_BED_PIN 9 // BED #else #define HEATER_BED_PIN 8 // BED @@ -746,12 +745,12 @@ #endif #endif - #if MOTHERBOARD == 68 + #if MB(AZTEEG_X3_PRO) #define BEEPER 33 #endif #ifdef TEMP_STAT_LEDS - #if MOTHERBOARD == 67 + #if MB(AZTEEG_X3) #define STAT_LED_RED 6 #define STAT_LED_BLUE 11 #endif @@ -814,7 +813,7 @@ #endif - #if MOTHERBOARD == 77 + #if MB(3DRAG) #define BEEPER -1 #define LCD_PINS_RS 27 @@ -832,10 +831,10 @@ #endif #else //old style panel with shift register //arduino pin witch triggers an piezzo beeper - #define BEEPER 33 //No Beeper added + #define BEEPER 33 //No Beeper added //buttons are attached to a shift register - // Not wired this yet + // Not wired this yet //#define SHIFT_CLK 38 //#define SHIFT_LD 42 //#define SHIFT_OUT 40 @@ -850,7 +849,7 @@ #endif #endif //ULTRA_LCD -#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3) +#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (BOARD_RAMPS_OLD) #define X_STEP_PIN 26 #define X_DIR_PIN 28 @@ -896,7 +895,7 @@ #define TEMP_2_PIN -1 #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#endif // MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 +#endif // RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG // SPI for Max6675 Thermocouple @@ -910,13 +909,13 @@ #define MAX6675_SS 49 #endif -#endif //MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 +#endif // RAMPS_OLD || RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG /**************************************************************************************** * Duemilanove w/ ATMega328P pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 4 +#if MB(DUEMILANOVE_328P) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega328P__ @@ -958,25 +957,25 @@ #define HEATER_BED_PIN -1 #define TEMP_BED_PIN -1 -#endif +#endif // DUEMILANOVE_328P /**************************************************************************************** * Elefu RA Board Pin Assignments * ****************************************************************************************/ -#if MOTHERBOARD == 21 -#define KNOWN_BOARD 1 +#if MB(ELEFU_3) +#define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. #endif -#define X_STEP_PIN 49 -#define X_DIR_PIN 13 -#define X_ENABLE_PIN 48 -#define X_MIN_PIN 35 -#define X_MAX_PIN -1 //34 +#define X_STEP_PIN 49 +#define X_DIR_PIN 13 +#define X_ENABLE_PIN 48 +#define X_MIN_PIN 35 +#define X_MAX_PIN -1 //34 #define Y_STEP_PIN 11 #define Y_DIR_PIN 9 @@ -1008,18 +1007,18 @@ #define FAN_PIN 16 //5V PWM #define PS_ON_PIN 10 //Set to -1 if using a manual switch on the PWRSW Connector -#define SLEEP_WAKE_PIN 26 //This feature still needs work +#define SLEEP_WAKE_PIN 26 //This feature still needs work -#define HEATER_0_PIN 45 //12V PWM1 -#define HEATER_1_PIN 46 //12V PWM2 -#define HEATER_2_PIN 17 //12V PWM3 -#define HEATER_BED_PIN 44 //DOUBLE 12V PWM -#define TEMP_0_PIN 3 //ANALOG NUMBERING -#define TEMP_1_PIN 2 //ANALOG NUMBERING -#define TEMP_2_PIN 1 //ANALOG NUMBERING -#define TEMP_BED_PIN 0 //ANALOG NUMBERING +#define HEATER_0_PIN 45 //12V PWM1 +#define HEATER_1_PIN 46 //12V PWM2 +#define HEATER_2_PIN 17 //12V PWM3 +#define HEATER_BED_PIN 44 //DOUBLE 12V PWM +#define TEMP_0_PIN 3 //ANALOG NUMBERING +#define TEMP_1_PIN 2 //ANALOG NUMBERING +#define TEMP_2_PIN 1 //ANALOG NUMBERING +#define TEMP_BED_PIN 0 //ANALOG NUMBERING -#define BEEPER 36 +#define BEEPER 36 #define KILL_PIN -1 @@ -1082,14 +1081,14 @@ #endif //RA_LIGHTING -#endif /* Ra Board */ +#endif // ELEFU_3 /**************************************************************************************** * Gen6 pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 5 || MOTHERBOARD == 51 +#if MB(GEN6) || MB(GEN6_DELUXE) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ @@ -1128,7 +1127,7 @@ #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 #define HEATER_1_PIN -1 #define HEATER_2_PIN -1 - #if MOTHERBOARD == 5 + #if MB(GEN6) #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 #else @@ -1149,32 +1148,32 @@ #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 - -#endif +#endif // GEN6 || GEN6_DELUXE /**************************************************************************************** * Sanguinololu pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 64 +#if MB(STB_11) #define STB #endif -#if MOTHERBOARD == 63 || MOTHERBOARD == 66 +#if MB(MELZI) || MB(MELZI_1284) #define MELZI #endif -#if MOTHERBOARD == 65 +#if MB(AZTEEG_X1) #define AZTEEG_X1 #endif -#if MOTHERBOARD == 62 || MOTHERBOARD == 63 || MOTHERBOARD == 64 || MOTHERBOARD == 65 || MOTHERBOARD == 66 +#if MB(SANGUINOLOLU_12) || MB(MELZI) || MB(STB_11) || MB(AZTEEG_X1) || MB(MELZI_1284) #undef MOTHERBOARD -#define MOTHERBOARD 6 +#define MOTHERBOARD BOARD_SANGUINOLOLU_11 #define SANGUINOLOLU_V_1_2 #if defined(__AVR_ATmega1284P__) - #define LARGE_FLASH true + #define LARGE_FLASH true #endif #endif -#if MOTHERBOARD == 6 + +#if MB(SANGUINOLOLU_11) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ #ifndef __AVR_ATmega1284P__ @@ -1211,7 +1210,7 @@ #ifdef STB #define FAN_PIN 4 - // Uncomment this if you have the first generation (V1.10) of STBs board + // Uncomment this if you have the first generation (V1.10) of STBs board #define LCD_PIN_BL 17 // LCD backlight LED #endif @@ -1322,7 +1321,7 @@ // Pins for DOGM SPI LCD Support #define DOGLCD_A0 30 #define DOGLCD_CS 17 - #define LCD_PIN_BL 28 // backlight LED on PA3 + #define LCD_PIN_BL 28 // backlight LED on PA3 // GLCD features #define LCD_CONTRAST 1 // Uncomment screen orientation @@ -1338,15 +1337,16 @@ #define SDCARDDETECT -1 #endif //Makrpanel -#endif +#endif // SANGUINOLOLU_11 -#if MOTHERBOARD == 7 -#define KNOWN_BOARD /***************************************************************** * Ultimaker pin assignment ******************************************************************/ +#if MB(ULTIMAKER) +#define KNOWN_BOARD + #ifndef __AVR_ATmega1280__ #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. @@ -1442,9 +1442,9 @@ #endif #endif //ULTRA_LCD -#endif +#endif // ULTIMAKER -#if MOTHERBOARD == 71 +#if MB(ULTIMAKER_OLD) #define KNOWN_BOARD /***************************************************************** * Ultimaker pin assignment (Old electronics) @@ -1511,9 +1511,9 @@ #define LCD_PINS_D6 32 #define LCD_PINS_D7 30 -#endif +#endif // ULTIMAKER_OLD -#if MOTHERBOARD == 72 +#if MB(ULTIMAIN_2) #define KNOWN_BOARD /***************************************************************** * Ultiboard v2.0 pin assignment @@ -1596,13 +1596,13 @@ #define SDCARDDETECT 39 -#endif//MOTHERBOARD == 72 +#endif // ULTIMAIN_2 /**************************************************************************************** * RUMBA pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 80 +#if MB(RUMBA) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ @@ -1712,7 +1712,7 @@ #define BTN_EN2 12 #define BTN_ENC 43 -#endif //MOTHERBOARD==80 +#endif // RUMBA /**************************************************************************************** @@ -1721,7 +1721,7 @@ http://www.pjrc.com/teensy/teensyduino.html * See http://reprap.org/wiki/Printrboard for more info ****************************************************************************************/ -#if MOTHERBOARD == 8 || MOTHERBOARD == 81 +#if MB(TEENSYLU) || MB(PRINTRBOARD) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -1759,7 +1759,7 @@ // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h // for the fan and Teensyduino uses a different pin mapping. -#if MOTHERBOARD == 8 // Teensylu +#if MB(TEENSYLU) // Teensylu #define X_STOP_PIN 13 #define Y_STOP_PIN 14 #define Z_STOP_PIN 15 @@ -1793,14 +1793,14 @@ #define MOSI_PIN 10 #endif -#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard) +#endif // TEENSYLU || PRINTRBOARD /**************************************************************************************** * Brainwave 1.0 pin assignments (AT90USB646) * Requires hardware bundle for Arduino: https://github.com/unrepentantgeek/brainwave-arduino ****************************************************************************************/ -#if MOTHERBOARD == 82 +#if MB(BRAINWAVE) #define KNOWN_BOARD 1 #define AT90USB 646 // Disable MarlinSerial etc. @@ -1856,7 +1856,7 @@ #define MOSI_PIN 10 #endif -#endif // MOTHERBOARD == 82 (Brainwave) +#endif // BRAINWAVE // // SAV Mk-I @@ -1867,7 +1867,7 @@ http://www.pjrc.com/teensy/teensyduino.html RepRap Clone Wars project board. ****************************************************************************************/ -#if MOTHERBOARD == 83 // SAV Mk-I +#if MB(SAV_MKI) // SAV Mk-I #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -1941,7 +1941,7 @@ #define SR_DATA_PIN 0 #define SR_CLK_PIN 1 -#endif // MOTHERBOARD == 83 +#endif // SAV_MKI /**************************************************************************************** * Teensy++ 2.0 Breadboard pin assignments (AT90USB1286) @@ -1951,7 +1951,7 @@ * CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make * ****************************************************************************************/ -#if MOTHERBOARD == 84 +#if MB(TEENSY2) #define KNOWN_BOARD 1 #define AT90USB 1286 // Disable MarlinSerial etc. @@ -2036,7 +2036,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_2_PIN -1 #define SDPOWER -1 -#define SDCARDDETECT -1 +#define SDCARDDETECT -1 #define SDSS 20 // 8 #define LED_PIN 6 #define PS_ON_PIN 27 @@ -2062,15 +2062,15 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BTN_ENC 40 #endif -#endif // MOTHERBOARD == 84 (Teensy++2.0 Breadboard) +#endif // TEENSY2 /**************************************************************************************** * Gen3+ pin assignment * ****************************************************************************************/ -#if MOTHERBOARD == 9 -#define MOTHERBOARD 6 /*TODO: Figure out, Why is this done?*/ +#if MB(GEN3_PLUS) +#define MOTHERBOARD BOARD_SANGUINOLOLU_11 /*TODO: Figure out, Why is this done?*/ #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ #ifndef __AVR_ATmega1284P__ @@ -2116,13 +2116,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define SDSS 4 #define HEATER_2_PIN -1 -#endif +#endif // GEN3_PLUS /**************************************************************************************** * Gen3 Monolithic Electronics * ****************************************************************************************/ -#if MOTHERBOARD == 22 +#if MB(GEN3_MONOLITHIC) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644P__ @@ -2170,12 +2170,12 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_BED_PIN -1 -#define SDSS -1 +#define SDSS -1 #define SDPOWER -1 #define LED_PIN -1 //pin for controlling the PSU. -#define PS_ON_PIN 14 //Alex, Do this work on the card? +#define PS_ON_PIN 14 //Alex, Do this work on the card? //Alex extras from Gen3+ #define KILL_PIN -1 @@ -2183,7 +2183,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_2_PIN -1 #define HEATER_2_PIN -1 -#endif +#endif // GEN3_MONOLITHIC /**************************************************************************************** * Open Motion controller with enable based extruders @@ -2214,7 +2214,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a * +--------+ * ****************************************************************************************/ -#if MOTHERBOARD == 90 //Alpha OMCA board +#if MB(OMCA_A) //Alpha OMCA board #define KNOWN_BOARD 1 #ifndef __AVR_ATmega644__ @@ -2266,9 +2266,9 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define TEMP_BED_PIN -1 // 1,2 or I2C /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ -#endif +#endif // OMCA_A -#if MOTHERBOARD == 91 // Final OMCA board -- REF http://sanguino.cc/hardware +#if MB(OMCA) // Final OMCA board -- REF http://sanguino.cc/hardware #define KNOWN_BOARD 1 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) @@ -2332,14 +2332,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define I2C_SCL 16 #define I2C_SDA 17 -#endif +#endif // OMCA -#if MOTHERBOARD == 301 -#define KNOWN_BOARD /***************************************************************** * Rambo Pin Assignments ******************************************************************/ - +#if MB(RAMBO) +#define KNOWN_BOARD #ifndef __AVR_ATmega2560__ #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #endif @@ -2478,13 +2477,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define FILWIDTH_PIN 3 #endif //FILAMENT_SENSOR -#endif +#endif // RAMBO /**************************************************************************************** * MegaTronics * ****************************************************************************************/ -#if MOTHERBOARD == 70 +#if MB(MEGATRONICS) #define KNOWN_BOARD 1 @@ -2570,7 +2569,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Ramps does not use this port + #define SDCARDDETECT -1 // Ramps does not use this port //encoder rotation values #define encrot0 0 @@ -2580,13 +2579,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #endif #endif //ULTRA_LCD -#endif +#endif // MEGATRONICS /**************************************************************************************** * MegaTronics v2.0 * ****************************************************************************************/ -#if MOTHERBOARD == 701 +#if MB(MEGATRONICS_2) #define KNOWN_BOARD 1 @@ -2682,7 +2681,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Megatronics does not use this port + #define SDCARDDETECT -1 // Megatronics does not use this port //encoder rotation values #define encrot0 0 @@ -2690,14 +2689,14 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // MEGATRONICS_2 /**************************************************************************************** * Minitronics v1.0 * ****************************************************************************************/ -#if MOTHERBOARD == 702 +#if MB(MEGATRONICS_1) #define KNOWN_BOARD 1 @@ -2778,7 +2777,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define BLEN_B 1 #define BLEN_A 0 - #define SDCARDDETECT -1 // Megatronics does not use this port + #define SDCARDDETECT -1 // Megatronics does not use this port //encoder rotation values #define encrot0 0 @@ -2786,13 +2785,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // MEGATRONICS_1 /**************************************************************************************** * Cheaptronic v1.0 * ****************************************************************************************/ -#if MOTHERBOARD == 2 +#if MB(CHEAPTRONIC) #define KNOWN_BOARD 1 #ifndef __AVR_ATmega2560__ @@ -2887,7 +2886,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a #define encrot2 3 #define encrot3 1 -#endif +#endif // CHEAPTRONIC @@ -2954,5 +2953,5 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a HEATER_BED_PIN, FAN_PIN, \ _E0_PINS _E1_PINS _E2_PINS \ analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) } -#endif +#endif //__PINS_H diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index af5d8c130..5dc55df6e 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -768,7 +768,7 @@ return(filament_width_nominal/temp*100); void tp_init() { -#if (MOTHERBOARD == 80) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) +#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector MCUCR=(1< Date: Thu, 18 Dec 2014 12:07:26 -0800 Subject: [PATCH 32/33] Clean up configs --- Marlin/Configuration.h | 1 - .../SCARA/Configuration.h | 46 +------------------ .../makibox/Configuration.h | 44 +----------------- 3 files changed, 4 insertions(+), 87 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 591ce1333..b99ec6a29 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -38,7 +38,6 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - // The following define selects which electronics board you have. // Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index f7bdab828..e87d22848 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -55,50 +55,8 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 131 = OpenHardware.co.za custom Gen7 electronics -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_RAMPS_13_EFB #endif diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index c39465f2b..967f0e3b2 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -30,48 +30,8 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_5DPRINT #endif From 6880e93b759af421d9d765ba58fd31bd4cf0e4df Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 18 Dec 2014 14:02:47 -0800 Subject: [PATCH 33/33] Happy configs --- .../SCARA/Configuration.h | 2 + .../delta/Configuration.h | 2 + .../makibox/Configuration.h | 2 + .../tvrrug/Round2/Configuration.h | 51 ++----------------- 4 files changed, 11 insertions(+), 46 deletions(-) diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index e87d22848..f6cb2d2a3 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration diff --git a/Marlin/example_configurations/delta/Configuration.h b/Marlin/example_configurations/delta/Configuration.h index e5c405e44..c618dd34b 100644 --- a/Marlin/example_configurations/delta/Configuration.h +++ b/Marlin/example_configurations/delta/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 967f0e3b2..07c4c586c 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 527431a5b..34be1d2de 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -1,6 +1,8 @@ #ifndef CONFIGURATION_H #define CONFIGURATION_H +#include "boards.h" + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -36,53 +38,10 @@ // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices - -//// The following define selects which electronics board you have. Please choose the one that matches your setup -// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -// 11 = Gen7 v1.1, v1.2 = 11 -// 12 = Gen7 v1.3 -// 13 = Gen7 v1.4 -// 2 = Cheaptronic v1.0 -// 20 = Sethi 3D_1 -// 3 = MEGA/RAMPS up to 1.2 = 3 -// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -// 4 = Duemilanove w/ ATMega328P pin assignment -// 5 = Gen6 -// 51 = Gen6 deluxe -// 6 = Sanguinololu < 1.2 -// 62 = Sanguinololu 1.2 and above -// 63 = Melzi -// 64 = STB V1.1 -// 65 = Azteeg X1 -// 66 = Melzi with ATmega1284 (MaKr3d version) -// 67 = Azteeg X3 -// 68 = Azteeg X3 Pro -// 7 = Ultimaker -// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) -// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) -// 77 = 3Drag Controller -// 8 = Teensylu -// 80 = Rumba -// 81 = Printrboard (AT90USB1286) -// 82 = Brainwave (AT90USB646) -// 83 = SAV Mk-I (AT90USB1286) -// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -// 9 = Gen3+ -// 70 = Megatronics -// 701= Megatronics v2.0 -// 702= Minitronics v1.0 -// 90 = Alpha OMCA board -// 91 = Final OMCA board -// 301= Rambo -// 21 = Elefu Ra Board (v3) -// 88 = 5DPrint D8 Driver Board -// 999 = Leapfrog - +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup #ifndef MOTHERBOARD -#define MOTHERBOARD 91 + #define MOTHERBOARD BOARD_OMCA #endif // Define this to set a custom name for your generic Mendel,