/*
This project is a simulation of a PCB I'm building.
If you want to check out the full project on Github
go to: https://github.com/BlueShark100/commander
*/
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
const unsigned char ArrowIcon[] PROGMEM = {0x80, 0x40, 0x20, 0x40, 0x80};
int ArrowPos = 0;
int Select = 0;
int ArrowShift = 19;
int PrevArrowShift = 19;
int PrevSelect;
int PrevArrowPos;
int scroll = 0;
int press_start;
// Defining the pin the LEDs are connected to (D2)
#define LED_PIN 2
// Amount of LEDs
#define LED_COUNT 8
// Declare the LED strip object
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
//define colors to use
uint32_t white = strip.Color(255, 255, 255);
uint32_t red = strip.Color(255, 0, 0);
uint32_t orange = strip.Color(255, 160, 0);
uint32_t yellow = strip.Color(255, 255, 0);
uint32_t green = strip.Color(0, 255, 0);
uint32_t cyan = strip.Color(0, 208, 255);
uint32_t blue = strip.Color(0, 70, 255);
uint32_t purple = strip.Color(170, 31, 255);
uint32_t pink = strip.Color(255, 0, 255);
//get these values from the EEPROM later but thet are setup with the proper checks so that this function is ready
bool MenuAnimation = false; // I'm pretty sure my menu animation is running into memory limits because the arduino bugs out and just prints a a ton of times to the serial monitor
bool SplashAnimation = false; // similar situation with the splash animation but it doesn't bug out it just tells me there isn't enough memory
uint32_t *TopColor = &cyan; // using pointers to reference other others
uint32_t *BottomColor = &pink;
int AutoScrollSpeed = 5; //lines per second
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
char *folders[11] = {"GENERAL","FINDER","TEXT","SYSTEM","POWER", "TIPS", "SETTINGS", "123456789", "#+^+T", "#+T", "#+Shift+T"}; //max characters that fit in a line is 9 so the arrow fits
char *folder_descriptions[7] = {"The Main Things","MacOS File Manager","Text Shortcuts","MacOS Global Commands","Restart, Shutdown, etc.", "Cool Stuff to Know", "Customise Your Device"};
char *General[6][2] = {{"#+C", "Copy"}, {"#+V", "Paste"}, {"#+T", "New tab"}, {"#+N", "new window"}, {"#+W", "Close tab/window"}, {"#+Shift+W", "Close all tabs/windows"}};
char** CurrentFolder = folders;
void setup() {
//setup the pins for the Buttons
pinMode(3, INPUT_PULLUP); //Up
pinMode(4, INPUT_PULLUP); //Down
pinMode(5, INPUT_PULLUP); //Left
pinMode(6, INPUT_PULLUP); //Right
Serial.begin(9600);
//start the display object
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
//setup the LED strip
strip.begin();
strip.show();
strip.setBrightness(255);
//clear the display before we start so it doesnt show anything goofy like the arduino library splash screen (that i think i might be legally reqiured to do if i'm using the library and selling the code for profit)
display.clearDisplay();
display.display();
delay(200);
//once the splash screen is done turn off all the LEDs and clear the display.
strip.clear();
strip.show();
display.clearDisplay();
display.display();
splash_Animation();
menu_Animation();
//end of splashscreen
delay(100);
}
void loop() { // ----------------- Primary Menu Navigation and operation (putting it all together). -----------------
display.setTextColor(SSD1306_WHITE);//ensure the text is being written in white everytime we start drawing a new frame
if (digitalRead(3) == HIGH & digitalRead(4) == HIGH & digitalRead(5) == HIGH & digitalRead(6) == HIGH) {
press_start = millis();
PrevArrowPos = ArrowPos;
PrevSelect = Select;
PrevArrowShift = ArrowShift;
} //once a button is pressed start timing it to later detect long presses (will be used to scroll faster through the menus)
if (int(millis() - press_start) > 500) {
//display.setCursor(10, 0);
} //if its been pressed for over 500 miliseconds indent the text to show that its been detected
if (digitalRead(3) == LOW) { //display the corresponding direction with the button that has been pressed.
//display.println("UP");
Select--;
ArrowPos--;
} else if (digitalRead(4) == LOW) {
//display.println("DOWN");
Select++;
ArrowPos++;
} else if (digitalRead(5) == LOW) {
//display.println("LEFT");
} else if (digitalRead(6) == LOW) {
//display.println("RIGHT");
}
if ((ArrowPos < 0) && (Select > -1)) { //move the arrow up only if within range
scroll_Items("UP");
ArrowPos = 0;
PrevSelect = Select;
ArrowShift = 19;
} else if ((ArrowPos > 3) && (Select <= ((sizeof(folders)/2)) - 1)) { //move the arrow down only if within range
scroll_Items("DOWN");
ArrowPos = 3;
PrevSelect = Select;
ArrowShift = 23;
} else if ((Select > ((sizeof(folders)/2)) - 1) or (Select <= -1)) { //make sure we dont go out of range by resseting the values to thier original state
ArrowPos = PrevArrowPos;
Select = PrevSelect;
}
display.fillRect((String(folders[PrevSelect]).length()*6) + 9, PrevArrowShift + (PrevArrowPos * 11), 3, 5, BLACK);//get rid of the previous arrow by filling in the space
display.drawBitmap((String(folders[Select]).length()*6) + 9, ArrowShift + (ArrowPos * 11), ArrowIcon, 3, 5, WHITE); //draw the new arrow at the correct location based of the name of the folder and staying in line with the vertical location of the folder.
display.fillRect(74, 15, 51, 47, BLACK); //clear the area to draw the description of the folders
Serial.flush();
for (int i = 0; i <= String(folder_descriptions[0]).length(); i = i + 8) { //Loop by the amount of line needed to display the description within the space. i represents the chracter number so we increase by 8 becasue thats how many fit in a line
if (i == 0) {display.setCursor(77, 15);} else {display.setCursor(74, 15 + (i));} //if its the first one indent the first line to accomodate for the beveled corner
if (String(String(folder_descriptions[0]).substring(i, i + 8).charAt(0)) == " ") { //if the second line starts with a space then get rid of it and increase i by one to make up for the missing character.
display.println(String(folder_descriptions[0]).substring(i + 1, i + 9));
i++;
} else {
display.println(String(folder_descriptions[0]).substring(i, i + 8)); //print the line from the current character number and the next 8 characters to fill the space
}
}
while (digitalRead(3) == LOW or digitalRead(4) == LOW or digitalRead(5) == LOW or digitalRead(6) == LOW) {} //while we are pressing a button make sure to do nothing so it doesnt fun all the functions like 50 times per press.
display.display(); //display changes
display.flush();
}
void scroll_Items(String UpOrDown) { //----------------- Scroll the items in the menu -----------------
int textPlace = 18; //where the whole thing is placed. starts at 18 cause thats the default but might change if we are scrolling down to display the last value at the very bottom
int startDraw = 0; //define where to start drawing the menu elements. so if its -1 it would start drawing the menu elements one above where the "first" element is.
if (UpOrDown == "UP") {
scroll--;
} else if ((UpOrDown == "DOWN") && !(scroll < 0)) {
scroll++;
textPlace = 22; //moves the folders just a little down to show the bottom name
startDraw = -1;
};
display.fillRect(0, 11, 70, 55, BLACK); //clear the text area in order to drew the new (moved) folder names
for (int i = startDraw; i < 5; i++) {
display.drawLine(0, (textPlace - 1) + (i * 11), 0, (textPlace + 7) + (i * 11), WHITE);
display.setCursor(4, textPlace + (i * 11));
display.println(CurrentFolder[i + scroll]);
}
display.drawLine(0, 11, 70, 11, BLACK); // lil spacer between the text clipping into the top bar
display.display();
}
void splash_Animation() {
//Byte array for the splash screen animation
const unsigned char splash2[] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash3[] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash4[] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash5[] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash6[] PROGMEM = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash7[] PROGMEM = {0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash8[] PROGMEM = {0xff, 0xf1, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x12, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x84, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash9[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe7, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x40, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x80, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x00, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x81, 0x0e, 0xb0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0xa0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x12, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xf1, 0x1c, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x21, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x41, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash10[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x15, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x53, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x20, 0x00, 0x0c, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x20, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x26, 0x04, 0x02, 0x0d, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash11[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x04, 0x08, 0x00, 0x00, 0x00, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x3c, 0x08, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x28, 0x10, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x28, 0x10, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x30, 0x20, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x30, 0x20, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x20, 0x40, 0x00, 0x00, 0x00, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x20, 0x40, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x40, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0x81, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x81, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x20, 0x00, 0x0e, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x20, 0x00, 0x20, 0x00, 0x04, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x60, 0x04, 0x22, 0x01, 0x00, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x21, 0x04, 0x22, 0x11, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x26, 0x04, 0x02, 0x1d, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash12[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0xf8, 0x00, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x04, 0x08, 0x00, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x04, 0x08, 0x00, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x08, 0x10, 0x00, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x78, 0x10, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x50, 0x20, 0x00, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x70, 0x20, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x20, 0x40, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x20, 0x40, 0x00, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x80, 0x00, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x80, 0x00, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x81, 0x00, 0x00, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x81, 0x00, 0x00, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x85, 0x02, 0x00, 0x00, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x05, 0x02, 0x00, 0x00, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x04, 0x20, 0x02, 0x22, 0x01, 0x8e, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x04, 0xa0, 0x04, 0x22, 0x01, 0x04, 0x12, 0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x64, 0x04, 0x61, 0x06, 0x22, 0x11, 0x04, 0x11, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x21, 0x04, 0x22, 0x11, 0x00, 0x10, 0x90, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x08, 0x26, 0x04, 0x23, 0x1d, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash13[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xf0, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x10, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x10, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x10, 0x20, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x10, 0x20, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x20, 0x40, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x20, 0x40, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x40, 0x80, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x40, 0x80, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x81, 0x00, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x81, 0x00, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x02, 0x00, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x01, 0x02, 0x00, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x02, 0x04, 0x00, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x04, 0x00, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x05, 0x22, 0x03, 0x23, 0x81, 0xce, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x84, 0xa1, 0x04, 0x22, 0x51, 0x24, 0x12, 0x90, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x04, 0x61, 0x07, 0x22, 0x19, 0x04, 0x11, 0x90, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x14, 0x04, 0x21, 0x04, 0x22, 0x11, 0x04, 0x10, 0x90, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x18, 0x26, 0x04, 0x32, 0x1d, 0x00, 0x60, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash14[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xff, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x08, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x08, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x09, 0xf0, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x09, 0x10, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x09, 0xe0, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x08, 0x20, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x08, 0x40, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x08, 0x40, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x0a, 0x81, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x08, 0x81, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x8b, 0x02, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x00, 0x89, 0x02, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x01, 0x0a, 0x04, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x0a, 0x04, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x05, 0x26, 0x03, 0x23, 0x91, 0xce, 0x64, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x85, 0xa1, 0x04, 0xa2, 0x51, 0x24, 0x16, 0x90, 0x00, 0x00, 0x09, 0xf8, 0x00, 0x00, 0x65, 0x05, 0x61, 0x07, 0x23, 0x19, 0x84, 0x15, 0x90, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x14, 0x24, 0x21, 0x04, 0x22, 0x11, 0x04, 0x90, 0x90, 0x00, 0x07, 0xe4, 0x00, 0x00, 0x00, 0xe4, 0x18, 0x26, 0x04, 0x3b, 0x1d, 0x04, 0x60, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash15[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xf9, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x06, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x02, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x09, 0xe2, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x09, 0x14, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x09, 0xf4, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x08, 0x04, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x08, 0x08, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x08, 0x08, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x0a, 0x08, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x08, 0x10, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x8a, 0x10, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x00, 0x88, 0x10, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x01, 0x0a, 0xe0, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x08, 0xa0, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x0f, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x25, 0x26, 0x03, 0x23, 0x9d, 0xce, 0x64, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0xa5, 0xa9, 0x04, 0xa2, 0x51, 0x24, 0x96, 0x90, 0x00, 0x00, 0x09, 0xff, 0xff, 0x00, 0xe7, 0x25, 0x69, 0x07, 0xa3, 0x99, 0xc4, 0x95, 0x90, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x94, 0xa5, 0x29, 0x04, 0xa2, 0x51, 0x24, 0x94, 0x90, 0x01, 0xff, 0xe4, 0x00, 0x00, 0x00, 0xe4, 0x99, 0x26, 0x04, 0xbb, 0x9d, 0x24, 0x64, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash16[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xf8, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x04, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x02, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x09, 0xe1, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x09, 0x11, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x09, 0xf1, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x08, 0x01, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x08, 0x0f, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x08, 0x08, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x0a, 0x04, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x08, 0x02, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x8a, 0x01, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x00, 0x88, 0x01, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x01, 0x0a, 0xc1, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x08, 0xa1, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x0f, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x25, 0x26, 0x03, 0x23, 0x9d, 0xce, 0x64, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x94, 0xa5, 0xa9, 0x04, 0xa2, 0x51, 0x24, 0x96, 0x90, 0x00, 0x00, 0x09, 0xff, 0xff, 0xfc, 0xe7, 0x25, 0x69, 0x07, 0xa3, 0x99, 0xc4, 0x95, 0x90, 0x20, 0x00, 0x12, 0x00, 0x00, 0x04, 0x94, 0xa5, 0x29, 0x04, 0xa2, 0x51, 0x24, 0x94, 0x90, 0x3f, 0xff, 0xe4, 0x00, 0x00, 0x00, 0xe4, 0x99, 0x26, 0x04, 0xbb, 0x9d, 0x24, 0x64, 0xb8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash17[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xf8, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x04, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x02, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x09, 0xe1, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x09, 0x11, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x09, 0xf1, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x08, 0x01, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x08, 0x0f, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x08, 0x08, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x0a, 0x04, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x08, 0x02, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x8a, 0x01, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x00, 0x88, 0x01, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x01, 0x0a, 0xc1, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x08, 0xa1, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x0f, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x25, 0x26, 0x03, 0x23, 0x9d, 0xce, 0x64, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x94, 0xa5, 0xa9, 0x04, 0xa2, 0x51, 0x24, 0x96, 0x90, 0x00, 0x00, 0x09, 0xff, 0xff, 0xfc, 0xe7, 0x25, 0x69, 0x07, 0xa3, 0x99, 0xc4, 0x95, 0x90, 0xe0, 0x00, 0x12, 0x00, 0x00, 0x07, 0x94, 0xa5, 0x29, 0x04, 0xa2, 0x51, 0x24, 0x94, 0x90, 0x3f, 0xff, 0xe4, 0x00, 0x00, 0x00, 0xe4, 0x99, 0x26, 0x04, 0xbb, 0x9d, 0x24, 0x64, 0xb8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash21[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x03, 0xe3, 0xe3, 0xfe, 0x07, 0xff, 0x8f, 0xf8, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x82, 0x12, 0x22, 0x01, 0x04, 0x00, 0x88, 0x04, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x42, 0x8a, 0x22, 0x00, 0x85, 0x01, 0x08, 0x02, 0x80, 0x41, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x06, 0x22, 0x00, 0x44, 0x02, 0x09, 0xe1, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x22, 0x80, 0x22, 0x38, 0x45, 0x7c, 0x09, 0x11, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x09, 0xf1, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x22, 0x80, 0x22, 0x24, 0x45, 0x7c, 0x08, 0x01, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x22, 0x00, 0x22, 0x24, 0x44, 0x04, 0x08, 0x0f, 0x84, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x08, 0x08, 0x08, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x70, 0x0a, 0x04, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x22, 0x00, 0x22, 0x24, 0x44, 0x40, 0x08, 0x02, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x11, 0x00, 0x22, 0x00, 0x22, 0x38, 0x44, 0x7f, 0x8a, 0x01, 0x80, 0x21, 0x00, 0x22, 0x00, 0x11, 0x00, 0x22, 0x30, 0x22, 0x00, 0x44, 0x00, 0x88, 0x01, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x22, 0x28, 0x22, 0xa8, 0x84, 0x01, 0x0a, 0xc1, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x22, 0x24, 0x22, 0x01, 0x04, 0x02, 0x08, 0xa1, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe3, 0xe3, 0xe3, 0xfe, 0x07, 0xfc, 0x0f, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x25, 0x26, 0x03, 0x23, 0x9d, 0xce, 0x64, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x94, 0xa5, 0xa9, 0x04, 0xa2, 0x51, 0x24, 0x96, 0x90, 0x00, 0x00, 0x09, 0xff, 0xff, 0xfd, 0xe7, 0x25, 0x69, 0x07, 0xa3, 0x99, 0xc4, 0x95, 0x90, 0xe0, 0x00, 0x12, 0x00, 0x00, 0x07, 0x94, 0xa5, 0x29, 0x04, 0xa2, 0x51, 0x24, 0x94, 0x90, 0xbf, 0xff, 0xe4, 0x00, 0x00, 0x00, 0xe4, 0x99, 0x26, 0x04, 0xbb, 0x9d, 0x24, 0x64, 0xb8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash22[] PROGMEM = {0x00, 0x00, 0x3f, 0xe3, 0xf3, 0xf1, 0xff, 0x00, 0x00, 0x03, 0xfe, 0x07, 0xff, 0x8f, 0xf8, 0x00, 0x00, 0x40, 0x22, 0x0a, 0x11, 0x00, 0x80, 0x00, 0x02, 0x01, 0x04, 0x00, 0x88, 0x04, 0x00, 0x00, 0x80, 0xa2, 0x06, 0x51, 0x40, 0x40, 0x00, 0x02, 0x00, 0x85, 0x01, 0x08, 0x02, 0x00, 0x01, 0x00, 0x22, 0x00, 0x11, 0x00, 0x20, 0x00, 0x02, 0x00, 0x44, 0x02, 0x09, 0xe1, 0x00, 0x01, 0x0e, 0xa2, 0x00, 0x51, 0x58, 0x20, 0x00, 0x02, 0x38, 0x45, 0x7c, 0x09, 0x11, 0x00, 0x01, 0x12, 0x22, 0x00, 0x11, 0x14, 0x20, 0x00, 0x02, 0x24, 0x44, 0x40, 0x09, 0xf1, 0x00, 0x01, 0x12, 0xa2, 0x00, 0x51, 0x52, 0x20, 0x00, 0x02, 0x24, 0x45, 0x7c, 0x08, 0x01, 0x00, 0x01, 0x12, 0x22, 0x00, 0x11, 0x1e, 0x20, 0x00, 0x02, 0x24, 0x44, 0x04, 0x08, 0x0f, 0x00, 0x01, 0x12, 0x22, 0x00, 0x11, 0x00, 0x20, 0x00, 0x02, 0x24, 0x44, 0x08, 0x08, 0x08, 0x00, 0x01, 0x12, 0x22, 0x80, 0x11, 0x00, 0x20, 0x00, 0x02, 0x24, 0x44, 0x70, 0x0a, 0x04, 0x00, 0x01, 0x1c, 0x22, 0x00, 0x11, 0x00, 0x20, 0x00, 0x02, 0x24, 0x44, 0x40, 0x08, 0x02, 0x00, 0x01, 0x00, 0x22, 0x80, 0x11, 0x00, 0x20, 0x00, 0x02, 0x38, 0x44, 0x7f, 0x8a, 0x01, 0x00, 0x01, 0x00, 0x22, 0x00, 0x11, 0x00, 0x20, 0x00, 0x02, 0x00, 0x44, 0x00, 0x88, 0x01, 0x00, 0x01, 0x00, 0x42, 0xb3, 0x11, 0x1c, 0x20, 0x00, 0x02, 0xa8, 0x84, 0x01, 0x0a, 0xc1, 0x00, 0x01, 0x00, 0x82, 0x2a, 0x91, 0x12, 0x20, 0x00, 0x02, 0x01, 0x04, 0x02, 0x08, 0xa1, 0x00, 0x01, 0xff, 0x03, 0xe6, 0x71, 0xf1, 0xe0, 0x00, 0x03, 0xfe, 0x07, 0xfc, 0x0f, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x24, 0x06, 0x03, 0x20, 0x1d, 0xc0, 0x60, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0xa4, 0x09, 0x04, 0xa0, 0x11, 0x20, 0x90, 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x07, 0x24, 0x09, 0x07, 0xa0, 0x19, 0xc0, 0x90, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0xa4, 0x09, 0x04, 0xa0, 0x11, 0x20, 0x90, 0x10, 0xbf, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x04, 0x98, 0x06, 0x04, 0xb8, 0x1d, 0x20, 0x60, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash23[] PROGMEM = {0xff, 0xf0, 0x3f, 0xe3, 0xf3, 0xf0, 0x00, 0x03, 0xe3, 0xe3, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x40, 0x22, 0x0a, 0x10, 0x00, 0x02, 0x12, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x80, 0xa2, 0x06, 0x50, 0x00, 0x02, 0x8a, 0x22, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x41, 0x00, 0x22, 0x00, 0x10, 0x00, 0x02, 0x06, 0x22, 0x00, 0x40, 0x00, 0x00, 0x00, 0x87, 0x81, 0x0e, 0xa2, 0x00, 0x50, 0x00, 0x02, 0x80, 0x22, 0x38, 0x40, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0xa2, 0x00, 0x50, 0x00, 0x02, 0x80, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0x84, 0x01, 0x12, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x12, 0x22, 0x80, 0x10, 0x00, 0x02, 0x00, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0x87, 0xf1, 0x1c, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x22, 0x24, 0x40, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x00, 0x22, 0x80, 0x10, 0x00, 0x02, 0x00, 0x22, 0x38, 0x40, 0x00, 0x00, 0x00, 0x80, 0x21, 0x00, 0x22, 0x00, 0x10, 0x00, 0x02, 0x30, 0x22, 0x00, 0x40, 0x00, 0x00, 0x00, 0xa0, 0x41, 0x00, 0x42, 0xb3, 0x10, 0x00, 0x02, 0x28, 0x22, 0xa8, 0x80, 0x00, 0x00, 0x00, 0x80, 0x81, 0x00, 0x82, 0x2a, 0x90, 0x00, 0x02, 0x24, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0xff, 0x03, 0xe6, 0x70, 0x00, 0x03, 0xe3, 0xe3, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x25, 0x20, 0x03, 0x03, 0x80, 0x0e, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x90, 0x25, 0xa0, 0x04, 0x82, 0x40, 0x04, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfd, 0xe0, 0x25, 0x60, 0x07, 0x83, 0x80, 0x04, 0x95, 0x80, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x90, 0x25, 0x20, 0x04, 0x82, 0x40, 0x04, 0x94, 0x80, 0xbf, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x19, 0x20, 0x04, 0x83, 0x80, 0x04, 0x64, 0x80, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash24[] PROGMEM = {0x00, 0x00, 0x3f, 0xe0, 0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xf8, 0x00, 0x00, 0x40, 0x20, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x88, 0x04, 0x00, 0x00, 0x80, 0xa0, 0x00, 0x01, 0x40, 0x40, 0x00, 0x00, 0x00, 0x05, 0x01, 0x08, 0x02, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x02, 0x09, 0xe1, 0x00, 0x01, 0x0e, 0xa0, 0x00, 0x01, 0x58, 0x20, 0x00, 0x00, 0x00, 0x05, 0x7c, 0x09, 0x11, 0x00, 0x01, 0x12, 0x20, 0x00, 0x01, 0x14, 0x20, 0x00, 0x00, 0x00, 0x04, 0x40, 0x09, 0xf1, 0x00, 0x01, 0x12, 0xa0, 0x00, 0x01, 0x52, 0x20, 0x00, 0x00, 0x00, 0x05, 0x7c, 0x08, 0x01, 0x00, 0x01, 0x12, 0x20, 0x00, 0x01, 0x1e, 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x0f, 0x00, 0x01, 0x12, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x08, 0x08, 0x08, 0x00, 0x01, 0x12, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x70, 0x0a, 0x04, 0x00, 0x01, 0x1c, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x40, 0x08, 0x02, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x7f, 0x8a, 0x01, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x88, 0x01, 0x00, 0x01, 0x00, 0x40, 0x00, 0x01, 0x1c, 0x20, 0x00, 0x00, 0x00, 0x04, 0x01, 0x0a, 0xc1, 0x00, 0x01, 0x00, 0x80, 0x00, 0x01, 0x12, 0x20, 0x00, 0x00, 0x00, 0x04, 0x02, 0x08, 0xa1, 0x00, 0x01, 0xff, 0x00, 0x00, 0x01, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x0f, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x06, 0x00, 0x20, 0x1d, 0xc0, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x80, 0x09, 0x00, 0x20, 0x11, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x07, 0x00, 0x09, 0x00, 0x20, 0x19, 0xc0, 0x00, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x80, 0x09, 0x00, 0x20, 0x11, 0x20, 0x00, 0x10, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x06, 0x00, 0x38, 0x1d, 0x20, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash25[] PROGMEM = {0x00, 0x00, 0x00, 0x03, 0xf3, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x02, 0x38, 0x45, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x24, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x02, 0x24, 0x45, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x24, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x24, 0x44, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x10, 0x00, 0x00, 0x00, 0x02, 0x24, 0x44, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x24, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x10, 0x00, 0x00, 0x00, 0x02, 0x38, 0x44, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x44, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb3, 0x10, 0x00, 0x00, 0x00, 0x02, 0xa8, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x2a, 0x90, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe6, 0x70, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24, 0x00, 0x04, 0x80, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24, 0x00, 0x07, 0x80, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24, 0x00, 0x04, 0x80, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x80, 0x00, 0x00, 0x60, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char splash26[] PROGMEM = {0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x02, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x00, 0x00, 0x00, 0x02, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xa0, 0x00, 0x00, 0x00, 0x02, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, 0xa0, 0x00, 0x00, 0x00, 0x02, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1c, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x28, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x24, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char* splashAnimation[22] = {splash2, splash3, splash4, splash5, splash6, splash7, splash8, splash9, splash10, splash11, splash12, splash13, splash14, splash15, splash16, splash17, splash21, splash22, splash23, splash24, splash25, splash26 };
if (SplashAnimation == true) { //make sure the user wants the Splash animation or not
for (int i = 0; i < 22; i++) { //start of Splash screen
if (i < 19) { //fades in the LEDs by mapping the frame count to the brightness
strip.setPixelColor(i, strip.Color(10, 10, 10));
strip.setPixelColor(i-1, strip.Color(25, 25, 25));
strip.setPixelColor(i-2, strip.Color(50, 50, 50));
strip.setPixelColor(i-3, strip.Color(70, 70, 70));
strip.setPixelColor(i-4, strip.Color(100, 100, 100));
strip.setPixelColor(i-5, strip.Color(130, 130, 130));
strip.setPixelColor(i-6, strip.Color(170, 170, 170));
strip.setPixelColor(i-7, strip.Color(210, 210, 210));
strip.setPixelColor(i-8, strip.Color(255, 255, 255));
strip.show();
} else { //when the logo is blinking out blink out the LEDs too randomly
strip.setBrightness(255);
strip.fill(white, 0, 8);
strip.setPixelColor(random(0, 8), 0, 0, 0);
strip.setPixelColor(random(0, 8), 0, 0, 0);
strip.setPixelColor(random(0, 8), 0, 0, 0);
strip.show();
}
display.clearDisplay();
display.drawBitmap(4, 20, splashAnimation[i], 120, 23, WHITE); //goes through each frame of the splash screen animation
if (i == 17) { //once its on the last frame hold it for a while so you can see the splash screen, then it continues to blink out
delay(1200);
}
display.display();
}
} else {
display.drawBitmap(4, 20, splashAnimation[22], 120, 23, WHITE);
display.display();
delay(500);
}
//once the splash screen is done turn off all the LEDs and clear the display.
strip.clear();
strip.show();
display.clearDisplay();
display.display();
}
void menu_Animation() {
//coordinates for the desbription box
const unsigned int box_box[][4] = {{36, 100, 36, 100}, {36, 96, 36, 103}, {36, 94, 36, 106}, {36, 85, 36, 114}, {36, 78, 36, 122}, {36, 75, 36, 125}, {36, 71, 36, 128}, {36, 71, 36, 128}, {36, 71, 36, 128}, {32, 71, 39, 128}, {29, 71, 42, 128}, {22, 71, 49, 128}, {17, 71, 58, 128}, {14, 71, 60, 128}, {11, 71, 63, 128}, {11, 71, 63, 128}, {11, 71, 63, 128}, {11, 71, 63, 128}, {11, 71, 63, 128}, {11, 71, 63, 128}};
const unsigned int box_box_line[7] = {1, 2, 4, 4, 4, 4, 4}; //helps the lines follow the box when it opens
const unsigned int box_box_openerY[10] = {33, 30, 23, 18, 15, 12, 12, 12, 12, 12}; //this list is here cause arduino couldnt add one succsefuflly in the command itself :(
//cooridantes for the top bar
const unsigned int top_bar_line[8][2] = {{2, 75}, {10, 80}, {17, 87}, {34, 100}, {52, 114}, {61, 119}, {70, 119}, {70, 119}};
const unsigned int silly_array[9] = {3, 5, 10, 20, 35, 102, 118, 125, 125};
if (MenuAnimation == true) {
for (int i = 0; i < 19; i++) { //epic animation to slide in the menu
display.clearDisplay(); //clears the display to get ready to draw the new one
if (i < 13 & i > 7) { //blink in the colored LEDs with a little delay in accordance to the frame count
strip.fill(*BottomColor, 0, 4);
strip.fill(*TopColor, 4, 8);
strip.setPixelColor(random(0, 8), 0, 0, 0);
strip.setPixelColor(random(0, 8), 0, 0, 0);
strip.setPixelColor(random(0, 8), 0, 0, 0);
} else if (i < 7) { //keep the LEDs off before the delay
strip.clear();
} else { //keep them on after they blinked in
strip.fill(*BottomColor, 0, 4);
strip.fill(*TopColor, 4, 8);
}
strip.show(); //show the animations on the LEDs
//draws the main description box with accordance to the coordinates in the box_box list
display.fillRect(box_box[i][1], box_box[i][0], (box_box[i][3] - box_box[i][1]), (box_box[i][2] - box_box[i][0]) + 1, WHITE);
if (i > 9) { //draws the inner box so there like a sweeping effect for when it opens
display.fillRect(72, box_box_openerY[i-10], (box_box[i-1][3] - box_box[i-1][1]) - 2, (box_box[i-1][2] - box_box[i-1][0]) - 1, BLACK);
}
if (i > 12) {
//draws the trinagles on the edges on the rectangle to chamfer the edges.
display.fillTriangle(75, 11, 71, 15, 71, 11, BLACK);
display.fillTriangle(124, 63, 128, 59, 128, 63, BLACK);
//draws the lines and increases it's length based on the list and frame count
display.drawLine(71 + box_box_line[i-12], 16 - box_box_line[i-12], 71, 16, WHITE);
display.drawLine(128 - box_box_line[i-12], 58 + box_box_line[i-12], 128, 58, WHITE);
}
/*
if (i >= 7) {
display.drawLine(0, 10, 70, 10, WHITE);
display.drawLine(0, 5, 123, 5, WHITE);
display.drawLine(123, 5, 128, 0, WHITE);
display.drawLine(70, 10, 75, 5, WHITE);
} else {
display.drawLine(0, 10, top_bar_line[i][0], 10, WHITE);
display.drawLine(75, 5, top_bar_line[i][1], 5, WHITE);
}
if (i >= 7 & i < 16) {
display.fillRect(0, 0, silly_array[i - 7], 10, WHITE);
} else if (i >= 16) {
display.fillRect(0, 0, silly_array[8], 10, WHITE);
}
*/
//This is to display the current frame or "i" so I can debug animations based on frame count.
display.setCursor(0, 0);
display.setTextColor(SSD1306_INVERSE);
display.println(i);
//display.setCursor(0,0);
//display.println("WELCOME");
display.display(); //display the frame we just drew
delay(100);
}
} else { // --------- draw the menu without any aniamtions -----------
//Turn on the LEDs
strip.fill(*BottomColor, 0, 4);
strip.fill(*TopColor, 4, 8);
strip.show();
//description box
display.drawRect(71, 11, 57, 52, WHITE);//the actual box
display.fillTriangle(75, 11, 71, 15, 71, 11, BLACK);//takeaway the corners
display.fillTriangle(124, 63, 128, 59, 128, 63, BLACK);//takeaway the corners
//draws the lines to close the box back in
display.drawLine(71 + box_box_line[6], 16 - box_box_line[6], 71, 16, WHITE);
display.drawLine(128 - box_box_line[6], 58 + box_box_line[6], 128, 58, WHITE);
//top bar
display.fillRect(0, 0, 128, 11, WHITE); //Fill the top bar
display.fillTriangle(71, 10, 75, 6, 75, 10, BLACK); // take out the angles
display.fillTriangle(123, 5, 127, 1, 127, 5, BLACK); // take out the angles
display.fillRect(75, 6, 53, 5, BLACK); //remove the extra space that doesnt need angles
display.setCursor(2, 2);
display.setTextColor(SSD1306_INVERSE);
display.println(F("WELCOME"));
for (int i = 0; i < 5; i++) {
display.drawLine(0, 17 + (i * 11), 0, 25 + (i * 11), WHITE);
display.setCursor(4, 18 + (i * 11));
display.println(CurrentFolder[i]);
}
/*
//each of the folders that appear when it first boots up
display.drawLine(0, 17, 0, 25, WHITE);
display.setCursor(4, 18);
display.println(folders[0]);
display.drawLine(0, 28, 0, 36, WHITE);
display.setCursor(4, 29);
display.println(folders[1]);
display.drawLine(0, 39, 0, 47, WHITE);
display.setCursor(4, 40);
display.println(folders[2]);
display.drawLine(0, 50, 0, 58, WHITE);
display.setCursor(4, 51);
display.println(folders[3]);
display.drawLine(0, 61, 0, 69, WHITE);
display.setCursor(4, 62);
display.println(folders[4]);
*/
//draws the arrow according to the length of the string its next to
display.drawBitmap((String(folders[0]).length()*6) + 9, 19, ArrowIcon, 3, 5, WHITE);
for (int i = 0; i <= String(folder_descriptions[0]).length(); i = i + 8) {
if (i == 0) {display.setCursor(77, 15);} else {display.setCursor(74, 15 + (i));}
if (String(String(folder_descriptions[0]).substring(i, i + 8).charAt(0)) == " ") {
display.println(String(folder_descriptions[0]).substring(i + 1, i + 9));
i++;
} else {
display.println(String(folder_descriptions[0]).substring(i, i + 8));
}
}
display.display();
}
}
/* STUFF TO STILL CODE IN
A working menu
- Complete the UI with the animation (static is finished but without the animation)
• Description box | FINISHED
- Description Text | NOT FINISHED
• Top Bar | STATIC
• Text Handles | STATIC
• Text | STATIC
• Selection pointer | STATIC
• Top Welcome Text | STATIC
- Create lists of folders and commands
• list of different levels. For example when entering the General category it would
then begin to reference the General list instal of another inbedded list.
- navigation with the four buttons (up and down do exactly what they say. right and
left go in and out folders respectively) | UP & DOWN complete
- Animation for entering a folder?
Settings menu
- Save customization options to EEPROM
• Top and Bottom LED colors. Maybe some more special options like gradients?
› Blinking/glitching animation for changing color
• Automatic scroll speed
• Enable or Disable the spash screen animation
(disabled would show just the splash screen image so it goes faster)
• Enable or Disable menu animations
(disabled just goes faster but doesnt look as cool...)
- Dev Mode setting
• Enable/Disable Frame counts
• Enable/Disable Auto navigation
• Modify Frame Speeds
*/