Tutorial: como utilizar o Color LCD Shield com Arduino

O Color LCD Shield é um shield com Nokia 6100 LCD a qual você conecta no arduino e assim você pode gerar imagens com arduino. Neste tutorial vamos mostrar como o shield funciona e como utilizá-lo com Arduino.

O Color LCD Shield pode suportar imagens de 132x132 pixels. Caso sua imagem seja maior, reduza-a até esse tamanho. Como as imagens precisam estar em hexadecimal, então fizemos um programa em PYTHON (é necessário instalá-lo no sistema operacional) para converter imagens .bmp em hexadecimal. O código está demonstrado abaixo:

import Image
import ImageColor
image='/home/ldg/Documentos/Python/logopbmp.bmp' #Coloque aqui o nome do arquivo que deseja converter
texto='/home/ldg/Documentos/Python/Imagem.txt' #Crie um arquivo texto em branco em um diretório a sua escolha e coloque aqui o nome do arquivo texto para guardar a matriz da imagem em hexadecimal
f=open(texto,'w') #Irá abrir o arquivo texto
imopen=Image.open(image) #Abrirá a imagem
x=y=0
h=0
while y<52: #Coloque aqui a altura da imagem. A imagem do Ldg tem 125x51 pixels
#print "y"
x=0
while x<125: # Coloque aqui o comprimento da imagem.
#print "x"
z=imopen.getpixel((x,y))
h=0
h = h+((z[0]/16))
h = h+((z[1]/16))*16
h = h+((z[2]/16))*16*16
h=hex(h)
#print h
f.write(str(h))
f.write(',')
x=x+1
y=y+1
f.write('\n')
f.close()

Copie e cole em um editor de texto (gedit, bloco de notas, notepad, etc) e salve o arquivo com a extensão .py. Agora, abra o prompt de comando ou terminal e digite: python nomedocodigo.py e irá converter a imagem .bmp em .txt.

Gerado o arquivo .txt abra-o e copie o conteúdo. Aqui fizemos com um logo do LdG.

Neste tutorial foi utilizado a biblioteca Color LCD Shield. Extraia a biblioteca na pasta "libraries" localizada dentro da pasta da IDE do Arduino. Depois disso,abra a IDE do arduino, cole o conteúdo que você copiou do arquivo txt no código abaixo:

#include <ColorLCDShield.h> //Inclui a biblioteca do Color LCD Shield
#include <avr/pgmspace.h> //Inclui a biblioteca do avr para gravar a matriz da imagem na memória flash
LCDShield lcd; //Define o lcd
byte cont = 40; // Contraste
void setup()
{

//Cuidado, se não funcionar, troque PHILLIPS por EPSON (tudo maiusculo)
lcd.init(PHILLIPS); // Inicializa o LCD 
lcd.contrast(cont); // Contraste
lcd.clear(WHITE); // Fundo branco
printldg(); // Coloca a imagem do logo LdG
testPattern(); // Coloca varios retangulos de varias cores
}
void loop()
{

}
void testPattern()
{
lcd.setRect(80, 2, 131, 19, 1, WHITE); //Coloca retangulo branco
lcd.setRect(80, 19, 131, 35, 1, YELLOW); //Coloca retangulo amarelo
lcd.setRect(80, 35, 131, 51, 1, CYAN); //Coloca retangulo ciano
lcd.setRect(80, 51, 131, 67, 1, GREEN); //Coloca retangulo verde
lcd.setRect(80, 67, 131, 83, 1, MAGENTA); //Coloca retangulo magenta
lcd.setRect(80, 83, 131, 99, 1, RED); //Coloca retangulo vermelho
lcd.setRect(80, 99, 131, 115, 1, BLUE); //Coloca retangulo azul
lcd.setRect(80, 115, 131, 131, 1, BLACK); //Coloca retangulo preto
}
PROGMEM static unsigned int logoldg[6550] = { //A matriz da imagem contendo elementos hexadecimais no formato correto para o LCD
0xfff,0xfff,0xfff,0xfff,0xfff,0xeee,0x666,0x333,0x0,0x0,0x0,0x0,0x0,0x333,0x777,0xefe,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfee,0x666,0x322,0x0,0x0,0x0,
0x0,0x0,0x222,0x566,0xcdd,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xccc,0x555,0x333,0x0,0x0,0x0,0x0,0x222,0x444,0xa9a,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0x999,0x0,0x0,0x13,0x35,0x34,0x35,0x35,0x35,0x12,0x0,0x0,0xaaa,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xa99,0x0,0x0,0x13,0x36,0x36,0x36,
0x36,0x35,0x23,0x0,0x0,0x788,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x555,0x0,0x0,0x23,0x24,0x24,0x24,0x24,0x24,0x1,0x0,
0x222,0xeee,0xfff,0xfff,0xfff,0x888,0x767,0x999,0x9a9,0xbbb,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xccc,0x999,0x899,0x889,0x999,0xbbb,0xeee,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xaaa,0x0,0x12,0x8d,0x1af,0x19f,0x19f,0x9f,0x9f,0x9f,0xaf,0x8d,0x1,0x0,
0xbbb,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xbbb,0x0,0x1,0x18d,0xaf,0x19f,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9e,0x23,0x0,0x999,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0x555,0x0,0x36,0x19f,0x9f,0x19f,0xaf,0x19f,0x9f,0x9f,0x19f,
0x59,0x0,0x111,0xede,0x767,0x0,0x0,0x0,0x1,0x0,0x0,0x112,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,
0x999,0x10,0x0,0x0,0x0,0x0,0x110,0x0,0x0,0x655,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0x0,0x11,0xaf,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x1,0x100,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x0,0x1,0x19f,0x9f,0x19f,0x9f,0x19f,0x9f,0x19f,0x9f,
0x9f,0x9f,0x19f,0x12,0x0,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xeee,0xccc,0xbbb,0xbbb,0xbbb,0xddd,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,
0xbbb,0x0,0x46,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x17b,0x0,0x0,0x0,0x12,0x7b,
0x19f,0x9f,0x9f,0x69,0x0,0x0,0xddd,0xfff,0xeee,0xbbb,0x555,0x0,0x12,0x16a,0x18d,0x8e,0x9e,0x18d,
0x17c,0x136,0x0,0x0,0xbbb,0xaaa,0xaaa,0xaaa,0xaaa,0xccc,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xaaa,0x0,0x17b,0x9f,0x9f,0x9f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x6a,0x0,0x988,
0xeee,0xeee,0xeee,0xeee,0xeee,0x99a,0x0,0x69,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x19f,0x9f,0x19f,0x9f,
0x9f,0x7d,0x0,0x0,0x100,0x455,0xdcd,0xfff,0xeee,0xeee,0xdee,0xdee,0xeee,0xeee,0xeee,0xfff,0xccc,0x555,
0x111,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x666,0xddd,0xede,0xeee,0x433,0x0,0xaf,0x9f,0x9f,0x9f,0x9f,0x9f,
0x19f,0x9f,0x19f,0x9f,0x9f,0x19f,0x24,0x12,0x7b,0xaf,0x9f,0x19f,0x9f,0x9f,0x9f,0x9e,0x0,0x0,0x100,0x0,
0x0,0x0,0x36,0x9f,0x8e,0x18e,0x8e,0x9f,0x8d,0x18e,0x9f,0x7b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x333,
0xaaa,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0x666,0x0,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x18f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x9f,0x9f,0x9f,0x19f,0x8f,0x9f,0x8f,0x9f,0x9f,0x19f,0x9f,0x19f,0x9f,0x6a,0x48,0x124,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x111,0x145,0x59,0x16a,0x6a,0x6a,0x6a,0x6a,0x58,0x23,0x0,
0x0,0x0,0x0,0x0,0x35,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x8e,0x19f,0x9f,0x19f,
0x9f,0x9f,0x19f,0x19f,0x9f,0x9f,0x6a,0x12,0x46,0x16a,0x6a,0x6b,0x9f,0x9f,0x9f,0x8e,0x19e,0x19f,0x17d,0x8d,
0x18e,0x9f,0x8d,0x17b,0x7b,0x7b,0x7b,0x7b,0x16b,0x6a,0x146,0x11,0x0,0x111,0xcdd,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0x344,0x11,0x19f,0x9f,0x19f,0x9f,0x7cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x19f,0x0,0x24,
0x48,0x48,0x48,0x48,0x48,0x48,0x58,0x9f,0x18f,0x9f,0x8f,0x5af,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0x9f,
0x18f,0x8f,0x9f,0x9f,0x36,0x36,0x47,0x58,0x48,0x48,0x58,0x48,0x47,0x24,0x47,0x8f,0x18e,0x18e,0x8f,0x9f,0x9f,
0x19f,0x8f,0x9f,0x19f,0x17b,0x48,0x48,0x48,0x48,0x7b,0x9f,0x9f,0x9f,0x8f,0xcef,0xfff,0xfff,0xeff,0x9f,0x9f,
0x9f,0x19f,0x9f,0x19f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x18f,0x8e,0x18d,0x8e,0x9f,0x9f,0x9f,
0x19f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,0x8f,0x8e,0x9f,0x19f,0x6a,0x0,0x0,0xddd,0xfff,0xfff,0xfff,
0xfff,0xfff,0x344,0x2,0x9f,0x19f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x19f,0x5af,0xfff,0xfff,0xfff,0x4bf,0x9f,0x19f,0x9f,0x9f,0x8e,
0x8e,0x8f,0x9f,0x9f,0x19f,0x8e,0x19f,0x9f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x7d,0x8d,0x8e,0x9f,0x9f,0x9f,
0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x8f,0xdef,0xfff,0xfff,0xeff,0x9f,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x3af,0x5bf,0x9f,0x19f,0x9f,0x9f,0x8f,0x7d,0x7d,0x8f,0x19f,0x9f,0x19f,0x9f,
0x29f,0x8cf,0x7cf,0x5bf,0x9f,0x19f,0x9f,0x9f,0x19f,0x19f,0x19f,0x9f,0x9f,0x8f,0x18e,0x18f,0x9e,0x8f,0x18e,0x1,0x0,0xfff,0xfff,0xfff,
0xfff,0xfff,0x434,0x11,0x1af,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x5bf,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0x9f,
0x8e,0x8f,0x9f,0x19f,0x9f,0x9f,0x8e,0x19f,0x9f,0x9f,0x9f,0x8f,0x9f,0x19f,0x9f,0x9f,0x9f,0x7d,0x18d,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x8f,0xdef,0xfff,0xfff,0xeff,0x8f,
0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x2af,0xdef,0xfff,0xcef,0x8f,0x9f,0x19f,0x9f,0x9f,0x8f,0x7d,0x8f,0x9f,0x9f,
0x9f,0x9f,0x7bf,0xfff,0xfff,0xeff,0x8f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x8f,0x8e,0x8e,0x8f,0x8f,0x18f,0x7d,
0x0,0x666,0xfff,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x5af,0xfff,0xfff,0xfff,0x6bf,0x2af,0x2af,0x29f,0x2af,
0x29f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x19f,0x19f,0x8f,0x19f,0x29f,0x2af,
0x2af,0x2af,0x29f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8f,0xdef,0xfff,0xfff,0xeff,0x2af,
0x2af,0x2af,0x9f,0x9f,0x9f,0x9f,0x8cf,0xeff,0x5bf,0x8f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,0x29f,0x2af,0x2af,0x2af,
0x2af,0x19f,0x5bf,0xeff,0xeff,0xcef,0x8f,0x9f,0x9f,0x29f,0x2af,0x2af,0x2af,0x29f,0x2af,0x2af,0x18e,0x8e,0x8e,
0x18f,0x8f,0x9f,0x35,0x0,0xfff,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x5af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0x3af,0x9f,0x9f,0x8f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x8f,0x8f,0x6bf,0xfff,0xfff,
0xfff,0xfff,0xfff,0xadf,0x9f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0xdef,0xfff,0xfff,
0xfff,0xfff,0xfff,0xdff,0x8f,0x19f,0x9f,0x19f,0x19f,0x8f,0x19f,0x19f,0x19f,0x9f,0x9f,0x19f,0x9f,0xcef,0xfff,
0xfff,0xfff,0xfff,0xfff,0x4bf,0x8f,0x9f,0x8f,0x8f,0x9f,0x39f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0x8cf,0x7e,0x8e,0x18e,0x8f,0x17b,0x0,0xbbb,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x8f,0x9f,0x29f,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xbef,0x9f,0x4af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xcef,0x8f,0x19f,0xeff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8df,0x9f,0x29f,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xadf,0x8f,0xcef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x3af,0x8f,0xdef,0xfff,
0xfff,0xfff,0xfff,0xfff,0xcef,0x8f,0x6bf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x4af,0x9f,0x8cf,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0x3af,0x7bf,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0x29e,0x8d,0x8e,0x18e,0x18f,0x0,0x888,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x29f,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x7cf,0x5af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xeff,0x8f,0xcdf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x4af,0x6bf,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xadf,0x8f,0xcef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,
0xfff,0xfff,0xdff,0x18f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xeff,0x8f,0xdef,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0x3af,0x6bf,0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0x4bf,0x8e,0x8e,0x18e,0x19f,0x1,0x888,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x39f,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9df,0x5af,0xfff,0xfff,0xfff,0xadf,0x8cf,0x8cf,0x9cf,0xfff,0xfff,
0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x5bf,0x6bf,0xfff,0xfff,0xfff,0xbef,0x8cf,
0x8cf,0x5bf,0x8f,0xdef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x7cf,0x8cf,
0x6cf,0x29f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x9df,0x8cf,0x9cf,
0x19f,0x7bf,0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xfff,0x8cf,0x8cf,0x8cf,0xdef,0xfff,0xfff,0xfff,0x4bf,0x19f,
0x9f,0x9f,0x19f,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,
0x8f,0x8f,0x9f,0x8f,0xdef,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0x5bf,0x9f,0x9f,0x8f,0xcdf,0xfff,0xfff,0xfff,0x8f,
0xeef,0xfff,0xfff,0xbef,0x29f,0x3af,0x3af,0xfff,0xfff,0xfff,0x6bf,0x6bf,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0x9f,
0x9f,0x8f,0x8f,0x9f,0x8f,0x8f,0x5bf,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x9f,0x9f,0x9f,0x3af,0xfff,0xfff,
0xfff,0x6bf,0x29f,0x29f,0x9cf,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xeff,0x8f,0x19f,0x9f,0x9f,0x7bf,0xfff,0xfff,
0xeff,0x8f,0xfff,0xfff,0xfff,0xbef,0x8f,0x9f,0x9f,0x5bf,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0x9f,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x7cf,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0x4bf,0x19f,0x19f,0x9f,0xbdf,0xfff,
0xfff,0xfff,0x8f,0xeef,0xfff,0xfff,0x7cf,0x9f,0x9f,0x8f,0xfff,0xfff,0xfff,0x6cf,0x6bf,0xfff,0xfff,0xfff,0x4bf,0x19f,
0x9f,0x9f,0x9f,0x29f,0xeef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xeff,0x8f,0x19f,
0x9f,0x3af,0xfff,0xfff,0xfff,0x19f,0x19f,0x19f,0x4af,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x9f,0x9f,0x19f,
0x9f,0x6bf,0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xbef,0x8f,0x19f,0x19f,0x5af,0xfff,0xfff,0xfff,0x4bf,0x19f,0x9f,
0x9f,0x19f,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x2af,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x6af,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0x5bf,0x19f,0x9f,0x9f,0xcdf,0xfff,0xfff,
0xfff,0x8f,0xeef,0xfff,0xfff,0x7cf,0x9f,0x9f,0x8f,0xeff,0xfff,0xfff,0x6cf,0x6bf,0xfff,0xfff,0xfff,0x4af,0x9f,0x9f,0x9f,
0x8f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x8f,0x9f,0x9f,0x39f,
0xfff,0xfff,0xfff,0x19f,0x9f,0x19f,0x4af,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x8f,0x9f,0x9f,0x9f,0x7bf,
0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xbef,0x8f,0x9f,0x9f,0x5af,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0xaf,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0x29f,0x9f,0x9f,0x9f,0x9f,0x8f,0x9f,0x9df,0xfff,
0xfff,0xfff,0xdff,0xeff,0xeff,0xfff,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x8f,0xbdf,0xfff,0xfff,
0xfff,0x8f,0xeef,0xfff,0xfff,0x8cf,0x9f,0x19f,0x9f,0xeff,0xfff,0xfff,0x6cf,0x6bf,0xfff,0xfff,0xfff,0x4bf,0x9f,0x19f,
0x19f,0x29f,0xfff,0xfff,0xfff,0xeff,0xeff,0xeff,0xeff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xeff,0x8f,0x9f,0x9f,
0x3af,0xfff,0xfff,0xfff,0x19f,0x9f,0x9f,0x4af,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x8f,0x9f,0x9f,0x9f,0x7bf,
0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xbef,0x8f,0x9f,0x9f,0x5af,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,0x9f,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0xfff,0xeff,0xfff,0xeff,0xeff,0xeff,0x9f,0xbdf,0xfff,
0xfff,0xbef,0x8f,0x8f,0x8f,0xddf,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0x8cf,0x5bf,0x5bf,0x5bf,0xeff,0xfff,0xfff,
0xfff,0x8f,0xeef,0xfff,0xfff,0x9df,0x8f,0x9f,0x19f,0xfff,0xfff,0xfff,0x6cf,0x6bf,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,
0x9f,0x2af,0xfff,0xfff,0xfff,0x19f,0x8f,0x8f,0x5af,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x5bf,0x5bf,0x4bf,
0x39f,0xfff,0xfff,0xfff,0x3af,0x9f,0x8f,0x6bf,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,0x8f,0x9f,0x9f,0x9f,
0x7bf,0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xeff,0x5bf,0x5bf,0x4bf,0xbef,0xfff,0xfff,0xfff,0x4bf,0x9f,0x9f,0x9f,
0x9f,0x1,0x444,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x8cf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9f,0xbdf,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9df,0x4af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0x8f,0xeef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x6bf,0x6bf,0xfff,0xfff,0xfff,
0x4af,0x9f,0x9f,0x19f,0x29f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,
0xfff,0xfff,0xcef,0x29f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xfff,
0x8f,0x9f,0x9f,0x9f,0x7bf,0xfff,0xfff,0xeff,0x8f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0x4bf,0x19f,0x9f,0x19f,0x19f,0x1,0x444,0xfff,
0xfff,0xfff,0x444,0x11,0x1af,0x19f,0x9f,0x9f,0x7bf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9f,0x9cf,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8cf,0x4af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xdef,0x8f,0xdef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x4bf,0x6bf,0xfff,0xfff,0xfff,
0x4bf,0x9f,0x9f,0x9f,0x19f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xbdf,0xfff,0xfff,0xfff,
0xfff,0xfff,0xcef,0x19f,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x8f,0xdef,0xfff,0xfff,0xeff,
0x8f,0x19f,0x9f,0x9f,0x6bf,0xfff,0xfff,0xfff,0x8f,0xeef,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0x2af,0x8e,0x8e,0x8e,0x9f,0x0,0x778,0xfff,
0xfff,0xfff,0x434,0x11,0xaf,0x9f,0x9f,0x9f,0x7cf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x9f,0x19f,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xeff,0x19f,0x5bf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0x3bf,0x8f,0x4af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xdff,0x8f,0x6bf,0xfff,0xfff,0xfff,
0x4bf,0x9f,0x19f,0x19f,0x8f,0xadf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x7cf,0x9f,0x29f,0xfff,0xfff,
0xfff,0xfff,0xfff,0xdef,0x8f,0xadf,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x7cf,0x8f,0xdef,0xfff,0xfff,
0xfff,0x8f,0x9f,0x9f,0x9f,0x6bf,0xfff,0xfff,0xeff,0x8f,0x4af,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xaef,0x8e,0x8e,0x8e,0x18f,0x18e,0x0,0x888,0xfff,
0xfff,0xfff,0x555,0x12,0x9f,0x8f,0x8f,0x8f,0x29f,0x3af,0x2af,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,0x9f,0x9f,
0x8f,0x2af,0x2af,0x3af,0x3af,0x3af,0x2af,0x29f,0x8f,0x9f,0x29f,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,
0x3af,0x9f,0x18f,0x9f,0x19f,0x8f,0x3af,0x3af,0x3af,0x3af,0x3af,0x2af,0x29f,0x8f,0x9f,0x19f,0x3af,0x3af,0x3af,
0x19f,0x19f,0x9f,0x19f,0x9f,0x8f,0x19f,0x2af,0x3af,0x2af,0x3af,0x2af,0x3af,0x8f,0x19f,0x9f,0x19f,0x8f,0x29f,
0x3af,0x3af,0x3af,0x2af,0x9f,0x8f,0x19f,0x3af,0x3af,0x3af,0x3af,0x3af,0x3af,0x19f,0x9f,0x9f,0x3af,0x2af,0x3af,
0x2af,0x9f,0x19f,0x9f,0x19f,0x19f,0x3af,0x3af,0x3af,0x19f,0x9f,0x8f,0x2af,0x2af,0x2af,0x2af,0x3af,0x3af,0x3af,
0x19f,0x8e,0x8e,0x18e,0x18e,0x8f,0x7b,0x0,0xbbc,0xfff,
0xfff,0xfff,0x455,0x0,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x19f,
0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,
0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,
0x9f,0x9f,0x19f,0x8e,0x18f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x8f,0x19f,0x19f,0x19f,
0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x19f,0x19f,0x18f,0x9f,0x9f,0x9f,
0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x19f,0x18f,0x18e,0x8d,0x18e,
0x8e,0x18f,0x9f,0x124,0x222,0xfff,0xfff,
0xfff,0xfff,0x999,0x0,0x17d,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0xaf,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x18e,0x8f,0x9f,0x9f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x18f,0x8e,0x8f,0x8f,0x17b,0x0,0x999,0xfff,0xfff,
0xfff,0xfff,0xfff,0x0,0x22,0x1af,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x9f,0x5a,0x0,0x0,0x0,0x19d,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x9f,0x9f,0x19e,0x2,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6a,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x7b,0x0,0x111,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0x444,0x0,0x7c,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x9e,0x9f,
0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x24,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x6a,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x8e,0x18e,0x12,0x211,0xfff,0xfff,0xfff,
0xfff,0xfff,0xbbb,0x111,0x47,0x9f,0x8e,0x8f,0x18f,0x8f,0x9f,0x9f,0x9f,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x9e,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x8e,0x8e,0x8e,0x9f,0x9f,0x9f,0x8f,0x8f,0x9f,0x9f,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x6a,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x7d,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x8f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x8f,0x8e,0x7d,0x7d,0x17d,0x8d,0x8e,0x111,0x455,0xfff,0xfff,
0xfff,0xfff,0x334,0x0,0x9f,0x18f,0x8e,0x8e,0x8e,0x8e,0x59,0x59,0x59,0x59,0x59,0x36,0x0,0x0,0x0,0x19e,0x9f,0x9f,
0x19f,0x9f,0x9f,0x9f,0x19f,0x8d,0x8e,0x8e,0x18e,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x6a,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x18f,0x9f,0x9f,0x59,0x59,0x59,0x59,0x169,
0x9f,0x9f,0x19f,0x9f,0x9f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x17c,0x59,0x58,0x59,0x59,0x59,0x59,0x59,
0x59,0x7b,0x9f,0x9f,0x19f,0x19f,0x19f,0x9f,0x9f,0x19f,0x9f,0x19f,0x9f,0x19f,0x19f,0x6b,0x59,0x59,0x69,0x59,0x159,
0x59,0x58,0x59,0x59,0x59,0x59,0x7b,0x8d,0x17c,0x8d,0x18e,0x18e,0x158,0x0,0xeee,0xfff,
0xfff,0xfff,0x0,0x135,0x19f,0x8e,0x18e,0x8e,0x16b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9e,0x9f,0x9f,0x1af,0xaf,
0xaf,0xaf,0xaf,0x1af,0x9f,0x8e,0x8e,0x18e,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x35,0xaf,0x9f,0x9f,0x9f,0x9f,0x9f,
0x19f,0x9f,0x9f,0xaf,0x1af,0x1af,0xaf,0xaf,0x1af,0x9f,0x19f,0x18f,0x9f,0x6b,0x0,0x0,0x0,0x0,0x0,0x12,0x9f,0x9f,0xaf,
0x1af,0x1af,0xaf,0x1af,0x1af,0x1af,0x9f,0x19f,0xaf,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x9f,0x9f,0x9f,0x9f,
0x1af,0x19f,0xaf,0x9f,0x19f,0x9f,0x9f,0x19f,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x12,0x8e,0x7d,
0x8d,0x18e,0x18d,0x100,0x999,0xfff,
0xfff,0xdcd,0x0,0x59,0x18f,0x8e,0x8e,0x9f,0x24,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9e,0x19e,0x13,0x0,0x0,0x0,
0x0,0x0,0x0,0x13,0x19f,0x8e,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x35,0x19f,0x9f,0x1af,0xaf,0xaf,0xaf,0xaf,0x9f,
0x7c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x12,0x9e,0x9f,0x1,0x0,0x0,0x0,0x0,0x0,0x12,0x1af,0x35,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x47,0x19f,0x6b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x9f,0x159,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7b,0x9f,0x35,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x69,0x17c,0x7d,0x18e,0x8f,0x122,0x555,0xfff,
0xfff,0xddd,0x0,0x6a,0x8f,0x8e,0x8e,0x9f,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9e,0x36,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x46,0x9f,0x8d,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x35,0x1af,0x35,0x0,0x0,0x0,0x0,0x0,0x7a,0x7c,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x19f,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x1af,0x35,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7b,0x59,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x8d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xaf,0x24,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x57,0x8d,0x7d,0x18e,0x8e,0x234,0x555,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0x0,0x11,0x9f,0x9f,0x19f,0x59,0x0,0x0,0x0,0x19f,0x13,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x23,0x9f,0x18e,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x35,0x19f,0x35,0x0,0x0,0x0,0x0,0x0,0x6a,
0x7c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0xaf,0x0,0x0,0x0,0x24,0x19f,0x9f,0x19f,0x9f,0x25,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x58,0x5a,0x0,0x0,0x0,0x7b,0x19f,0x19f,0x19f,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9e,
0x24,0x0,0x0,0x1,0x19f,0x9f,0x5a,0x0,0x0,0x0,0x18d,0x19f,0x7d,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0x0,0x23,0x9f,0x9f,0x19f,0x59,0x0,0x0,0x0,0x19f,0x13,0x0,0x0,0x79,
0x19f,0x19f,0x6a,0x0,0x0,0x23,0xaf,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x35,0xaf,0x35,0x0,0x0,0x0,0x0,0x0,0x7a,
0x9f,0x9e,0x1af,0xaf,0xaf,0xaf,0x7b,0x0,0x0,0x11,0xaf,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x9f,0x9f,0xaf,0x1af,0x1af,0xaf,
0x1af,0x34,0x0,0x0,0x58,0x5a,0x0,0x0,0x0,0x18d,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x23,0x1af,0x9f,0x1af,0x1,
0x0,0x0,0x9e,0x24,0x0,0x0,0x11,0x1af,0x9f,0x6a,0x0,0x0,0x0,0x8d,0x9f,0x19f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0x0,0x23,0x19f,0x9f,0x19f,0x59,0x0,0x0,0x0,0x19f,0x13,0x0,0x0,0x1,
0x1,0x1,0x0,0x0,0x0,0x24,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x45,0x19f,0x5a,0x46,0x36,0x0,0x0,0x0,0x17a,
0x9f,0x23,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x11,0xaf,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x9f,0x7d,0x1,0x1,0x0,0x0,0x0,0x0,0x0,
0x0,0x58,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x9f,0x24,0x0,
0x0,0x11,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0x0,0x23,0x19f,0x9f,0x19f,0x59,0x0,0x0,0x0,0x19f,0x13,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x69,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x36,0x9f,0x19f,0x19f,0x8e,0x0,0x0,0x0,0x7a,
0x159,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0xaf,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x19f,0x12,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x58,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x1af,
0x24,0x0,0x0,0x11,0x19f,0x9f,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x19f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x19f,0x9f,0x12,0x0,0x0,0x22,0x1af,0xaf,0xaf,0x6a,0x0,0x0,0x0,0x9f,0x13,0x0,0x0,0x24,
0x36,0x36,0x36,0x36,0x7b,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x12,0x8c,0x7d,0x7c,0x7a,0x0,0x0,0x0,0x7b,
0x35,0x0,0x0,0x22,0x36,0x36,0x24,0x0,0x0,0x11,0xaf,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x19f,0x0,0x0,0x0,0x35,0x36,0x36,0x1,
0x0,0x0,0x59,0x59,0x0,0x0,0x0,0x17c,0xaf,0x19f,0x1af,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x1,0x36,0x36,0x36,0x36,0x48,0x9e,0x9f,
0x24,0x0,0x0,0x11,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccc,0x0,0x6b,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x9f,0x13,0x0,0x0,0x45,0x6a,0x6a,
0x6a,0x6a,0x6a,0x8d,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7b,0x35,0x0,0x0,
0x35,0x6a,0x6a,0x47,0x0,0x0,0x12,0x1af,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x16a,0x6a,0x16a,0x13,0x0,0x0,
0x158,0x5a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x11,0x6a,0x6a,0x6a,0x6a,0x69,0x16b,0xaf,0x24,0x0,
0x0,0x11,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xccd,0x0,0x6a,0x8f,0x8f,0x8e,0x19f,0x13,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9f,0x14,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x7a,0x19f,0x9f,0x9f,0x9f,0x8e,0x8e,0x9f,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7b,0x35,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x12,0xaf,0x0,0x0,0x0,0x46,0x9f,0x9f,0x9f,0x9f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x59,0x6b,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x47,0x6b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x1af,0x24,0x0,0x0,0x11,0x9f,0x9f,
0x5a,0x0,0x0,0x0,0x8d,0x9f,0x9f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xcdd,0x0,0x169,0x8f,0x18e,0x18e,0x8e,0x59,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9e,0x48,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x7a,0x9f,0x19f,0x9f,0x9f,0x8e,0x8e,0x8e,0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7a,0x5a,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x36,0x9f,0x0,0x0,0x0,0x46,0x19f,0x9f,0x19f,0x9f,0x13,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8d,0x9f,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x46,0x19f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23,0x1af,0x24,0x0,0x0,0x11,0x1af,0x9f,
0x5a,0x0,0x0,0x0,0x18d,0x9f,0x9f,0x0,0x0,0x0,0x57,0x9f,0x9f,0x9f,0xaf,0x12,0x0,0xfff,
0xfff,0xfff,0x0,0x36,0x19f,0x8e,0x18e,0x8e,0x9f,0x6b,0x25,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x19e,0x9f,0x59,0x24,
0x24,0x24,0x24,0x24,0x24,0x23,0x17b,0x9f,0x19f,0x9f,0x9f,0x8e,0x18e,0x8d,0x9f,0x16a,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
0x24,0x23,0x7b,0x19f,0x6a,0x24,0x24,0x24,0x24,0x24,0x24,0x58,0x19f,0x9f,0x24,0x24,0x24,0x58,0x9f,0x9f,0x9f,0x9f,0x18e,
0x37,0x24,0x24,0x24,0x24,0x24,0x34,0x7c,0x9f,0x9f,0x19f,0x59,0x47,0x47,0x47,0x47,0x47,0x0,0x0,0x0,0x47,0x9f,0x18d,0x35,
0x24,0x24,0x24,0x24,0x23,0x24,0x146,0x1af,0x47,0x24,0x24,0x35,0x19f,0x9f,0x6b,0x23,0x24,0x24,0x9e,0x9f,0x19f,0x14,0x24,
0x24,0x69,0x9f,0x9f,0x9f,0x9f,0x12,0x0,0xfff,
0xfff,0xfff,0x333,0x101,0x19f,0x19e,0x8f,0x8e,0x8e,0x18f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x19f,0x19f,0x19f,
0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x9f,0x9f,0x19f,0x8e,0x8e,0x18e,0x8d,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,
0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x18f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x19f,0x9f,0x9f,0x19f,0x17d,0x58,0x59,0x59,0x59,0x59,0x158,0x58,0x0,0x0,0x0,0x47,0x9f,
0x9f,0x9f,0x19f,0x19f,0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x8f,0x19f,0x9f,0x19f,0x9f,0x19f,0x19f,0x19f,
0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0xaf,0x12,0x222,0xfff,
0xfff,0xfff,0xaab,0x0,0x158,0x18f,0x8e,0x18f,0x8e,0x8e,0x8e,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8e,0x8f,0x8e,0x8e,0x8e,0x8d,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x8f,0x9f,0x9f,0x9f,0x19f,0x8e,0x18e,
0x19f,0x9f,0x19f,0x19f,0x9f,0x9f,0x19f,0x9f,0x5a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x57,0x19f,0x19f,0x9f,0x9f,0x19f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x9f,0x19f,0x9f,0x9f,0x0,0x444,0xfff,
0xfff,0xfff,0xfff,0x223,0x0,0x7c,0x19f,0x9e,0x18e,0x8e,0x18e,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x19f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x35,0x8e,0x18f,0x18f,0x18e,0x18e,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x18f,0x9f,0x9f,0x19f,0x9f,0x18e,
0x8e,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x5a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x19f,0x58,0x0,0xaaa,0xfff,
0xfff,0xfff,0xfff,0xeee,0x0,0x0,0x6a,0x9f,0x18f,0x18f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0xaf,0x59,0x0,0x0,0x17b,0x9f,0x18f,0x18f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x8f,0x8e,0x9f,0x9f,0x9f,0x9f,0x8e,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x8f,0x9f,0x9f,0x19f,0x9f,0x8e,0x8e,0x19f,
0x9f,0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x59,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x57,0x9f,0x19f,0x9f,0x9f,0x9f,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x19f,0x19f,
0x19f,0x7c,0x0,0x222,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0x666,0x0,0x13,0x58,0x18d,0x8f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x19f,0x9f,0x8f,0x6b,
0x18d,0x8e,0x9f,0x19f,0x19f,0x19f,0x19f,0x9f,0x19f,0x7b,0x24,0x0,0x333,0x666,0x0,0x23,0x169,0x8d,0x8e,0x19f,0x19f,0x19f,
0x19f,0x19f,0x19f,0x19f,0x19f,0x9e,0x7c,0x7d,0x8e,0x19f,0x19f,0x19f,0x19f,0x8e,0x18d,0x6b,0x19e,0x19f,0x9f,0x9f,0x18f,
0x8e,0x47,0x0,0x35,0x6b,0x18e,0x9f,0x19f,0x9f,0x19f,0x9f,0x9f,0x9f,0x8f,0x8e,0x18d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
0x19f,0x9f,0x8e,0x8f,0x19f,0x9f,0x9f,0x19f,0x9f,0x19f,0x19f,0x19f,0x9f,0x8f,0x19f,0x19f,0x19f,0x9f,0x18d,0x7d,0x9f,0x9f,
0x19f,0x9f,0x8f,0x7c,0x19e,0x19f,0x9f,0x9f,0x9e,0x8c,0x35,0x0,0x211,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xddd,0x555,0x111,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x999,0xfff,0xfff,0xccc,0x343,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x444,0x111,0x0,0x0,0x0,0x0,0x0,0x1,0x1af,0x19f,0x19f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x19f,0x9f,0x9e,0x8e,0x18e,0x8e,0x18e,0x8e,0x19f,0x24,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x666,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xddd,0xeee,0xaba,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xbbb,0xbbb,
0xddd,0xccc,0xded,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xcbb,0xbbb,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfef,0xccd,0xded,
0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xaaa,0xbcb,0xccc,0xccc,0xeee,0xaaa,0xaaa,0xaaa,0xaaa,0xeed,0xbcc,0xccc,0xbbb,
0xccc,0xaaa,0xaaa,0xccc,0xaaa,0xfff,0xfff,0xfff,0xeef,0xddd,0xccc,0xaaa,0x766,0x0,0x18d,0x9f,0x9f,0x9f,0x19f,0x9f,0x19f,
0x9f,0x9f,0x9f,0x9f,0x9f,0x18e,0x8e,0x8e,0x8e,0x8f,0x8f,0x6a,0x0,0x767,0xaaa,0xaaa,0xaaa,0xaaa,0xaab,0xaaa,0xaaa,0xaaa,
0xaaa,0xaaa,0xabb,0xaab,0xaaa,0xaaa,0xaaa,0xbab,0xbbb,0xabb,0xaaa,0xaa9,0xaaa,0xaa9,0xaaa,0xbbb,0xfee,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x0,0x13,0xaf,0x9f,0x9f,0x9f,0x19f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x19f,0x18e,0x8e,0x8f,0x19e,0x9f,0x17b,0x0,0x544,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xaaa,0x0,0x24,0x19f,0x9f,0x9f,0x9f,0x9f,0x9f,
0x9f,0x9f,0x9f,0x9f,0x8f,0x19f,0x19f,0x8e,0x35,0x0,0x888,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xaaa,0x0,0x0,0x24,0x46,0x36,0x36,0x36,
0x36,0x36,0x36,0x36,0x146,0x35,0x12,0x0,0x322,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0x888,0x444,0x222,0x111,
0x111,0x111,0x111,0x111,0x111,0x111,0x332,0x555,0x888,0xddd,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,
0xfff,0xfff,0xfff,0xfff,0xfff,
};
void printldg(void) //Função para ordenar os pixels da matriz logoldg e montar a imagem
{
int x=0; int y=0; unsigned int z=0;
for(y=10;y<62;y=y+1) //Localização de onde deve começar a imagem e onde termina. Começando no ponto y=10 do LCD
{ // e terminando no ponto y=62(52+10), onde 52 é a altura da imagem e 10 o começo do primeiro ponto do LCD
for(x=5;x<130;x=x+1) //Localização do ponto x=5 do LCD terminando no ponto x=130(125+5), onde 125 é o comprimento da imagem
{ //e 5 é o começo do LCD
lcd.setPixel(pgm_read_word_near(logoldg+z),y,x); //Coloca o pixel da matriz logoldg no ponto [x,y] do LCD
z=z+1; //Vai para o próximo elemento da matriz logoldg
}
}
}

Por fim, conecte o Shield no Arduino e depois o Arduino no PC. Selecione a versão da sua placa Arduino (UNO, Duemilanove, etc) e selecione a porta a qual seu Arduino está conectado (COMx, ttyUSBx, ttyACMx, etc). Clique em UPLOAD e assim que terminar irá aparecer a imagem. Aqui fizemos com o logo e mais barras coloridas para demonstrar. Abaixo tem umas imagens mostrando o LCD em funcionamento.

Tivemos que colar a imagem em hexadecimal dentro da memória Flash, pois senão não funciona por causa da memória RAM limitada. 

E é isso! Esperamos que tenham gostado! Caso tenham dúvidas, postem aqui mesmo no blog! Caso tenham sugestões de tutoriais, postem aqui! E se quiserem ver outros tutoriais e projetos abertos, cliquem aqui e aqui respectivamente! Até a próxima galera!

Referências:

http://www.labdegaragem.org/loja/index.php/31-shields/lcd-shield-co...

http://www.labdegaragem.com.br/wiki/index.php?title=Color_Shield_LCD

http://www.sparkfun.com/products/9363

http://www.sparkfun.com/tutorials/286

https://github.com/downloads/jimblom/ColorLCDShield/ColorLCDShield-...

http://tronixstuff.wordpress.com/2011/02/07/tutorial-arduino-and-co...

http://peterdavenport.posterous.com/pages/prodjects

http://www.sparkfun.com/tutorial/Nokia%206100%20LCD%20Display%20Dri...

Exibições: 9425

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Helton Nazareno Castanheira Sous em 12 maio 2013 às 15:26

Bom dia a todos ! em especial as Mãe!!

Consegui encontrar um conversor de BMP para HEX, que funciona, segue o links:

http://www.thaieasyelec.net/archives/Manual/bmp2h_conv.exe 

http://www.thaieasyelec.net/index.php/arm/bluescreen-sun-lpc2478-wi...

Observação: O código Lab. Garagem é melhor do que da Sparkfun, então usem o código acima.

Até mais!!!

Comentário de Helton Nazareno Castanheira Sous em 11 maio 2013 às 1:37

Senhores,

Tem que instalar o Python e a biblioteca PIL. Agora o problema é:

Traceback (most recent call last):
File "C:\Users\Usuario\Helton Castanheira\IME\Exoesqueleto\LCD\Logo_IME\Convert.py", line 14, in <module>
z=imopen.getpixel((x,y))
File "C:\Python26\lib\site-packages\PIL\Image.py", line 950, in getpixel
return self.im.getpixel(xy)
IndexError: image index out of range

Alguém tem uma opinião?

 

Comentário de Helton Nazareno Castanheira Sous em 10 maio 2013 às 13:59

Obrigado pela ajuda Humberto,

Agora deu esse erro na variável PIL:

Traceback (most recent call last):
File "C:\Python33\Convert.py", line 1, in <module>
from PIL import Image
ImportError: No module named 'PIL'

Você tem esse arquivo de conversão funcionando? vc pode mandar para meu email ?

heltoncastanheira@yahoo.com.br

grato

Comentário de Humberto Cruz em 10 maio 2013 às 10:12

Helton, tente colocar:

from PIL import Image

[]s
Humberto
Comentário de Helton Nazareno Castanheira Sous em 9 maio 2013 às 22:15

Boa Noite , 

Preciso de ajuda no Python, notei que é preciso identar, mas depois dá esse erro:

Traceback (most recent call last):
File "C:\Python33\Logo_IME.py", line 1, in <module>
import Image
ImportError: No module named 'Image'

Alguém pode me ajudar ?

Comentário de Humberto Cruz em 25 janeiro 2013 às 16:00

Ola, tenho o LCD mas gostaria de comprar apenas a placa, alguem sabe onde consigo ?

Comentário de Maurício de Souza Rocha em 21 novembro 2012 às 21:08

Aqui também dá erro: SyntaxError: multiple statements found while compiling a single statement.

Alguém já conseguiu usar no Python? Eu estou usando um bitmap 128x128.

Comentário de Wagner Felix Pereira de Souza em 29 maio 2012 às 12:41

a falta de RAM do arduino inviabiliza o uso mais "bacanudo" do display :P
A nao ser pra interfaces pre-definidas que caibam na memoria flash.

Comentário de Mário Mendes em 28 maio 2012 às 20:07

Sim eu reduzi a imagem para esse tamanho. O problema é com o PYTHON que não faz a conversão, no prompt de comando dá sempre um erro de syntax.

O prompt de comando que devo utilizar é o que está no programa PYTHON??

Comentário de PJ-MecNet,Cto&Cia em 28 maio 2012 às 16:39

Qual a exigência de capacidade de processamento do MCU para uso com este tipo de display? Um MCU com 10Mips daria uma bom resultado?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço